INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Podobne dokumenty
INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

Struktury danych: stos, kolejka, lista, drzewo

Programowanie obiektowe

Listy, kolejki, stosy

KOLEJKA (QUEUE) (lista fifo first in, first out)


Lista, Stos, Kolejka, Tablica Asocjacyjna

E S - uniwersum struktury stosu

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Zapis algorytmów: schematy blokowe i pseudokod 1

INFORMATYKA DANE.

Podstawy Informatyki. Wykład 6. Struktury danych

Marcin Matusiak i Łukasz Stasiak

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:

Programowanie i struktury danych 1 / 44

Struktury. Przykład W8_1

Algorytmy. Programowanie Proceduralne 1

Algorytmy. Programowanie Proceduralne 1

Algorytmy i. Wykład 3: Stosy, kolejki i listy. Dr inż. Paweł Kasprowski. FIFO First In First Out (kolejka) LIFO Last In First Out (stos)

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Struktury danych (I): kolejka, stos itp.

Dynamiczne struktury danych

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Typy danych. 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, ; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne:

Narzędzia informatyczne w językoznawstwie

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Język programowania: Lista instrukcji (IL Instruction List)

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Podstawowe struktury danych

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

Podstawy programowania skrót z wykładów:

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Sortowanie przez wstawianie Insertion Sort

INFORMATYKA. Podstawy programowania w języku C. (Wykład) Copyright (C) 2005 by Sergiusz Sienkowski IME Zielona Góra

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Wykład z Technologii Informacyjnych. Piotr Mika

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Wykład 3 Składnia języka C# (cz. 2)

Języki i techniki programowania Ćwiczenia 2

ALGORYTMY I PROGRAMY

Wskaźniki. Programowanie Proceduralne 1

Algorytm. a programowanie -

Podstawy Informatyki. Wykład 4. Struktury danych

DYNAMICZNE PRZYDZIELANIE PAMIECI

Sortowanie Shella Shell Sort

EGZAMIN MATURALNY 2012 INFORMATYKA

WSTĘP DO INFORMATYKI. Struktury liniowe

Wstęp do programowania 2

Dzisiejszy wykład. Programowanie w Perlu. Usuwanie elementów z początku tablicy. Dodawanie elementów do początku tablic

Wykład 4. Klasa List Kolejki Stosy Słowniki

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Algorytmy i struktury danych. dr inż. Sławomir Samolej D108 A, tel: , WWW: ssamolej.prz-rzeszow.

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2010 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Wstęp do programowania

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Lab 9 Podstawy Programowania

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Algorytmy sortujące i wyszukujące

Algorytmy i Struktury Danych.

Stos LIFO Last In First Out

Strategia "dziel i zwyciężaj"

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Podstawy programowania w języku C

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Algorytm. Krótka historia algorytmów

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Dzisiejszy wykład. Narzędzia informatyczne w językoznawstwie. Usuwanie elementów z początku tablicy. Dodawanie elementów do początku tablic

Algorytmy i Struktury Danych.

kiedy znowu uzyska sterowanie, to podejmuje obliczenie od miejsca, w którym poprzednio przerwała, i z dotychczasowymi wartościami zmiennych,

Abstrakcyjne struktury danych - stos, lista, drzewo

Java Collections Framework

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Podstawy Programowania C++

Język ludzki kod maszynowy

Temat: Dynamiczne liniowe struktury danych - stos, kolejka, lista. 1. Wady i zalety struktury tablicy

2.8. Algorytmy, schematy, programy

Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Podstawy i języki programowania

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Algorytmy i Struktury Danych.

Programowanie Niskopoziomowe

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

Pytanie 1. Pytanie 2. Pytanie 3. Przyporządkuj rozszerzenie nazwy pliku z jego poprawnym opisem: WOJEWÓDZKI KONKURS INFORMATYCZNY.

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Kontrola przebiegu programu

Transkrypt:

INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne

Sortowanie Dane wejściowe : trzy liczby w dowolnym porządku Dane wyjściowe: trzy liczby w porządku rosnącym a, b, c a>b a b b > c a > c a c b c

Tablica jednowymiarowa Dane wejściowe : 10-cio elementowa tablica liczb całkowitych Dane wyjściowe: posortowana 10-cio elementowa tablica liczb całkowitych A[1],,A[10] Min Min A[1] 1 licznik 2 licznik <=10 Min Min A[licznik] Min

Tablica jednowymiarowa A[1],,A[10] Min 1 licznik 2 licznik <=10 Min 26 7 15

Tablica jednowymiarowa A[1],,A[10] Min 1 licznik 2 licznik <=3 Min 26 7 15

Tablica jednowymiarowa A[1],,A[10] Min 1 licznik 2 licznik <=3 Min 26 7 15

Tablica jednowymiarowa A[1],,A[10] Min 1 licznik 2 licznik <=3 A[1] 26 7 15

Tablica jednowymiarowa A[1],,A[10] Min 1 licznik 2 licznik <=3 26 7 15 A[1] 7 26 15

Tablica jednowymiarowa A[1],,A[10] Min 1 licznik 2 licznik <=3 A[1] 7 26 15

Tablica jednowymiarowa A[1],,A[10] Min 2 licznik 3 licznik <=3 7 26 15 A[1]

Tablica jednowymiarowa A[1],,A[10] Min 2 licznik 3 licznik <=3 7 26 15 A[1]

Tablica jednowymiarowa A[1],,A[10] Min 2 licznik 3 licznik <=3 7 26 15 A[2] 7 15 26

Tablica jednowymiarowa A[1],,A[10] Min 2 licznik 3 licznik <=3 7 26 15 A[2] 7 15 26

tablice A pocz 1 Min pocz licznik pocz+1 licznik <=10 A[2] 4 5 6 7 8 9 10 26 7 15 1 5 6 36 8 11 55

tablice A pocz 1 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 26 7 15 1 5 6 36 8 11 55

tablice A pocz 1 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 26 7 15 1 5 6 36 8 11 55

tablice A pocz 1 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 7 15 26 5 6 36 8 11 55

tablice A pocz 1 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 7 15 26 5 6 36 8 11 55

tablice A pocz 2 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 7 15 26 5 6 36 8 11 55

tablice A pocz 2 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 7 15 26 5 6 36 8 11 55

tablice A pocz 2 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 15 26 7 6 36 8 11 55

tablice A pocz 2 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 15 26 7 6 36 8 11 55

tablice A pocz 3 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 15 26 7 6 36 8 11 55

tablice A pocz 3 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 15 26 7 6 36 8 11 55

tablice A pocz 3 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 26 7 15 36 8 11 55

tablice A pocz 4 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 26 7 15 36 8 11 55

tablice A pocz 4 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 26 7 15 36 8 11 55

tablice A pocz 5 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 7 26 15 36 8 11 55

tablice A pocz 6 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 7 8 15 36 26 11 55

tablice A pocz 7 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 7 8 11 36 26 15 55

tablice A pocz 8 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 7 8 11 15 26 36 55

tablice A pocz 9 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 7 8 11 15 26 36 55

tablice A pocz 10 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 7 8 11 15 26 36 55

tablice A pocz 10 Min pocz licznik pocz+1 licznik <=10 A[pocz] 4 5 6 7 8 9 10 1 5 6 7 8 11 15 26 36 55

tablice A pocz 1 pocz < 9 Min pocz licznik pocz+1 licznik <=10 A[pocz] pocz pocz+1

Listy, kolejki, drzewa Kolejka FIFO (First In First Out) Kolejka LIFO (Last In First Out) - Stos

Kolejka FIFO 1. Sprawdzenie, czy kolejka jest pusta operacja empty zwraca true, jeśli kolejka nie zawiera żadnego elementu, w przeciwnym razie zwraca false. 2. Odczyt elementu z początku kolejki operacja front zwraca wskazanie do elementu, który jest pierwszy w kolejce. 3. Zapis elementu na koniec kolejki operacja push dopisuje nowy element na koniec elementów przechowywanych w kolejce. 4. Usunięcie elementu z kolejki operacja pop usuwa z kolejki pierwszy element.

Kolejka FIFO - tablica ograniczona długość kolejki n rozmiar tablicy Q indeks początku kolejki first ilość elementów w kolejce count 0 4 5 6 7 08 9 first = 0 count = 5 indeks końcowy = first + count

Kolejka FIFO - empty Wejście Q tablica count liczba elementów przechowywana w kolejce first indeks początku kolejki Wyjście: true, jeśli kolejka jest pusta, false jeśli kolejka niepusta K01: Jeśli count = 0, to wynik true K02: Zakończ z wynikiem false 0 4 5 6 7 08 9 first = 0 count = 5 indeks końcowy = first + count

Kolejka FIFO - front 0 4 5 6 7 08 9 first = 0 count = 5 indeks końcowy = first + count K01: Jeśli count = 0, to komunikat, że kolejka pusta K02: Wynik wartość Q[first];

Kolejka FIFO - pop x 0 4 5 6 7 08 9 first = 0 count = 5

Kolejka FIFO - pop x 0 4 5 6 7 08 9 K01 Jeśli count = 0, to zakończ K02: count count - 1 K03: x Q[first] K03: first first + 1 K04: Zakończ first = 1 count = 4

Kolejka FIFO - pop 0 4 5 6 7 08 9 x K01 Jeśli count = 0, to zakończ K02: count count - 1 K03: x Q[first] K03: first first + 1 K04: Jeśli first = n, to first 0 K05: Zakończ 0 4 5 6 7 8 9 first = 9 count = 6 x first = 0 count = 5

Kolejka FIFO - push 0 4 5 6 7 8 9 first = 0 count = 5 x 0 4 5 6 7 8 9 K01: Jeśli count = n, to zakończ K02: i first + count K03: Q[i] x, K04: count count + 1, K05: zakończ first = 0 count = 6

Kolejka FIFO - push 0 4 5 6 7 8 9 x first = 3 count = 8 i = 8 + 3-10 = 1 K01: Jeśli count = n, to zakończ K02: i first + count K03: Q[i] x, K04: count count + 1, K05: zakończ 0 4 5 6 7 8 9 first = 3 count = 9

Kolejka FIFO - push 0 4 5 6 7 8 9 x first = 3 count = 8 i = 8 + 3-10 = 1 K01: Jeśli count = n, to zakończ K02: i first + count K03: jeśli i n to i i-n, K04: Q[i] x, K05: count count + 1, K06: zakończ 0 4 5 6 7 8 9 first = 3 count = 9

Schematy blokowe start pobierz a, b c a mod b a b wypisz a b c stop b = 0

start a, b Program NWD; dane wejściowe: a, b; dopóki b <> 0 wykonuj{ pod c podstaw mod(a,b) podstaw za a liczbę b; podstaw za b liczbę c;} rezultat: a; b <> 0 c a mod b a b zwróć a b c stop

Podprogramy Mówiąc o podprogramach będziemy zakładali : każdy podprogram posiada jeden punkt wejścia; program wywołujący podprogram zostaje zawieszony na czas działania podprogramu; sterowanie zawsze powraca do programu wywołującego w momencie zakończenia działania podprogramu.

Program NWD; dane wejściowe: a, b; dopóki b > 0 wykonuj; wywołaj podprogram mod(a,b) podstaw wynik do c; (c mod (a,b)) podstaw za a liczbę b; podstaw za b liczbę c; podstaw za rezultat liczbę a; rezultat: rezultat; podprogram mod(m,n); podstaw za i liczbę 0; dopóki i *n m wykonuj; podstaw za j wartość m (i * n); powiększ i o liczbę 1; podstaw za reszta liczbę j; rezultat: reszta;

Podprogramy start wczytaj a, b a, b start n n a m m b b>0 wypisz a i*n m j stop stop c mod (a,b) j m-(n*i) a b b c j i i+1

Podprogramy start wczytaj a, b a, b start n n a m m b b>0 wypisz a i*n m j stop stop c mod (a,b) j m-(n*i) a b b c j i i+1

Podprogramy Przekazywanie parametrów odbywa się za pośrednictwem stosu tak jest w zdecydowanej większości języków programowania. Przekazywanie przez wartość i/lub wynik jest realizowane poprzez kopiowanie wartości na stos/ze stosu. Odpowiednia komórka pamięci na stosie jest alokowana w chwili wywołania podprogramu. W trakcie działania podprogramu funkcjonuje ona jako zmienna lokalna. Przekazywanie przez referencję jest realizowane poprzez umieszczenie odpowiedniego adresu na stosie. Jeśli parametr aktualny jest stałą (a w szczególności literałem, np. abc, 12.34), to na stosie trzeba umieścić jej adres. Kompilator nie może pozwolić, by parametr taki był zmieniany. Jeśli parametr aktualny jest wyrażeniem, na stosie trzeba umieścić adres komórki pamięci z wynikiem wyrażenia.