Kinga Kołodziej, Marta Trębicka

Slides:



Advertisements
Podobne prezentacje
Algorytmika w szkole podstawowej
Advertisements

PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
PODSUMOWANIE.
Materiały pochodzą z Platformy Edukacyjnej Portalu
Opracowała: Elżbieta Fedko
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 1: Wprowadzenie do programowania.
P O D S T A W Y P R O G R A M O W A N I A
ALGORYTMY.
Algorytmy.
Algorytmy i struktury danych
ALGORYTMY INSTRUKCJE WARUNKOWE Część III.
JAKO CZĘŚĆ NASZEGO ŻYCIA
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Wstęp do interpretacji algorytmów
CO TO JEST ALGORYTM!.
Algorytmy Podstawowe pojęcia.
Dr Anna Kwiatkowska Instytut Informatyki
Algorytmy Marek Pudełko
Algorytmy i algorytmika Opracowanie: Maciej Karanowski
ALGORYTMY Opracowała: ELŻBIETA SARKOWICZ
Budowa algorytmów Algorytm: skończony ciąg operacji wraz z ściśle sprecyzowanym porządkowaniem ich wykonywania, które po realizacji dają rozwiązanie dowolnego.
ALGORYTMY.
Algorytmy.
Agata Łysakowska Klasa III „n”
Algorytmy Opracowanie: Maria Skalska na podstawie „Informatyka 2000” wydawnictwa Czarny Kruk.
Podstawy programowania
Metody przedstawiania algorytmów.
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy.
Programowanie strukturalne i obiektowe
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
Prowadzący: Dr inż. Jerzy Szczygieł
Budowanie schematu blokowego
GIMNAZJUM nr 1 W BIERUNIU
ALGORYTMY.
Programowanie strukturalne i obiektowe
Algorytmy.
Elżbieta Fiedziukiewicz
Początek, koniec lub przerwanie algorytmu
Lekcja organizacyjna Klasa III.
Spis treści W świecie algortmów -Budowa algorytmu
INSTRUKCJA WARUNKOWA (TJ. JEŻELI)
ZAPIS BLOKOWY ALGORYTMÓW
Algorytmy.
Algorytmika.
Instrukcje iteracyjne
Wprowadzenie do algorytmiki
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Algorytmy i struktury danych
Algorytmy- Wprowadzenie do programowania
opracowała: Anna Mikuć
ALGORYTMY-WPROWADZENIE. ALGORYTMY W ŻYCIU CODZIENNYM
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Algorytmy.
Wstęp do interpretacji algorytmów
Pętle – instrukcje powtórzeń
Temat 3: Podstawy programowania Algorytmy – 2 z 2 _________________________________________________________________________________________________________________.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Co to jest algorytm? Uporządkowany i uściślony sposób rozwiązania danego problemu, zawierzający szczegółowy opis wykonywanych czynności w skończonej.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Wstęp do Informatyki - Wykład 6
Zrozumieć, przeanalizować i rozwiązać
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Kinga Kołodziej, Marta Trębicka ALGORYTMY Kinga Kołodziej, Marta Trębicka

Co to jest algorytm? „Algorytm, tym wyrazem oznaczamy zbiór wszystkich znaków używanych w jakimkolwiek rachunku.” Encyklopedia Powszechna Orgelbranda (1859) „Algorytm, zbiór wszystkich znaków używanych w jakimkolwiek rachunku. Tak mamy algorytm rachunku różniczkowego, algorytm proporcji. Wyraz ten pochodzi od nazwiska matematyka arabskiego Alkaresmi…” Encyklopedia Powszechna Orgelbranda (1898-1912)

„Algorytm oznacza działanie matematyczne; pochodzi od arabskiego imienia Alchwarizmi. Znany jest algorytm Euklidesa dla oznaczenia największego wspólnego dzielnika dwu liczb całkowitych” Encyklopedia Gutenberga „Algorytm (arab.) matematyczny przepis postępowania, instrukcja mechanicznego, bezmyślnego rozwiązywania typowego zadania matematycznego na podstawie szczegołówego planu kolejnych czynności arytmetycznych, np. algorytm wyciągania pierwiastka kwadratowego […] Wyraz algorytm […] oznaczał w wiekach średnich regułę wykonywania czterech działań arytmetycznych w dziesiętnym systemie numeracji. Ostateczną definicję algorytmu podano dopiero w XX w.” I tom Encyklopedii Powszechnej PWN

Algorytm w procesie powstawania Algorytm jest przepisem opisującym krok po kroku rozwiązanie problemu lub osiągnięcie jakiegoś celu

Na całościowe rozwiązanie problemu składają się : • wybór metody rozwiązania problemu • plan zastosowania tej metody do rozwiązania problemu • opis czynności wykonywanych podczas realizacji tego planu wraz z opisem ich skutków • ostateczny wynik wykonywanych czynności Czynności służące do rozwiązania zadania (kroki) to : • analiza treści zadania • wykaz danych wejściowych; wiadomych i niewiadomych oraz relacji między nimi • sprawdzenie czy zadanie posiada jednoznaczne rozwiązanie • wybór metody rozwiązania zadania • opis czynności, które należy wykonać z danymi wejściowymi przy zastosowaniu • wybranej metody rozwiązania • sporządzenie i przedstawienie wyników rozwiązania zadania • Urządzenie techniczne, które może realizować algorytm nosi nazwę automatu (żelazko z termoregulatorem, lodówka, pralka automatyczna). Uniwersalnym automatem do realizacji algorytmów z zakresu przetwarzania danych jest komputer.

Trochę historii… Początkowo słowem algorism nazywano czynności konieczne do wykonywania obliczeń z użyciem dziesiętnego systemy liczbowego. Obecne znaczenie słowa algorytm jako zestawu ścisłych reguł powstało wraz z rozwojem matematyki i techniki. Najstarszy algorytm – algorytm Euklidesa, ma ponad 2000 lat. Liczydła – Pierwsze urządzenia pomagające wykonywać obliczenia. Konstruowali je Chińczycy, Rzymianie, Arabowie Kalkulatory – XVII w, twórcy: Blaise Pascal (1623-1662) i Gottfried W. Leibniz (1646-1716) Pierwsze komputery – początek wieku XIX, Charles Babbage (1791-1871). Komputer (w dzisiejszym sensie) – Konrad Zuze (1910-1995), pierwsza maszyna jeszcze przed II WŚ.

Rodzaje algorytmów ALGORYTMY LINIOWE WARUNKOWE sekwencyjne iteracyjne rekurencyjne

Algorytm sekwencyjny Instrukcje wykonywane są w porządku, w jakim zostały wprowadzone. Algorytm liniowy (sekwencyjny) — instrukcje wykonywane po kolei  1. Przygotuj jajko, tłuszcz, przyprawy 2. Wrzuć tłuszcz na patelnię 3. Podgrzej patelnię 4. Wbij jajko 5. Dodaj przyprawy 6. Wymieszaj 7. Wyłóż na talerz

Algorytm iteracyjny rodzaj algorytmu i programu, w których wielokrotnie wykonuje się pewne instrukcje, dopóki nie zostanie spełniony określony warunek, Algorytm iteracyjny warunkowy (iteratio- powtarzanie, działanie w pętli) Dopóki jest czerwone światło dla pieszych stój i czekaj 1. Stój 2. Czy świeci się czerwone światło?          A. Jeśli TAK to przejdź do kroku 1          B. Jeśli NIE to przejdź do kroku 3 3. Można przejść przez ulicę zachowując ostrożność

Algorytm rekurencyjny Algorytm rekurencyjny to taki, który w pewnym kroku zawiera polecenie wykonania siebie samego dla innych danych. Takie rekurencyjne wywołanie algorytmu wykorzystuje domyślnie stos, na którym zapisywane są aktualne wartości wszystkich wykorzystywanych zmiennych. Są one przywracane w chwili ukończenia rekursywnego wywołania algorytmu. Przykładem rekurencji jest prosty algorytm o nazwie   jedz kaszkę:   1. Jedz kaszkę  (weź łyżkę kaszki i połknij)         2. Jedz kaszkę dalej, aż talerz będzie pusty

Sposoby reprezentacji algorytmu: - Lista kroków (reprezentacja krokowa-w punktach) - reprezentacja graficzna (schemat blokowy, drzewo) Lista kroków- przedstawienia w punktach, - każdy punkt zawiera opis wykonywanej czynności, - kolejność opisywania nie powinna być przypadkowa, tylko ściśle związana z realizacją algorytmu; Reprezentacja graficzna – w schemacie blokowym kolejne operacje z listy kroków algorytmu prezentowane są w postaci odpowiednio połączonych figur geometrycznych (bloki). Kształt i opis bloku wskazuje na rodzaj wykonywanej operacji.

Słowny opis algorytmu Jest na ogół pierwszym, mało ścisłym opisem algorytmu. Rozpoczyna się dyskusją jak można rozwiązać postawione zadanie i służy wyrobieniu pewnej intuicji oraz ukierunkowaniu rozważań na właściwe sposoby i techniki przydatne w rozwiązywaniu.

Opis algorytmu w postaci listy kroków Lista kroków jest jednym z najczęściej stosowanych, dokładnych sposobów opisywania obliczeń oraz ich kolejności. Przykład: 1. Podejdź do telefonu 2. Podnieś słuchawkę 3. Sprawdź, czy jest sygnał... 4. ... Jest to początek algorytmu wykonania telefonu podany w postaci listy kroków ZAPAMIĘTAJ! by w jednym punkcie (kroku) opisać t y l k o j e d n ą o p e r a c j ę

Algorytm w postaci listy kroków Algorytm obliczania wartości przykładowej funkcji Dane: Dowolna liczba rzeczywista x. Wynik: Wartość funkcji f(x) określonej wzorem: {-1, dla x<0 f(x) = {0, dla x=0 {1, dla x=1 Krok 0. Wczytaj wartość danej x. Krok 1. Jeśli x>0, to f(x)=1. Zakończ algorytm. Krok 2. {W tym przypadku x < 0.} Jeśli x=0, to f(x)=0. Zakończ algorytm. Krok 3. {W tym przypadku x<0.} Mamy f(x)=-1. Zakończ algorytm.

Drzewo algorytmu (drzewo obliczeń) Szczególny rodzaj schematu blokowego, który przyjmuje postać drzewa. (Każde dwie drogi obliczeń w takim schemacie mogą mieć tylko początkowe fragmenty wspólne, ale po rozejściu już się nie spotykają). W drzewie algorytmu można wyróżnić: * korzeń – wierzchołek, w którym rozpoczynają się działania algorytmu, * wierzchołki pośrednie – są w nich umieszczone operacje wykonywane w algorytmie, * wierzchołki końcowe (liście) – różne wyniki zakończenia obliczeń w algorytmie.

Schemat blokowy algorytmu Jest jednym z najbardziej popularnych, graficznych sposobów przedstawiania algorytmów. Składa się z klatek (są w nich zapisywane operacje, które mają być wykonane) oraz połączeń między nimi (wyznaczają kolejność ich wykonywania). Można je budować odręcznie, można również konstruować je posługując się oprogramowaniem.

ZASADY BUDOWY SCHEMATU BLOKOWEGO 1) Każda operacja jest umieszczona w skrzynce 2) Schemat ma tylko jedną skrzynkę "początek" i przynajmniej jedną skrzynkę "koniec" 3) Skrzynki są ze sobą połączone. 4) Ze skrzynki wychodzi jedno połączenie; wyjątek stanowią skrzynki: "koniec" (z której nie wychodzą już żądne połączenia) oraz "warunkowa" (z której wychodzą dwa połączenia opisane TAK i NIE - w zależności od tego, czy warunek jest spełniony czy nie, można wyjść jedną z dwóch dróg) 5) W skrzynce "operacyjnej" zamiast znaku "=" pojawia się oznaczenie ":="

Rodzaje sieci działań: Proste (sekwencyjne) - nie używa się w nich bloków warunkowych. W takiej sieci działań kolejność realizacji poszczególnych operacji jest ściśle określona i żadna z nich nie może być pominięta ani powtórzona. Z rozwidleniem - zawiera w sobie wybór jednej z kilku możliwych dróg realizacji danego zadania. Istnieje w nim przynajmniej jeden blok warunkowy. Z pętlą, często w trakcie realizacji danego zadania konieczne jest powtórzenie niektórych operacji różniących się jedynie zestawem danych. Pętla obejmuje tą część bloków, która ma być powtarzana. Złożone - będące kombinacją powyższych sieci.

Struktury danych Stos – liniowa struktura danych, w której dane dokładane są na koniec zbioru i z końca zbioru są pobierane (czyli pobierany jest element dodany najpóźniej). Strategia LIFO (ang. Last In, First Out; ostatni na wejściu, pierwszy na wyjściu). Kolejka – liniowa struktura danych, w której dane pobierane są w kolejności ich dołożenia do zbioru (czyli pobierany jest element dodany najwcześniej). Strategia FIFO (ang. First In, First Out; pierwszy na wejściu, pierwszy na wyjściu). Lista tablicowa – struktura danych, w której elementy są ułożone w liniowym porządku. Lista zaimplementowana w ten sposób opiera się na tablicy obiektów (lub rekordów) danego typu.

Złożoność i efektywność algorytmów Złożoność obliczeniowa algorytmu – liczba operacji wykonywanych przez algorytm. Algorytmy optymalne – bezwzględnie najlepsze algorytmu rozwiązywania problemów Efektywność algorytmu – złożoność algorytmu w praktycznym sensie. Najczęściej pojawia się w porównaniach różnych metod rozwiązywania tego samego problemu lub w ocenie praktycznej przydatności algorytmów.

Wieże Hanoi Mamy trzy paliki – oznaczamy je A, B i C – oraz pewną liczbę krążków różnej wielkości z otworami,nanizanych na palik A w kolejności od największego do najmniejszego, największy znajduje się na dole. Łamigłówka polega na przeniesieniu wszystkich krążków z palika A na palik B, z możliwością posłużenia się przy tym palikiem C, w taki sposób,że : Pojedynczy ruch polega na przeniesieniu jednego krążka między dwoma palikami; W żadnej chwili rozwiązywania łamigłówki większy krążek nie może leżeć na mniejszym. SPRÓBUJ TERAZ ROZWIĄZAĆ TĘ ŁAMIGŁÓWKĘ Z TRZEMA KRĄŻKAMI.

Możliwe rozwiązanie składa się z trzech etapów: Przenieś n-1 górnych krążków z palika A na palik C, używając B. Przenieś największy krążek z palika A na palik B. Przenieś wszystkie krążki z palika C na palik B, używając palika A.

Algorytm rekurencyjny rozwiązywania łamigłówki Wież Hanoi Dane: Trzy paliki A, B i C, oraz n krążków o różnych średnicach, nanizanych od największego do najmniejszego na palik A. Krążki można przenosić między palikami tylko pojedynczo i nigdy nie można położyć większego na mniejszym. Wynik: Krążki nanizane na palik B – do uzyskania tego wyniku można wykonywać jedynie dopuszczalne przenoszenia. Krok 1. Jeśli n=1, to przenieś krążek z palika A na palik B i zakończ algorytm dla n=1. Krok 2. {W tym przypadku liczba krążków na paliku A jest większa od 1.} 2a. Stosując ten algorytm, przenieś n-1 krążków z A na C, używając B. 2b. Przenieś pozostały krążek z A na B. 2c. Stosując ten algorytm, przenieś n-1 krążków z C na B, używając A.

A B C 2. poziom rekurencji dla kroku 2a – kroki: 2a: 2b: 2c: A B C 1.poziom rekurencji-krok 2a: A B C 2. poziom rekurencji dla kroku 2a – kroki: 2a: 2b: 2c: 1.poziom rekurencji-kroki: 2b: 2c: 2. poziom rekurencji dla kroku 2a – kroki: 2a: 2b: 2c:

koniec DZIĘKUJEMY ZA UWAGĘ !!