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