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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Definicje. Algorytm to:

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

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

Wprowadzenie do algorytmiki

Algorytm. Krótka historia algorytmów

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

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI

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

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

Algorytm. Krótka historia algorytmów

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

ALGORYTMY I PROGRAMY

Podstawy Programowania Algorytmy i programowanie

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

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

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

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

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

Technologie informacyjne - wykład 12 -

Wykład z Technologii Informacyjnych. Piotr Mika

Algorytm. a programowanie -

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

Języki programowania zasady ich tworzenia

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Algorytm. Algorytmy Marek Pudełko

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

START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC

Algorytmy. dr Dariusz Banaś (UJK) Seminarium w ramach projektu Fascynujący Świat Nauki dla uczniów gimnazjów. wersja 0.9. Start.

Zapisywanie algorytmów w języku programowania

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Gimnazjum w Tęgoborzy - Algorytmika Strona 1 z 22 mgr Zofia Czech

wagi cyfry pozycje

Algorytmy, reprezentacja algorytmów.

Algorytmy i schematy blokowe

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

1 Wprowadzenie do algorytmiki

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Programowanie i techniki algorytmiczne

Język ludzki kod maszynowy

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu


Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

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

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

Temat 20. Techniki algorytmiczne

Programowanie obiektowe

Programowanie komputerów

Definicja algorytmu brzmi:

Algorytmika i pseudoprogramowanie

EGZAMIN MATURALNY 2012 INFORMATYKA

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

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

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania

Podstawy programowania w języku C

2.8. Algorytmy, schematy, programy

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Zapis algorytmów: schematy blokowe i pseudokod 1

Programowanie w języku Pascal

Algorytmy. Programowanie Proceduralne 1

Algorytmy. Programowanie Proceduralne 1

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

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:

Metodyki i techniki programowania

Wstęp do informatyki- wykład 2

Sposoby przedstawiania algorytmów

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Podstawowe struktury danych

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Podstawy Informatyki. Wykład 6. Struktury danych

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

POLITECHNIKA OPOLSKA

I. Podstawy języka C powtórka

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI

Metodyki i techniki programowania

Logiczny model komputera i działanie procesora. Część 1.

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

Spis treści. Część I Metody reprezentowania informacji oraz struktury danych...9. Wprowadzenie Rozdział 1. Reprezentacja liczb całkowitych...

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 90 minut

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Zadanie 1. Potęgi (14 pkt)

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

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

Podstawy Programowania C++

EGZAMIN MATURALNY Z INFORMATYKI

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW /99

Luty 2001 Algorytmy (1) 2000/2001 1

Czas pracy: 60 minut

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

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Transkrypt:

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

2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn Musy al-chorezmi (z Chorezmu), który ok. 820 roku n.e. opisał pozycyjny system kodowania dziesiętnego liczb i sztukę liczenia w tym systemie. W XII w. Europie przetłumaczono jego książkę i rozpoczęto wykonywanie obliczeń metodą "pisemną".

Algorytmy 3 Algorytmem nazywamy skończony ciąg instrukcji prowadzących do rozwiązania danego problemu lub zadania. Jest to przepis postępowania prowadzący do osiągnięcia jakiegoś celu. Implementacja to zapis algorytmu w języku programowania.

Algorytmy 4 Algorytmika - podstawowy dział informatyki poświęcony poszukiwaniom, konstruowaniu i badaniom algorytmów, zwłaszcza w kontekście ich przydatności do rozwiązywania problemów za pomocą komputerów. Program komputerowy - to logicznie uporządkowany ciąg instrukcji języka programowania realizujący algorytm.

Algorytmizacja zadania 5 Sformułowanie zadania Określenie danych wejściowych Określenie celu, czyli oczekiwanego wyniku Poszukanie metody rozwiązania, czyli algorytmu Przedstawienie algorytmu w postaci opisu słownego listy kroków schematu blokowego języka programowania Analiza poprawności rozwiązania Testowanie rozwiązania dla różnych danych ocena efektywności przyjętej metody

Cechy algorytmu 6 Skończoność (realizowany ciąg operacji powinien mieć swój koniec). Określoność (zarówno operacje, jak i porządek ich wykonywania powinny być ściśle określone, nie zostawiając miejsca na dowolną interpretację użytkownika). Ogólność (algorytm nie ogranicza się do jednego, pojedynczego, szczegółowego przypadku, ale odnosi się do pewnej klasy zadań). Efektywność (algorytm powinien prowadzi do rozwiązania możliwie najprostszą drogą).

Algorytmy 7 Liniowe - po każdym kroku jako kolejna wykonywana jest zawsze ta sama instrukcja. Algorytm liniowy posiada tylko i wyłącznie instrukcje bezpośredniego następstwa. Są one wykonywane w przewidzianej kolejności bez względu na dane, na których algorytm operuje. liczenie pola powierzchni

Algorytmy 8 Warunkowe (nazywanymi też algorytmami z rozgałęzieniami) może nastąpić kilka alternatywnych ciągów działań. Wybór jednego z nich następuje w zależności od spełnienia (bądź niespełnienia) warunku. sprawdzanie czy liczba jest dodatnia

Algorytmy 9 Iteracyjne występuje powtarzanie danego ciągu operacji. Liczba powtórzeń może być ustalona przed wykonaniem instrukcji lub może zależeć od spełnienia pewnego warunku, który jest sprawdzany w każdej iteracji. Iteracja inaczej zwana jest pętlą. sumowanie kilku kolejnych liczb

Opis słowny 10 Kontrola biletów Dane wejściowe: rok urodzenia Dane wyjściowe: decyzja o wpuszczeniu na seans Każdemu wchodzącemu należy sprawdzić wiek, odejmując od obecnego roku jego rok urodzenia. Jeżeli wchodzący ma 18 lub więcej lat należy go wpuścić do sali, w przeciwnym wypadku nie.

11 Lista kroków Kontrola biletów Dane wejściowe: rok urodzenia Dane wyjściowe: decyzja o wpuszczeniu na seans 1. Podaj rok urodzenia wchodzącego 2. Odejmij od obecnego roku rok urodzenia wchodzącego 3. Jeżeli wynik < 18 nie wpuszczaj do sali 4. Jeżeli wynik 18 wpuść do sali

Schemat blokowy 12 Algorytm w postaci schematu blokowego jest graficzną reprezentacją słownego zapisu algorytmu

Schemat blokowy 13 START STOP Skrzynki graniczne - wskazują początek i koniec wykonywania schematu blokowego. S a + b Skrzynka operacyjna (instrukcji) Wprowadź Wyprowadź Skrzynki wejścia/wyjścia dane lub wyniki.

Schemat blokowy 14 S > 10 Nie Tak Skrzynka warunku jest rombem, w którym umieszcza się warunek decydujący o dalszej kolejności wykonywania operacji.

Tak Start popatrz w lewo czy cos jedzie Nie Przejście przez ulicę przejdź do osi jezdni popatrz w prawo Schemat blokowy iteracyjny (warunkowy) Tak czy cos jedzie Nie przejdź przez jezdnię

Zmienne Zmienna jest synonimem pewnego obszaru pamięci, służącego do przechowywania danych. Posiada trzy podstawowe atrybuty: symboliczną nazwę identyfikator, miejsce przechowywania, wartość; Za pomocą nazwy możemy w kodzie źródłowym odwołać się do zawartości. W programie wartość zmiennej może być odczytywana lub zastępowana nową wartością, tak więc wartość zmiennej może zmieniać się w trakcie wykonywania programu. Nazwa i miejsce przechowywania nie zmieniają się w trakcie istnienia zmiennej

Zmienne Abstrakcja komórek pamięci: programista może przechowywać dane w pamięci, nie martwiąc się o techniczne szczegóły (np. przydział pamięci). Odpowiedniość między zmiennymi, a komórkami pamięci może być bezpośrednia (np. dla zmiennych typu całkowitego) odległa (np. wielowymiarowe tablice).

Zmienna Nazwa Adres liczba 23 Zakres widoczności Okres życia Wartość Typ

Typy danych Typ to pewien ustalony zbiór wartości, które mogą być przyjmowane przez zmienne. Z każdym typem związany jest rozmiar przydzielanej pamięci dla zmiennej danego typu. Z każdym typem związany jest zbiór operacji, które można wykonywać na wartościach z tego typu. Dozwolone operacje to wszystkie operatory, których dziedziną jest typ lub typ z nim zgodny (tu zgodność rozumiana jako zawieranie).

Schemat blokowy - liniowy 20 START Podaj (a) Podaj (b) Obliczanie sumy dwóch liczb S a + b STOP Wypisz S

Schemat blokowy - liniowy 21 START Podaj (a) Pole a * a Obliczanie pola kwadratu Wypisz Pole STOP

Schemat blokowy - warunkowy 22 START Podaj (a) Obliczanie wartości bezwzględnej Tak wynik a a 0 Nie wynik -a STOP Wypisz wynik

Start Czytaj N (2) S 0 L N N 2 S 0 L 2 Tak L > 0 Nie S 2 L 1 S 3 L 0 S S + L L L 1 Pisz S Schemat blokowy iteracyjny (z licznikiem) Obliczanie sumy N-kolejnych liczb naturalnych

Start Czytaj N S 0 N 2 S 0 N 2 Tak N > 0 Nie S 2 N 1 S 3 N 0 S S + N N N 1 Pisz S Schemat blokowy iteracyjny (z licznikiem) Obliczanie sumy N-kolejnych liczb naturalnych

Start Czytaj N S 0 Tak N > 0 Nie S S +N N N 1 Pisz S Schemat blokowy iteracyjny (z licznikiem) Obliczanie sumy N-wczytanych liczb naturalnych

Start Czytaj N S 0 Czytaj Liczba Tak N > 0 Nie S S + L N N 1 Pisz S

Start Czytaj N S 0 Czytaj Liczba Tak N > 0 Nie S S + Liczba N N 1 Pisz S

Start Czytaj N S 0 Czytaj Liczba N 3 S 0 Liczba 2 S 2 N 2 Liczba 4 Czytaj Liczba Tak N > 0 Nie S 6 N 1 Liczba 4 S 10 N 0 Liczba 5 S S + Liczba N N 1 Pisz S

Start Czytaj N S 0 N 3 S 0 Liczba 2 S 2 N 2 Liczba 4 N 3 S 0 Liczba 2 S 2 N 2 Tak Czytaj Liczba N > 0 Nie S 6 N 1 Liczba 4 S 10 N 0 Liczba 5 Liczba 4 S 6 N 1 Liczba 4 S 10 N 0 S S + Liczba N N 1 Pisz S

Start Czytaj N S 0 Tak N > 0 Nie Czytaj Liczba Pisz S S S + Liczba N N 1 Minimalna wartość z N-wczytanych liczb naturalnych

Start Czytaj N S 0 Tak Czytaj Liczba S <=30 Nie Wypisz Liczba Pisz S S S + Liczba Wczytywanie liczb aż suma > 30

Start Czytaj N Czytaj Liczba S Liczba S S + Liczba Tak S <=30 Nie Wypisz Liczba Wczytaj Liczba Wypisz Suma Wczytywanie liczb suma > 30, z przekroczeniem

Start Czytaj N S 0 Czytaj Liczba Min Liczba S S + Liczba N N 1 Min Liczba Tak N > 0 Nie Tak Nie Czytaj Liczba Pisz S Min > Liczba Pisz Min S S + Liczba N N 1

Rysowanie wzoru * * * * * * * * * * Start Czytaj N Tak Pisz * N > 0 Nie N N 1

Rysowanie wzoru * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Start Czytaj N Tak Pisz * N > 0 Nie Trzeba powtórzyć trzy razy N N 1

Rysowanie wzoru * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Start Czytaj linia N linia ile 3 N > 0 Nie Pisz \n Tak Pisz * N linia ile ile 1 N N 1 ile > 0 Tak Nie

Rysowanie wzoru * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Start Czytaj linia N linia ile 3 N > 0 Nie Pisz \n Tak Pisz * N linia ile ile 1 N N 1 ile > 0 Tak Nie

Rysowanie wzoru * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Start Czytaj ile N ile Tak N > 0 Nie Pisz \n Pisz * N ile ile ile 1 N N 1 ile > 0 Tak Nie

Rysowanie wzoru * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Start Czytaj ile N 1 Tak Pisz * N > 0 N N+1 Nie Pisz \n ile ile 1 N N 1 ile > 0 Tak Nie

Systemy pozycyjne System pozycyjny o dowolnej podstawie p p > 1 W systemie tym mamy p cyfr, które oznaczymy c i Zapisujemy pewną liczbę za pomocą n cyfr: c n-1 c n-2... c 2 c 1 c 0

Systemy pozycyjne wagi pozycji 0 1 2 2 1... p p p p p n n 0 1 2 2 1... c c c c c n n 1 1 2 2 2 2 1 1 0 0... n n n n p c p c p c p c p c 1 0 n i i c i p

Systemy pozycyjne p = 7, zbiór cyfr to {0,1,2,3,4,5,6} 43521 (7) =??? (10) 43521 (7) = 1 * 7 0 + 2 * 7 1 + 5 * 7 2 + 3 * 7 3 + 4 * 7 4 43521 (7) = 1 * 1 + 2 * 7 + 5 * 49 + 3 * 343 + 4 * 2401 43521 (7) = 10893 (10)

Systemy pozycyjne p = 17, zbiór cyfr to {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G} AGF63B (17) =??? (10) AGF63B (17) = 11 * 17 0 + 3 * 17 1 + 6 * 17 2 + 15 * 17 3 + 16 * 17 4 + 10 * 17 5 AGF63B (17) = 11 *1 + 3 * 17 + 6*289 + 15 *4.913 + 16 *83.521 + 10*1.419.857 AGF63B (17) = 15 610 397 (10)

Systemy pozycyjne Podany sposób obliczania wartości liczby zapisanej w dowolnym systemie pozycyjnym jest poprawny, lecz z punktu widzenia wykonywania obliczeń czasochłonny, ponieważ występują w nim potęgi podstawy. Działanie potęgowania jest czasochłonne - komputery dużo szybciej wykonują mnożenie i dodawanie.

Schemat Hornera Sposób obliczenia wartości wielomianu dla danej wartości argumentu wykorzystujący minimalną liczbę mnożeń. L = C 4 p 4 + C 3 p 3 + C 2 p 2 + C 1 p 1 + C 0 p 0 Ponieważ p 1 = p oraz p 0 = 1 L = C 4 p 4 + C 3 p 3 + C 2 p 2 + C 1 p + C 0

Schemat Hornera L = C 4 p 4 + C 3 p 3 + C 2 p 2 + C 1 p + C 0 L = p*( C 4 p 3 + C 3 p 2 + C 2 p 1 + C 1 )+ C 0 L = p*(p*( C 4 p 2 + C 3 p 1 + C 2 ) + C 1 )+ C 0 L = p*(p*( p*(c 4 p 1 + C 3 )+ C 2 ) + C 1 )+ C 0 L = p*(p*( p*(p*(c 4 )+ C 3 )+ C 2 ) + C 1 )+ C 0

Schemat Hornera L = p*(p*( p*(p*(c 4 )+ C 3 )+ C 2 ) + C 1 )+ C 0 Możemy przekształcić ze względu na przemienność mnożenia: L = (((C 4 *p + C 3 )* p + C 2 ) *p + C 1 ) *p + C 0

Dla wielomianu n-tego stopnia w zwykłej postaci należy wykonać Schemat n*(1+n)/2 Hornera mnożeń, a dla wielomianu po zastosowaniu schematu Hornera tylko n mnożeń! L = ((((C 4 ) *p + C 3 )* p + C 2 ) *p + C 1 ) *p + C 0 Budujemy algorytm : L 0 = C 4 - wartość początkowa L 1 = L 0 p + C 3 = C 4 p + C 3 L 2 = L 1 p + C 2 = (C 4 p + C 3 ) p + C 2 = C 4 p 2 + C 3 p + C 2 L 3 = L 2 p + C 1 = (C 4 p 2 + C 3 p + C 2 ) p + C 1 = C 4 p 3 + C 3 p 2 + C 2 p + C 1 L 4 = L 3 p + C 0 = (C 4 p 3 + C 3 p 2 + C 2 p + C 1 ) p + C 0 = C 4 p 4 + C 3 p 3 + C 2 p 2 + C 1 p + C 0

Struktury danych - tablice Tablica jednowymiarowa - to zestaw elementów takiego samego typu. Dostęp do poszczególnych elementów jest poprzez indeksowanie. 6 liczba1 6 tablica[1] 7 liczba2 7 tablica[2] 15 liczba3 15 tablica[3]

Tablica jednowymiarowa Tablica jednowymiarowa - to zestaw elementów takiego samego typu. Dostęp do poszczególnych elementów jest poprzez indeksowanie. 6 liczba1 indeks 1 6 tablica[1]=6 7 liczba2 indeks 2 7 tablica[2] = 7 15 liczba3 indeks 3 15 tablica[3] = 15

Tablica jednowymiarowa Wczytanie zawartości tablicy 3elementowej Start wczytaj tab[1] wczytaj tab[2] Start i 1 i 3 Nie wczytaj tab[3] Tak 6 tablica[1] wczytaj tab[i] 7 tablica[2] 15 tablica[3] i i + 1

Tablica jednowymiarowa Wczytanie i wypisanie zawartości tablicy 3elementowej Start i 1 i 3 Nie i 1 Tak 6 tablica[1] wczytaj tab[i] i i + 1 Nie i 3 Tak wypisz tab[i] 7 15 tablica[2] tablica[3] i i + 1

Tablica jednowymiarowa Start i 1 i 3 Nie i 3 Tak 6 tablica[1] wczytaj tab[i] i i + 1 Nie i 1 Tak wypisz tab[i] 7 15 tablica[2] tablica[3] i i - 1

Tablica jednowymiarowa Dane wejściowe : 10-cio elementowa tablica liczb całkowitych Dane wyjściowe: suma elementów tablicy Start wczytaj : A[1],,A[10] Suma 0 licznik 1 licznik <=10 Suma Suma + A[licznik] licznik licznik + 1 Wypisz Suma

Tablica jednowymiarowa Dane wejściowe : 10-cio elementowa tablica liczb całkowitych Dane wyjściowe: najmniejszy elementów tablicy Start wczytaj : A[1],,A[10] Min A[1] licznik 2 A[licznik]< Min licznik <=10 licznik licznik + 1 Min A[licznik] Wypisz Min

Tablica jednowymiarowa Dane wejściowe : 10-cio elementowa tablica liczb całkowitych Dane wyjściowe: najmniejszy elementów tablicy Start wczytaj : A[1],,A[10] Min Min A[1] 1 licznik 2 A[licznik]< A[Min] licznik <=10 licznik licznik + 1 Min Min A[licznik] Wypisz Min Wypisz A[Min]

Tablica jednowymiarowa Dane wejściowe : 10-cio elementowa tablica liczb całkowitych Dane wyjściowe: najmniejszy elementów tablicy Start wczytaj : A[1],,A[10] Min Min A[1] 1 licznik 2 A[licznik]< A[Min] licznik <=10 licznik licznik + 1 Min Min A[licznik] Wypisz Min Wypisz A[Min]

Sortowanie Dane wejściowe : trzy liczby w dowolnym porządku Dane wyjściowe: trzy liczby w porządku rosnącym Start wczytaj : 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 Start wczytaj : A[1],,A[10] Min Min A[1] 1 licznik 2 A[licznik]< A[Min] licznik <=10 licznik licznik + 1 Min Min A[licznik] Wypisz Min Wypisz A[Min]

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 1 licznik 2 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 Wypisz Min Wypisz A[Min] 1 2 3 26 7 15

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 1 licznik 2 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 Wypisz Min Wypisz A[Min] 1 2 3 26 7 15

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 1 licznik 2 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 Wypisz Min Wypisz A[Min] 1 2 3 26 7 15

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 1 licznik 2 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 A[Min] A[1] Wypisz A[Min] 1 2 3 26 7 15

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 1 licznik 2 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 1 2 3 26 7 15 A[Min] A[1] Wypisz A[Min] 1 2 3 7 26 15

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 1 licznik 2 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 A[Min] A[1] Wypisz A[Min] 1 2 3 7 26 15

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 2 licznik 3 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 1 2 3 7 26 15 A[Min] A[1] Wypisz A[Min]

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 2 licznik 3 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 1 2 3 7 26 15 A[Min] A[1] Wypisz A[Min]

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 2 licznik 3 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 1 2 3 7 26 15 1 2 3 A[Min] A[2] Wypisz A[Min] 7 15 26

Tablica jednowymiarowa Start wczytaj : A[1],,A[10] Min 2 licznik 3 licznik licznik + 1 A[licznik]< A[Min] Min licznik licznik <=10 1 2 3 7 26 15 1 2 3 A[Min] A[2] Wypisz A[Min] 7 15 26

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Start wczytaj : tablice A pocz 1 pocz < 9 Min pocz licznik pocz+1 A[licznik]< A[Min] Min licznik licznik <=10 A[Min] A[pocz] licznik licznik + 1 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 1 2 3 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 1 2 3 4 5 6 7 08 9 first = 0 count = 5 indeks końcowy = first + count

Kolejka FIFO - front 0 1 2 3 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 1 2 3 4 5 6 7 08 9 first = 0 count = 5

Kolejka FIFO - pop x 0 1 2 3 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 1 2 3 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 1 2 3 4 5 6 7 8 9 first = 9 count = 6 x first = 0 count = 5

Kolejka FIFO - push 0 1 2 3 4 5 6 7 8 9 first = 0 count = 5 x 0 1 2 3 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 1 2 3 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 1 2 3 4 5 6 7 8 9 first = 3 count = 9

Kolejka FIFO - push 0 1 2 3 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 1 2 3 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.