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

Podobne dokumenty
1 Wprowadzenie do algorytmiki

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

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

Algorytm. Krótka historia algorytmów

Algorytmy. Programowanie Proceduralne 1

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Definicje. Algorytm to:

Algorytm. a programowanie -

Algorytmy i schematy blokowe

Algorytmy. Programowanie Proceduralne 1

Wprowadzenie do algorytmiki

Algorytmika i pseudoprogramowanie

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

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

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

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

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

Podstawy Informatyki. Metalurgia, I rok niestacjonarne. Wykład 2 Algorytmy

ALGORYTMY I PROGRAMY

Podstawy Programowania Algorytmy i programowanie

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Definicja algorytmu brzmi:

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

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

Podstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Algorytm. Krótka historia algorytmów

2.8. Algorytmy, schematy, programy

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

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

Programowanie i techniki algorytmiczne

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

Metodyki i techniki programowania

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

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Język ludzki kod maszynowy

Algorytmy i struktury danych. Wykład 4

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Zapisywanie algorytmów w języku programowania

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

Podstawy Programowania

Matematyczne Podstawy Informatyki

Sposoby zapisywania algorytmów

Język programowania PASCAL

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

Metodyki i techniki programowania

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

Temat 20. Techniki algorytmiczne

Programowanie komputerów

Technologie informacyjne - wykład 12 -

Zasady analizy algorytmów

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

EGZAMIN MATURALNY 2012 INFORMATYKA

Luty 2001 Algorytmy (1) 2000/2001 1

Wstęp do Informatyki

Podstawy Informatyki. Programowanie. Metalurgia, I rok. Co to jest algorytm? Istotne cechy algorytmu

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

WHILE (wyrażenie) instrukcja;

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

Programowanie strukturalne

Podstawy i języki programowania

2. Graficzna prezentacja algorytmów

Języki programowania zasady ich tworzenia

Sortowanie - wybrane algorytmy

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

Podstawy programowania. Podstawy C# Przykłady algorytmów

Szczegółowy program kursów szkoły programowania Halpress

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

Złożoność obliczeniowa zadania, zestaw 2

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

2.1. Duszek w labiryncie

Programowanie w języku C++ Grażyna Koba

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę

Wstęp do informatyki- wykład 2

Programowanie w języku Python. Grażyna Koba

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

Algorytmy od problemu do wyniku

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Algorytmy, reprezentacja algorytmów.

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

KARTA KURSU. Wstęp do programowania

Rekurencja (rekursja)

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

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

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Poprawność semantyczna

W szkole podstawowej materiał przedstawiony powinien być w następującej kolejności:

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

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

Schematy blokowe. Algorytmy Marek Pudełko

Ilość cyfr liczby naturalnej

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Transkrypt:

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1

Spis treści 1 Pojęcie algorytmu 3 2 Sposób zapisu 3 3 Poziom szczegółowości 4 4 Czynności proste i strukturalne 5 5 Pojęcie procedury i funkcji 5 2

1 Pojęcie algorytmu Algorytmem nazywamy ściśle określoną procedurę obliczeniową, która dla danych wejściowych produkuje pożądane dane wyjściowe, czyli wynik działania algorytmu [1]. Możemy więc traktować algorytm jako ciąg kroków obliczeniowych prowadzących do przekształcania danych wejściowych w wyjściowe. Przykładowe algorytmy to chociażby: 1. Algorytm Euklidesa (służący do odnajdywania NWD dwóch liczb); 2. Algorytm służący do obliczania n-tych wyrazów ciągu Fibonacciego; 3. Algorytmy sortowania, np. poprzez kopcowanie. Dobrze skonstruowany algorytm powinien byc poprawny, skończony oraz efektywny. 2 Sposób zapisu Algorytmy można przedstawiać na kilka sposobów: Opis słowny - na ogół mało dokładny, przykładem może być chociażby przepis kulinarny. Lista kolejnych kroków postępowania np: Krok 1 Rozpocznij pracę Krok 2 Pobierz pierwszą liczbę (a) Krok 3 Pobierz durgą liczbę (b) Krok 4 Wykonaj dodawanie liczby pierwszej do drugiej (a+b) Krok 5 Podaj wynik dodawania Krok 6 Zakończ pracę Schemat blokowy - tu przedstawiamy algorytm graficznie, przy pomocy skrzynek : skrzynka graniczna - ma kształt owalu; oznaczamy nią początek i koniec algorytmu. skrzynka operacyjna - ma kształt prostokąta; oznacza wykonywane działania, np: podstawianie (i:=1). skrzynka wejścia - ma kształt równoległoboku; oznacza wprowadzanie danych lub wyprowadzanie wyników. skrzynka warunkowa - ma kształt rombu; oznacza najczęśćiej sprawdzanie jakiegoś warunku i posiada najczęściej wartość zmiennej boolean (to znaczy może przyjmować wartość prawdy lub fałszu). 3

Drzewo algorytmu - graficzna reprezentacja algorytmu przyjmująca postać drzewa. W takiej reprezentacji, wierzchołki pośrednie drzewa zawierają wykonywane w algorytmie operacje, a w wierzchołkach końcowych znajdują się wszystkie możliwe wyniki wykonania algorytmu. Pomaga ono prześledzić przebieg działania algorytmu oraz określić jego złożoność. W opracowaniach informatycznych drzewo rysowane jest do góry nogami, to znaczy z korzeniem u góry. Wyróżnc można korzeń -wierzchołek, w którym zaczynają się działania algorytmu, wierzchołoki pośrednie, gdzie znajdują się wykonywane operacje, a także wierzchołki końcowe, które odpowiadają różnych możliwością zakończenia działania algorytmu. Pseudokod - korzystając z tego sposobu rezygnujemy z reguł składniowych danego języka programowania na rzecz czytelnośći (np: wyświetl na ekranie: Hello World), często za graficzny obraz pseudokodu przyjmuje się schemat blokowy. Program w danym języku programowania, np. w języku Pascal: begin writeln( Hello World ); end. 3 Poziom szczegółowości Poziom szczegółowości to jedna z cech algorytmów. Powinien być dobrany tak, aby był zrozumiały dla maszyny, komputera, który wykonuje dany algorytm, który powinien składać się z akcji podstawowych. Szczegółowość algorytmu w dużej mierze zalezy od złożoności problemu, do którego rozwiązywania ma służyć. Idąc tym tropem nie trudno zauważyć, że nie tylko różnić się będą struktury algorytmu którego zadaniem bedzie dodawanie do siebie dwóch liczb będzie się różnić od struktury algorytmu liczacego wartość funkcji n!, ale także w różny sposób można przedstawić działanie jednego algorytmu, np. algorytmu szukającego NWD dwóch liczb: Przykład 1 - Odnajdywanie NWD dwóch liczb w sposób szkolny, opisane szczegółowo Krok 1 Pobierz liczby a i b Krok 2 Wypisz czynniki pierwsze liczby a jako listę A Krok 3 Wypisz czynniki pierwsze liczby b jako listę B Krok 4 Utwórz listę liczb C, jako listę elementów wspólnych dla A i B 4

Krok 5 Oblicz c jako iloczyn elementów listy C, jesli lista jest pusta to c=1 Krok 6 Podaj wynik dodawania Krok 7 Zakończ pracę Przykład 2 - Algorytm Euklidesa [6], opisany w sposób o wiele mniej szczegółowy niż meta w Przykładzie 1 Krok 1 Oblicz c jako resztę z dzielenia a przez b Krok 2 Zastąp pozycję a liczbą b, a pozycję b liczbą c Krok 3 Jeżeli pozycja b=0, to szukane NWD=a, w przeciwnym wypadku wróć do Kroku 1 Jak widac, algorytm o małym poziomie szczegółowości będzie rozumiał polecenia o wiele bardziej skomplikowane, np. znajd NWD liczb a i b, natomiast algorytm o wyższym poziomie szczegółowości będzie potrzebował, aby mu to polecenie krok po kroku wytłumaczyć, rozpisać. Przeciwieństwem poziomu szczegółowości jest poziom abstrakcji - im wyższy poziom abstrakcji, tym niższy poziom sczegółowości danego algorytmu, tym bardziej skompliowane polecenia algorytm rozumie. Często konstruując algorytmy pisze się je na niskim poziomie szczegółowości, a potem dopiero uszczegóławia polecenia, które są złożone. 4 Czynności proste i strukturalne Czynności proste są podstawowymi składnikami programów (elementarnymi elementami języka, w którym programujemy),co oznacza, że nie zawierają w sobie żadnych dodatkowych instukcji. Przykładem może być instrukcja wprowadzenia danych, instrukcja przypisania itp. Czynności strukturalne natomiast zawierają w sobie czynności proste,na tej podstawie budowane są rekurencje, iteracje (instrukcje powtarzalne), czy instrukcje warunkowe. 5 Pojęcie procedury i funkcji Procedury i funkcje inaczej zwane sa podprogramami, czyli wydzielonymi częściami wykonującymi dane operacje. Służą one przede wszystkim do uproszczenia kodu programu głównego. Na ogół konstruując podprogram musimy dostosować opis podprogramu do struktury danych w naszym programie głównym. W częsci języków programowania nie wyróżnia się różnicy pomiędzy procedurami i funkcjami i nazywa się je ogólnie podprogramami. 5

W gruncie rzeczy, różnica między funkcjami i procdurami jest następująca: funkcja ma wykonywać obliczenia i zwracać jakąś wartość, nie powinna natomiast mieć żadnego innego wpływu na działanie programu (np. funkcja obliczająca pierwiastek kwadratowy), procedura natomiast nie zwraca żadnej wartości, zamiast tego wykonuje pewne działania (np. procedura czyszcząca ekran). W jezyku Pascal podprogramy wyglądają następująco: Jako procedura: procedurep rocedura({argumenty}); begin {instrukcjedowykonania} end; Jako funkcja: f unctionf unkcja({argumenty}) : integer; {typwartoscif unkcji} begin {instrukcjedowykonania(cialof unkcji)} end; Literatura [1] Thomas H. Cormen,Charles E. Leiserson, Ronald L. Rivest, Stein Clifford Wprowadzenie do algorytmów Warszawa 2001 [2] Maciej M. Sysło Algorytmy Warszawa 2002 [3] http://www.staff.amu.edu.pl/ psi [4] http://icis.pcz.pl/ olga/dydaktyka.html [5] http://www.nw.pwr.wroc.pl/ szczygiel/wyklady/elprog3.doc [6] http://www.pl.wikipedia.org/ 6