Techniki algorytmiczne
Transkrypt
Techniki algorytmiczne
mgr inż. Jan Lange Gimnazjum nr 12 w Poznaniu Scenariusz zajęć z wykorzystaniem programu edukacyjnego ELI 2.0 Poziom nauczania: klasa II Zagadnienie: Techniki algorytmiczne Temat: Tworzenie schematów blokowych algorytmów za pomocą programu edukacyjnego ELI 2.0 Cele lekcji: Uczeń powinien znać i umieć: - pojęcie algorytmu, - cechy poprawnego algorytmu, - operatory arytmetyczne i relacyjne, - sposoby budowania prostych algorytmów liczbowych programie ELI Metody nauczania: - wykład Pomoce dydaktyczne: - podręcznik Macieja M. Sysły Algorytmy, - podręcznik do gimnazjum Informatyka, - Grażyna Koba, Podstawowe tematy, - Zadania i problemy z informatyki dla gimnazjalistów - W świat z komputerem – ćwiczenia dla gimnazjum część III, - tablica, - schematy blokowe algorytmów, - rzutnik multimedialny. Formy organizacyjne: pracownia informatyczna Czas trwania: 90 minut (sprawdzian 45 min) Przebieg zajęć 1. Czynności organizacyjno-porządkowe Sprawdzenie obecności, warunków szkolenia i wpisanie tematu do dziennika 2. Wprowadzenie - Określenie celu zajęć, zapoznanie uczniów z problematyką wyszczególnioną w temacie zajęć. 1 - Określenie metod pracy na lekcji. - Kierowanie procesem przyswajania nowych wiadomości i kształtowania umiejętności. TECHNIKI ALGORYTMICZNE 1. Wprowadzenie Sposoby rozwiązywania zadań, czyli algorytmy, można przedstawiać w postaci graficznej jako schematy blokowe. Na początku przypomnimy pojęcie algorytmu, które zostało przedstawione na poprzednich lekcjach informatyki: Algorytm to jednoznaczny przepis, dyktujący krok po kroku postępowanie w celu rozwiązania pewnego problemu lub sposobu osiągnięcia jakiegoś celu. Ponadto, jeszcze raz przypomnimy sobie, jakie cechy musi mieć poprawny algorytm. A są to: • • • • poprawność - dla każdego przypisanego zestawu danych, po wykonaniu skończonej liczby czynności, algorytm prowadzi do poprawnych wyników, jednoznaczność - w każdym przypadku zastosowania algorytmu dla tych samych danych otrzymamy ten sam wynik, szczegółowość - wykonawca algorytmu musi rozumieć opisane czynności i potrafić je wykonywać, uniwersalność - algorytm ma służyć rozwiązywaniu pewnej grupy zadań, a nie tylko jednego zadania. Przykładowo algorytm na rozwiązywanie równań w postaci ax + b=0 ma je rozwiązać dla dowolnych współczynników a i b, a nie tylko dla jednego konkretnego zadania, np. 2x+6=0. W schemacie blokowym poszczególne operacje przedstawione są za pomocą odpowiednio bloków. Połączenia określają kolejność sposób wykonywani operacji realizujących dany algorytm. Do tworzenia schematów blokowych algorytmu wykorzystamy program edukacyjny ELI. Niżej przedstawiono operatory arytmetyczne i relacyjne używane przy tworzeniu algorytmów. Operatory arytmetyczne Operatory arytmetyczne służą do wykonywania zwyczajnych operacji dodawania, odejmowania, mnożenia i dzielenia. Do tej grupy należą również operatory przeznaczone do takich specjalnych celów, jak na przykład obliczenie części całkowitej wyniku dzielenia liczb całkowitych lub obliczanie reszty z takiego dzielenia (modulo). Wszystkie operatory arytmetyczne TP są zestawione w poniższej tabeli. 2 Operatory arytmetyczne Operator + + * / DIV MOD Opis Znak dodatni Znak ujemny Dodawanie Odejmowanie Mnożenie Dzielenie zmiennopozycyjne Dzielenie całkowite; 365 DIV 7 = 52 Reszta z dzielenia całkowitego; 365 MOD 7 = 1 Operatory relacyjne Oprócz operatorów do budowania wyrażeń arytmetycznych niezbędne są też operatory do porównywania argumentów. Operatory takie, zwane relacyjnymi, są bardzo przydatne; umożliwiają bowiem budowanie instrukcji decyzyjnych. Operatory relacyjne, dostępne w TP, są przedstawione w poniższej tabeli. Każdy z nich wymaga dwóch argumentów, a wynikiem operacji jest wartość typu Boolean (True, False). Podstawowe operatory relacyjne Operator = <> > < >= <= Znaczenie Oba argumenty są równe Argumenty są różne Lewy argument jest większy od prawego Lewy argument jest mniejszy od prawego Lewy argument jest większy lub równy prawemu Lewy argument jest mniejszy lub równy prawemu Uwagi 4 = 4 ; ‘a’ = ‘a’ 4 <> 6 ; ‘jeden’ <> ‘dwa’ 40 > 30 60 < 100 34.45 >= 16.67 45.68 <= 103.45 3 2. Tworzenie schematu blokowego algorytmu za pomocą programu edukacyjnego ELI 2.0 Ogólne zasady budowania prostego algorytmu 1. Każda operacja jest umieszczona w bloku (klocku). 2. Schemat rozpoczyna się zawsze blok (klocek). Początek algorytmu 3. Na końcu schematu jest blok (klocek). Koniec algorytmu (musi być przynajmniej jeden taki blok /klocek/ w danym schemacie) 4. Dane wprowadzamy za pomocą bloku (klocka). Wprowadzenie danej 5. Obliczenia wpisujemy do bloku (klocka). Wykonanie obliczeń 6. Wyniki obliczeń wyświetla się za pomocą bloku (klocka). Wyprowadzenie wyniku 7. Bloki (klocki) są ze sobą połączone. 8. Z bloku wychodzi jedno połączenie; wyjątek stanowi blok (klocek) Koniec algorytmu, z którego nie wychodzi żadne połączenie i blok (klocek). Sprawdzenie warunku, z którego wychodzą dwa połączenia. Aby zbudować schemat blokowy w programie ELI, należy: 1. Otworzyć nowy projekt Plik/Nowy projekt i zaznaczyć w oknie Nowy projekt przycisk Plansza. 2. Bloki przenosimy z palety umieszczonej obok planszy metodą uchwyć i upuść. 3. Bloki umieszczone omyłkowo na planszy usuwamy, przenosząc je poza plansze metodą uchwyć i upuść. 4. Aby wpisać operację (komunikaty, nazwy zmiennych, działania) do bloku (klocka), otwieramy okno dialogowe, naciskając prawy klawisz myszy w obszarze danego bloku (klocka). 5. W prostym schemacie połączenie bloków (klocków) realizuje się przez „doklejanie” bloku do bloku. 6. W rozbudowanym schemacie używa się bloków (klocków) połączeń Linie Ćwiczenie 1 Zbudować schemat blokowy algorytmu w programie ELI obliczający wartość niżej podanego wyrażenia: W = x 2 + 3xy + 5y 2 gdzie: x, y – dowolne liczby rzeczywiste Rozwiązanie zadania zapisane jest w plikach: WYRALGE1.prj, WYRALGE1.sch. 4 3. Metoda iteracyjna rozwiązania problemu Iteracja, czyli powtarzalność tych samych operacji, to najczęściej spotykana technika algorytmiczna. Czasami trzeba wykonywać te same operacje na wielu danych. W takich przypadkach nie jest konieczne wielokrotne opisywanie takich samych działań (operacji) lub rysowanie takich samych bloków. Możemy je zapisać tylko raz. Stosujemy tzw. pętlę. W programach komputerowych bardzo ważną rolę odgrywają instrukcję iteracyjne (powtarzające), czyli pętle. Z pętlą mamy do czynienia, gdy w pewnym kroku algorytmu wracamy do jednego z wcześniejszych kroków, co powoduje, że kroki te mogą zostać wykonane wiele razy. Zasadniczo, każdą przyzwoitą pętlę można scharakteryzować następująco: 1. Pętla zawiera warunki startu. 2. Pętla się powtarza. 3. W pętli coś się zmienia. 4. Pętla musi zawierać warunki zakończenia. Przykład pętli w algorytmie cyklicznym Działanie Nie Warunek spełniony Tak Kroki algorytmu cyklicznego obliczającego sumę S kolejno wprowadzonych n liczb reprezentowanych przez zmienną X: n S := Σ Xi i=1 1. Wprowadzenie liczby liczb 2. Ustalenie warunków początkowych dla pętli 3. Wykonywanie działań w pętli S + X; 4. Modyfikacja stanu pętli 5. Badanie warunku wyjścia z pętli i powrót do p.3. Wprowadź n S := 0 ; , i := 1; Wprowadź X S := i := i + 1; Jeśli i <= n do p. 3. 5 6. Wyprowadzenie wyniku Wyprowadź S Poniżej przedstawiono schemat blokowy algorytmu obliczającego sumę n liczb. Start Wprowadź n S:=0 i:=1 Wprowadź X S:=S+X i :=i+1 Nie I>n Tak Wyprowadź S Stop Ćwiczenie 2 Zbudować schemat blokowy algorytmu w programie ELI obliczający sumę N liczb wprowadzanych z klawiatury (zastosować metodę iteracyjną). Rozwiązanie zadania zapisane jest w plikach: SUMLICZ1.prj, SUMLICZ1.sch. 6 Ćwiczenie 3 Zbudować schemat blokowy algorytmu w programie ELI obliczający sumę N wyrazów ciągu liczbowego o wyrazie an = n*n-1 gdzie n =1..N (zastosować metodę iteracyjną). Rozwiązanie zadania zapisane jest w plikach: SUMLICZ2.prj, SUMLICZ2.sch. Ćwiczenie 4 Zbudować w programie ELI schemat algorytmu obliczania pola trójkąta S na podstawie wzoru Herona, w którym występują jedynie długości bokowi a, b i c trójkąta. S= p ( p − a )( p − b)( p − c) , gdzie: p= (a+b+c)/2 Warunki : 1. Suma dwóch boków trójkąta jest zawsze większa od boku trzeciego 2. p(p-a)(p-b)(p-c) >0 Rozwiązanie zadania zapisane jest w plikach: POLETRWH.prj, POLETRWH.sch. Zadanie domowe Stan Twojego konta w banku wynosi SK zł. Bank zaoferował Ci umieszczenie tej kwoty na koncie oprocentowanym pr % w skali rocznej i dopisywanie oprocentowania co trzy miesiące. Jakiej kwoty możesz się spodziewać na swoim koncie po trzech i sześciu miesiącach oraz po roku i po trzech latach? Opisz algorytm obliczający kwoty, jakie będą na Twoim koncie po trzech i sześciu miesiącach oraz po roku i trzech latach. Wskazówka. Stan konta po trzech miesiącach będzie równy: SKOP = SK + SK* wskpr = SK(1+wskpr) gdzie: wskpr = (pr/4)/100 Stan konta po sześciu miesiącach będzie równy: SKOP = SK(1+wskpr) + SK(1+wskpr)wskpr = SK(1+wskpr)(1+wskpr)= SK(1+wskpr) 2 . Łatwo sprawdzić, idąc tym tokiem rozumowania, że np. po piątym kwartale stan konta będzie równy: SK(1+wskpr) 5 7