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