Przykłady algorytmów

advertisement
Algorytmy – różne przykłady
Algorytmy
Marek Pudełko
2
Algorytm przechodzenia przez jezdnię
1. Stań na krawędzi chodnika
2. Popatrz w lewo.
a) Jeśli jedzie auto to poczekaj. Wróć do punktu 2.
b) Jeśli nic nie jedzie z lewej strony przejdź do punktu
3.
3. Popatrz w prawo.
a) Jeśli jedzie auto to poczekaj. Wróć do punktu 3.
b) Jeśli nic nie jedzie z prawej strony przejdź do
punktu 4.
4. Przejdź przez jezdnię.
3
Algorytm przechodzenia przez jezdnię
Stań na krawędzi chodnika
Popatrz w lewą stronę. Czy
jedzie auto?
TAK
NIE
Popatrz w prawą stronę. Czy
jedzie auto?
TAK
NIE
Przejdź przez jezdnię.
4
Algorytm przechodzenia przez jezdnię
Start
Stań na krawędzi chodnika
Popatrz w lewą stronę
Czy jedzie auto?
Tak
Nie
Popatrz w prawą stronę
Tak
Czy jedzie auto?
Nie
Przejdź przez jezdnię
Stop
5
Ćwiczenia
1. Napisz algorytm przechodzenia przez jezdnię
na światłach.
6
Algorytm obsługi lampy
1. Czy lampa jest włączona?
a) Jeśli nie włącz ją. Przejdź do następnego punktu.
2. Czy żarówka jest sprawna?
a) Jeśli nie zmień ją. Przejdź do następnego punktu.
3. Korzystaj z lampy
4. Koniec algorytmu
7
Algorytm obsługi lampy
Start
Nie
Czy lampa jest włączona?
Tak
Czy żarówka jest sprawna?
Tak
Włącz lampę
Nie
Zmień żarówkę
Korzystaj z lampy
Stop
8
Algorytm dodawania
1.
2.
3.
4.
5.
6.
7.
Start algorytmu
Przygotuj dane: a,b,c- liczby całkowite
Wczytaj a
Wczytaj b
Dodaj a i b, a wynik wpisz do c
Wypisz c
Koniec algorytmu
9
Algorytm dodawania
Start
a,b,c: liczby całkowite
Read (a)
Read (b)
c→a+b
Write (c)
Stop
10
Ćwiczenia
1. Napisz algorytm:
a) Odejmowania
b) Mnożenia
2. Napisz algorytm liczący:
a)
b)
c)
d)
Pole koła
Pole trójkąta
Pole prostokąta
Pole kwadratu
11
Ćwiczenia
1. Napisz algorytm liczący średnią z 3
wczytanych liczb
2. s
a) Odejmowania
b) Mnożenia
3. Napisz algorytm liczący:
a)
b)
c)
d)
Pole koła
Pole trójkąta
Pole prostokąta
Pole kwadratu
12
Algorytm dzielenia
1. Start algorytmu
2. Przygotuj dane:
•
•
a,b- liczby całkowite
c- liczby rzeczywiste
3. Wczytaj a
4. Wczytaj b
a) Jeśli b jest równe 0, wróć do punktu 4
b) Jeśli b jest różne od 0, idź do punktu 5.
5. Podziel a przez b, a wynik wpisz do c
6. Wypisz c
7. Koniec algorytmu
13
Algorytm dzielenia
Start
a,b: liczby całkowite
c: liczba rzeczywista
Read (a)
Read (b)
b=0
Tak
Nie
c→a/b
Write (c)
Stop
14
Ćwiczenia
1)
Napis algorytm pierwiastkowania
15
Algorytm wyliczania modułu z liczby
1.
Start algorytmu
2.
Przygotuj dane:
•
3.
4.
x- liczba rzeczywista
Czy (x >0)?
a)
Jeśli TAK napisz x i przejdź do punktu 4
b)
Jeśli NIE napisz -x i przejdź do punktu 4.
Koniec algorytmu
16
Wyliczanie modułu z liczby
Start
Czytaj x
Nie
x >= 0
Tak
Pisz -x
Pisz x
Koniec
17
Ćwiczenia
1) Napisz algorytm liczący równanie:
a) c=|x|+5*x
b) c=|x2|+|x|
c) c=|2x|+x
2) Napisz algorytm sprawdzania parzystości liczb
•
(funkcja mod i % nie działa w magicznych bloczkach)
18
Algorytm porównywania liczb
1.
Start algorytmu
2.
Przygotuj dane:
•
a,b- liczby całkowite
3.
Wczytaj a
4.
Wczytaj b
5.
Czy (a = b)?
6.
a)
Jeśli TAK napisz „równe” i przejdź do punktu
b)
Jeśli NIE przejdź do punktu 6, idź do punktu 5.
Czy (a > b)?
a) Jeśli TAK napisz „a większe od b” i przejdź do punktu 7
b)Jeśli NIE napisz „b większe od a” i przejdź do punktu 7.
7.
Koniec algorytmu
19
Algorytm porównywania liczb
Start
a,b: liczby całkowite
Read (a)
Read (b)
Tak
a=b
Nie
Tak
Write (‘równe’)
a>b
Nie
Write (‘a jest większe’);
Write (‘b jest większe’);
20
Stop
Ćwiczenia
1) Napisz algorytm sprawdzający czy liczba jest
dodatnia, ujemna czy równa zero.
2) Napisz algorytm wczytujący trzy liczby i
sprawdzający, która jest z nich największa.
3) Napisz algorytm wyliczający pierwiastki
równania kwadratowego.
1)
Algorytm ma wczytać a,b,c; wliczyć deltę i podać x lub x1,x2.
21
Algorytm pętli
1.
Start algorytmu
2.
Przygotuj dane:
•
i - liczby całkowite
3.
i=1
4.
Czy (i > 10)?
a)
Jeśli TAK przejdź do punktu 8
b)
Jeśli NIE idź do punktu 5.
5.
Napisz i
6.
i=i+1
7.
Idź do punktu 4
8.
Koniec algorytmu
22
Algorytm pętli
Start
i: liczby całkowite
i=1
Tak
i > 10
Nie
Tak
Write(i)
Stop
Nie
i= i+1
23
Ćwiczenia
1) Napisz algorytm wypisujący w pętli liczby od
1 do n. n wczytujemy z zewnętrz.
2) Napisz algorytm wypisujący w pętli liczby od
n do 1.
3) Napisz algorytm sumujący liczby od 1 do n. n
wczytujemy z zewnętrz.
4) Napisz algorytm wyliczający silnię n.
24
Start
Read (n)
licznik=1
a=1
licznik>n
Nie
a=a*licznik
Tak
Write (a)
licznik=licznik+1
Stop
25
Start
Read (n)
licznik=1
a=0
licznik>n
Nie
a=a+licznik
Tak
Write (a)
licznik=licznik+1
Stop
26
Ćwiczenia
1)
•
•
•
•
Napisz algorytm wczytujący liczbę n.
Jeśli jest większa od 0 zmniejsz ją o 10.
Jeśli jest mniejsza od 0, zwiększ ją o 10.
Jeśli jest równa 0 nie rób nic.
Operacje zwiększenia i zmniejszenia dokonaj
za pomocą pętli.
27
Start
Read (x)
x<0
Tak
Nie
i=1
i= -1
licznik=1
licznik>10
Nie
x=x+i
Tak
Write (x)
licznik=licznik+1
Stop
28
Ćwiczenia
1) Napisz algorytm wyświetlający tablicę 10elementową.
29
Start
a[1]=3 a[2]=9 a[3]=11
a[6] =10 a[7]=20 a[8]=14
a[4]=5
a[9]=1
a[5]=4
a[10]=25
licznik=1
Tak
Licznik>10
Nie
Stop
Read (x)
licznik=licznik+1
30
Ćwiczenia
1) Napisz algorytm wyliczający sumę elementów
tablicy.
2) Napisz algorytm wyliczający średnią
elementów tablicy.
3) Napisz algorytm wyszukujący najmniejszy
element tablicy.
4) Napisz algorytm wyszukujący największy
element tablicy.
31
Ćwiczenia
1) Napisz algorytm kopiujący zawartość jednej
tablicy do drugiej. Tę drugą należy potem
wyświetlić.
2) Napisz algorytm kopiujący z jednej tablicy do
drugiej tylko elementy większe od średniej.
3) Napisz algorytm kopiujący z jednej tablicy do
drugiej tylko elementy parzyste.
32
Co robią następujące algorytmy?
33
Download