Temat: Wprowadzenie do interpretacji algorytmów (4h).

Slides:



Advertisements
Podobne prezentacje
Wstęp do interpretacji algorytmów
Advertisements

Wstęp do interpretacji algorytmów
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
Ekonometria WYKŁAD 10 Piotr Ciżkowicz Katedra Międzynarodowych Studiów Porównawczych.
Plan Czym się zajmiemy: 1.Bilans przepływów międzygałęziowych 2.Model Leontiefa.
Postanowienie Śląskiego Kuratora Oświaty w Katowicach z dnia 29 stycznia 2016 r. w sprawie terminów składania dokumentów i terminów rekrutacji uczniów.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
© Matematyczne modelowanie procesów biotechnologicznych - laboratorium, Studium Magisterskie Wydział Chemiczny Politechniki Wrocławskiej, Kierunek Biotechnologia,
ZASTOSOWANIE FUNKCJI WYKŁADNICZEJ I LOGARYTMICZNEJ DO OPISU RUCHU DRGAJĄCEGO Agnieszka Wlocka Agnieszka Szota.
18 kwietnia 2016 (poniedziałek) Część humanistyczna 19 kwietnia 2016 (wtorek) Część matematyczno – przyrodnicza 20 kwietnia 2016 (środa) Język obcy nowożytny.
Niepewności pomiarowe. Pomiary fizyczne. Pomiar fizyczny polega na porównywaniu wielkości mierzonej z przyjętym wzorcem, czyli jednostką. Rodzaje pomiarów.
Finansowanie wybranych działań w parkach narodowych przy udziale środków funduszu leśnego - zakres finansowy Warszawa, 06 kwietnia 2016r.
EWALUACJA JAKO ISTOTNY ELEMENT PROJEKTÓW SYSTEMOWYCH Sonia Rzeczkowska.
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
Funkcja liniowa Przygotował: Kajetan Leszczyński Niepubliczne Gimnazjum Przy Młodzieżowym Ośrodku Wychowawczym Księży Orionistów W Warszawie Ul. Barska.
Algorytmy Informatyka Zakres rozszerzony
Założenia psychologii kognitywnej (poznawczej) jako innowacyjna forma pracy z uczniem realizowana w Zespole Szkół w Gębicach.
KOMBINATORYKA.
Ocena oddziaływania na środowisko jako warunek uzyskania funduszy unijnych w ramach I i II osi priorytetowej Programu Operacyjnego Infrastruktura i Środowisko.
Matematyka przed egzaminem czyli samouczek dla gimnazjalisty Przygotowała Beata Czerniak FUNKCJE.
Menu Jednomiany Wyrażenia algebraiczne -definicja Mnożenie i dzielenie sum algebraicznych przez jednomian Mnożenie sum algebraicznych Wzory skróconego.
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Perceptrony proste nieliniowe i wielowarstwowe © Kazimierz Duzinkiewicz, dr hab.
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
Sieci przepływowe: algorytmy i ich zastosowania.
Zespół trenerów FAOW – Janina Jaszczur, Inga Kawałek, Ryszard Kamiński, Ryszard Zarudzki Zasady kontroli Wnioskodawców w PPLeader+
1 Definiowanie i planowanie zadań budżetowych typu B.
 Przedziałem otwartym ( a;b ) nazywamy zbiór liczb rzeczywistych x spełniających układ nierówności x a, co krócej zapisujemy a
Jak tworzymy katalog alfabetyczny? Oprac.Regina Lewańska.
, + - = 0,5 CZYTAJ DOKŁADNIE ZADANIA I POLECENIA. IM TRUDNIEJSZE ZADANIE, TYM BARDZIEJ WARTO JE PRZECZYTAĆ KILKA RAZY.
Budżetowanie kapitałowe cz. III. NIEPEWNOŚĆ senesu lago NIEPEWNOŚĆ NIEMIERZALNA senesu strice RYZYKO (niepewność mierzalna)
Projektowanie prezentacji multimedialnych Piotr Rakowski Gliwice 2006.
O PARADOKSIE BRAESSA Zbigniew Świtalski Paweł Skałecki Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski Zakopane 2016.
Szkoła Podstawowa Nr 47 im. Jana Klemensa Branickiego w Białymstoku
Co to jest spacer edukacyjny?
Konstruowanie robotów z wykorzystaniem Vex IQ
Ucz i ucz się z TIK!.
Minimalizacja automatu
Schematy blokowe.
Wyznaczanie miejsc zerowych funkcji
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
SYSTEM KWALIFIKACJI, AWANSÓW I SPADKÓW
Wyniki projektu naukowego
Norma prawna.
PROJEKT EDUKACYJNY W GIMNAZJUM STO KATOWICE
Liczby pierwsze.
Części składowe treści pisma
Funkcja – definicja i przykłady
Wstęp do Informatyki - Wykład 3
Wstęp do Informatyki - Wykład 8
Materiały pochodzą z Platformy Edukacyjnej Portalu
Próbny egzamin gimnazjalny 2017/2018
Git - system kontroli wersji
Języki programowania.
Tornister Warto zauważyć, że problem przeciążonych tornistrów szkolnych wynika  z kilku przyczyn: - Dzieci często noszą w plecakach więcej podręczników.
Badanie rynku Materiał opracowano w ramach projektu "Szkoła praktycznej ekonomii - młodzieżowe miniprzedsiębiorstwo" realizowanego ze środków Unii Europejskiej.
Podstawy informatyki Zygfryd Głowacz.
Dokumentacja rysunkowa
ALGORYTMY I STRUKTURY DANYCH
Proste obliczenia w arkuszu kalkulacyjnym
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
Wyniki projektu naukowego
Doskonalenie rachunku pamięciowego u uczniów
Wyrównanie sieci swobodnych
POZNAJEMY PULPIT Opracowanie: mgr Barbara Benisz SP nr 20 w Rybniku
Zajęcia realizowane w ramach projektu nr
Program na dziś Wprowadzenie Logika prezentacji i artykułu
MODELOWANIE ZMIENNOŚCI CECH
Zapis prezentacji:

Temat: Wprowadzenie do interpretacji algorytmów (4h). Prezentację przygotowała Jolanta Olejniczak na podstawie podręcznika do informatyki autorstwa: Ireneusza Bujanowskiego i Zbigniewa Talagi oraz książki Macieja M. Sysło, pt.: „Algorytmy”

Cele zajęć: Uczeń: wie, co to jest algorytm, i w jaki sposób są przedstawiane algorytmy umie zapisać algorytm metodą listy kroków potrafi określić cztery podstawowe cechy algorytmów potrafi sporządzić specyfikację problemu algorytmicznego zna schematy blokowe i ogólne reguły obowiązujące przy tworzeniu sieci działań umie wykonać projekt algorytmu za pomocą programu: laboratorium informatyki ELI

Plan zajęć: Wiadomości teoretyczne i ciekawostki dotyczące algorytmów; Cechy dobrego algorytmu; Sposoby zapisywania algorytmów; Algorytm jako lista kroków – obliczanie pierwiastków równania kwadratowego; Specyfikacja problemu algorytmicznego; Schematy blokowe (sieć działań) i ogólne reguły obowiązujące przy tworzeniu sieci działań – symbole graficzne stosowane w sieciach działań; Wprowadzenie do programu „Laboratorium Informatyki ELI - wersja 2.0” firmy ELBOX – wykonywanie projektów algorytmów, np.. określającego, czy dana liczba jest ujemna oraz obliczanie pola kwadratu, itp.; Krótkie podsumowanie – Quiz z wiedzy i umiejętności dotyczących algorytmów na podsumowanie zajęć (na plusy i minusy z aktywności); Zadanie domowe – znaleźć krótkie wyjaśnienie następujących zagadnień algorytmicznych, czyli co to jest: piramida Cheopsa i wieża Hanoi (można skorzystać z sieci Internet lub książek dotyczących algorytmów).

Co to jest algorytm? Przyjmijmy następującą definicję algorytmu: Algorytm jest to schemat postępowania (przepis), sposób rozwiązania zadania (problemu) w skończonej liczbie kroków z wykorzystaniem narzędzi informatycznych, zawierający opis danych wraz z opisem czynności, które należy wykonać z tymi danymi, aby osiągnąć zamierzony cel. Słowo algorytm pochodzi od brzmienia fragmentu nazwiska Muhammad ibn Musa al-Chorezmi, arabskiego matematyka i astronoma, żyjącego na przełomie VIII i IX wieku. Jest on uznawany za prekursora metod obliczeniowych w matematyce. Upowszechnił on również stosowanie systemu dziesiętnego i posługiwanie się zerem. W jego czasach zwolenników opisanej przez niego metody wykonywania pisemnych obliczeń zwano algorytmistami (były też osoby nazywane kalkulatorami – osoby, które do obliczeń używały kamyków, i abacystami – posługiwali się liczydłem).

Do czego są nam potrzebne algorytmy? Umiejętność opracowywania dobrych algorytmów jest bardzo ważna. Na kolejnych zajęciach nauczymy się dostrzegania, opracowywania i różnych sposobów zapisu algorytmów. Pamiętajcie, że umiejętności tutaj zdobyte przydadzą się wam nie tylko na lekcjach dotyczących programowania, ale także na egzaminie maturalnym i przede wszystkim w codziennej nauce oraz pracy. Algorytmy są to często opisy postępowania prowadzącego do rozwiązania problemów poznanych na lekcjach matematyki czy fizyki. Przykładem mogą być dokumenty wykonane przez ciebie w arkuszu kalkulacyjnym, które są zapisem pewnych algorytmów.

Cechy dobrego algorytmu: POPRAWNY – algorytm powinien zwracać prawidłowe wyniki dla każdego zestawu poprawnych danych; SKOŃCZONY – rozwiązanie zadania musi być możliwe dla dowolnego zestawu danych w skończonej liczbie kroków; JEDNOZNACZNY – algorytm powinien zwracać te same wyniki dla zestawów takich samych danych wejściowych; SPRAWNY – ta cecha określa, jak zachowuje się algorytm zarówno pod względem szybkości działania, jak i optymalnego wykorzystania zasobów komputera, w szczególności jego pamięci operacyjnej (ten problem omówimy dokładniej nieco później, przy okazji konkretnych języków programowania); SZCZEGÓŁOWY – aby wykonawca algorytmu rozumiał opisane czynności i potrafił je wykonać; UNIWERSALNY – ma służyć do rozwiązywania pewnej grupy zadań, a nie tylko jednego konkretnego przypadku zadania. Dobry algorytm powinien uwzględniać wszystkie sytuacje, które mogą się zdarzyć!!!

Etapy rozwiązywania problemów: W procesie rozwiązywania każdego zadania możemy wyróżnić pewne etapy, które nas do niego prowadzą: Sformułowanie zadania Określenie danych wejściowych Określenie celu, czyli wyniku Poszukiwanie metody rozwiązania, czyli algorytmu Przedstawienie algorytmu w określonej postaci (np. za pomocą schematu blokowego) Analiza poprawności rozwiązania (testowanie rozwiązania dla różnych danych oraz ocena efektywności przyjętej metody) Rozwiązanie problemu (rzeczywistego) z zastosowaniem algorytmu. Punkty od 1 do 3 stanowią tzw. specyfikację problemu algorytmicznego.

Sposoby zapisywania algorytmów: za pomocą listy kroków (języka potocznego) w postaci graficznej – schematy blokowe, np. w programie ELI jako drzewo algorytmu (w języku symbolicznym – stosowane nazewnictwo elementów drzewa jest wzięte z dendrologii: korzeń, liście – wierzchołki końcowe, gałęzie – połączenia w drzewie) Jako zapis w określonym języku programowania, np. w języku Pascal (taki algorytm określamy mianem programu). Na dzisiejszych zajęciach skoncentrujemy się na dwóch pierwszych sposobach prezentowania algorytmów!

Opis algorytmu w postaci 1. listy kroków: Najprostszym, a jednocześnie najbardziej naturalnym sposobem zapisu algorytmu, jest opis reguł postępowania zwany listą kroków. Poszczególne kroki zawierają opis operacji, które mają być wykonane przez algorytm. Mogą w nich również wystąpić polecenia związane ze zmianą kolejności wykonywania kroków lub polecenia zakończenia algorytmu. Dodatkowo w nawiasach {…} umieszczamy uwagi nie będące częścią algorytmu, a jedynie komentujące jego przebieg i pomagające zrozumieć wykonywane polecenia i ich efekty. Przykładem może tutaj być obliczanie pierwiastków równania kwadratowego – ciąg dalszy na następnej stronie!

Algorytm prowadzący do rozwiązania tego problemu możemy zapisać w postaci następującej listy kroków: Krok 1: Wczytaj współczynniki a, b, c równania. Krok 2: Jeśli a = 0, pisz komentarz: „To nie jest równanie kwadratowe” i przejdź do kroku 7. Krok 3: Oblicz wyróżnik (delta) według wzoru: ∆ = b2 – 4ac. Krok 4: Jeśli ∆ > 0, oblicz x1 oraz x2, następnie zapisz wartości x1 i x2. Krok 5: Jeśli ∆ = 0 oblicz x0 i zapisz wartość x. Krok 6: Jeśli ∆ < 0, pisz komentarz „brak rozwiązań w zbiorze liczb rzeczywistych”. Krok 7: Koniec. Podany algorytm w sposób jednoznaczny określa, co należy zrobić i jakie obliczenia należy wykonać dla każdego zestawu danych. Zauważ, że lista kroków nie musi zawierać instrukcji żadnego języka programowania!

Specyfikacja problemu algorytmicznego: Umiejętność zapisywania algorytmów w dowolnej formie jest bardzo ważna, ale równie istotna jest czytelna dokumentacja, która umożliwi szybkie przypomnienie, czego algorytm dotyczy, a również ułatwi analizę jego działania. Podobnie jak przy rozwiązywaniu zadań z innych przedmiotów, przed przystąpieniem do tworzenia algorytmu należy określić, czego on dotyczy, opisać stosowane symbole, wyjaśnić jakiego typu będą dane wejściowe i wyniki. Dobrym zwyczajem jest umieszczanie w dokumentacji krótkiego opisu zastosowanego algorytmu. Wszystkie informacje zawarte w takiej dokumentacji określa się mianem specyfikacji problemu algorytmicznego. Zbiór danych Wyniki ALGORYTM

Specyfikacja problemu algorytmicznego: Opracowanie algorytmu wraz z poprawną specyfikacją pozwoli nam łatwo zastosować go w różnych środowiskach programistycznych. Poprawnie sformułowana specyfikacja problemu algorytmicznego jest punktowana przy ocenie rozwiązań zadań maturalnych z informatyki, a jej brak obniża ocenę nawet poprawnie działającego algorytmu. Oto przykład takiej specyfikacji: Specyfikacja problemu algorytmicznego: Dane: n, k є N+ n – podstawa potęgi k – wykładnik potęgi Wynik: P – obliczana wartość potęgi, P є N+ Użyte zmienne: i – zmienna pełniąca funkcję licznika, i є N Zapis algorytmu: Krok 1. Wczytaj wartości: n i k. Krok 2. Nadaj zmiennym wartości początkowe: P:=1, i:=0. Krok 3. i:=i + 1 {powiększ i o 1}. Krok 4. P:=P * n. Krok 5. Jeśli i < k, przejdź do kroku 3. Krok 6. Pisz P. Krok 7. Koniec.

Opis algorytmu w postaci 2. schematu blokowego: Jest to graficzny sposób zapisu algorytmu, inaczej nazywany sieciami działań, gdzie za pomocą ściśle określonych figur geometrycznych, powiązanych trwale z określonymi typami instrukcji oraz połączeń, można czytelnie zilustrować kroki procesu przetwarzania informacji. W schemacie blokowym poszczególne operacje przedstawione są za pomocą odpowiednio połączonych skrzynek (klocków i bloków). Połączenia określają kolejność i sposób wykonywania operacji realizujących dany algorytm.

Podczas projektowania i analizy algorytmów zapisanych w postaci sieci działań obowiązują pewne reguły, których należy przestrzegać, aby pod względem konstrukcyjnym był on traktowany jako poprawny: w schemacie blokowym może znajdować się tylko jeden blok oznaczający początek i jeden blok oznaczający koniec działania algorytmu; z każdego bloku powinna istnieć droga przetwarzania informacji (zgodna z kierunkiem wyznaczonym przez strzałki) prowadząca do bloku końcowego; z każdego bloku powinna istnieć droga przetwarzania informacji prowadząca do bloku oznaczającego początek algorytmu (w tym wypadku będzie to droga w kierunku przeciwnym do kierunku wyznaczonego przez strzałki); wszystkie bloki powinny mieć odpowiednią (zgodną z tabelą symboli graficznych dla sieci działań) liczbę wejść i wyjść; każdej czynności (bądź grupie czynności) musi być przyporządkowany blok opisany ściśle określoną figurą geometryczną; wewnątrz każdego bloku należy umieścić definicję czynności realizowaną w trakcie działania algorytmu; każda z linii przepływu informacji między blokami powinna mieć początek na bloku, a koniec na innym bloku lub linii, z którą się łączy.

Zbiór symboli graficznych stosowanych w schematach blokowych: Operacja umożliwiająca wybór jednej z alternatywnych dróg działania Decyzja Operacja, w wyniku której zmienia się wartość informacji Przetwarzanie Wprowadzanie lub wyprowadzanie danych Wejście - wyjście Oznaczenie miejsca zakończenia działania algorytmu Koniec Oznaczenie miejsca rozpoczęcia działania algorytmu Początek Symbol w programie ELI Symbol Wyjaśnienie Operacja START STOP N T

Zbiór symboli graficznych stosowanych w schematach blokowych cd: Skrzyżowanie dróg przepływu danych bez powiązania między nimi Skrzyżowanie Łączenie dróg przepływu danych Łączenie Wskazanie kierunku przepływu danych Droga przetwarzania danych we wskazanym kierunku Symbol w programie ELI Symbol Wyjaśnienie Operacja

Algorytmy ze względu na konstrukcję dzielimy na: algorytmy liniowe algorytmy rozgałęzione W algorytmie liniowym kolejność wykonywania poszczególnych instrukcji jest tutaj ściśle określona i nie jest możliwe ani ominięcie, ani powtórne wykonanie żadnej z nich. Algorytmy rozgałęzione natomiast zawierają rozgałęzienia realizowane przez instrukcje warunkowe (blok decyzyjny, który określa, jakie instrukcje będą wykonywane po sprawdzeniu zapisanego w nim warunku), a także konstrukcje umożliwiające wielokrotne powtarzanie pewnych czynności

Przykład algorytmu liniowego: START Czytaj: a, b S:=(a+b)/2 Pisz: S STOP Obliczanie średniej arytmetycznej dwóch liczb naturalnych Specyfikacja problemu algorytmicznego Dane: a, b – wprowadzane liczby: a, b є N+ Wynik: S – obliczona średnia. Schemat

Przykład algorytmu z rozgałęzieniem: START Czytaj: a M:= -a Pisz: M STOP M:= a Czy a<0? Obliczanie wartości bezwzględnej (modułu) danej liczby całkowitej Specyfikacja problemu algorytmicznego Dane: a – wprowadzana liczba: a є C Wynik: M – obliczany moduł. Schemat

Na zakończenie Dziękuję za uwagę ! ! Na następnych zajęciach dowiesz się co to jest konstrukcja algorytmiczna nazywana pętlą, a także nauczysz się przedstawiać organizację pojedynczej pętli i we właściwy sposób budować warunek kończący jej działanie oraz w jaki sposób unikać typowych błędów działania wynikających z konstrukcji algorytmów. Dziękuję za uwagę ! Nie zapomnij o rozwiązaniu zadania domowego !