Wykład z Technologii Informacyjnych Piotr Mika
Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły reprezentowane są przez bloki Bloki reprezentują operacje, które należy wykonać Linie skierowane wskazują drogi i kolejność wykonywania operacji Kształt bloku i treść zapisana we wnętrzu pokazują na rodzaj czynności 2
Operacje Wykonywane bezwarunkowo niezależnie od sytuacji w realizowanym procesie Wykonywane warunkowo zależnie od dynamicznych uwarunkowań 3
Bloki operacyjne (operacje wykonywane bezwarunkowo): wejścia i wyjścia Zmiany wartości wewnątrz algorytmu Startu algorytmu Stopu algorytmu Bloki sterujące (decyzyjne) (operacje wykonywane warunkowo) Bloki komentarzy Bloki łącznikowe 4
Reprezentują operacje bezwarunkowe, np. wejście Obliczenie wyznacznika D macierzy A[n,n] D=detA[n,n] S=S+6 Dodaj do licznika rozkazów 1 lr=lr+1 wyjście Blok w języku naturalnym Blok zorientowany na języki algorytmiczne Blok zorientowany na operacje maszynowe 5
Blok operacyjny może mieć kilka wejść, ale istnieje tylko jedno wyjście S=S+6 S=S+6 6
zmienna = wyrażenie = oznacza znak operacji podstawienia (nie równości!) S=S+6 Nowa wartość S Poprzednia, stara wartość S 7
Wejścia - ilustrują czynność podania z zewnątrz konkretnych wartości, dla których przeprowadzane są obliczenia Wyjścia - ilustrują wyprowadzenie konkretnych wartości, które reprezentują rezultaty obliczeń Mogą posiadać kilka wejść Mają jedno wyjście wejście wyjście wejście Wprowadzanie A, B, C Wyprowadzanie X, Y, Z wyjście 8
Tylko jedno wyjście Jedno lub kilka wejść START STOP STOP 9
zmienna wyrażenie zmienna I I wyrażenie 10
zmienna komentarz wyrażenie 11
Opisują możliwość wykonania rozgałęzienia dróg obliczeń w algorytmie w zależności od spełnienia lub niespełnienia odpowiednich warunków Najczęściej spotykane są bloki sterujące realizujące sprawdzenie drogi 2-wartościowej (prawda lub fałsz) a R b (relacja R spełniona lub niespełniona), np. I+6<k+1 R {=,, <,, >, } a, b wyrażenie arytmetyczne 2 drogi wyjściowe oznaczają, że w zależności od danych wejściowych realizowana jest tylko jedna z dróg 12
TAK a R b Nie Droga 1: relacja zachodzi, a R b prawda Droga 2: relacja nie zachodzi, a R b fałsz P < N+1 TAK (P<N+1) NIE (P>=N+1) 13
W przypadku konieczności zrealizowania rozgałęzienia na więcej niż 2 drogi należy stosować odpowiednią sekwencję bloków sterujących TAK <0 NIE =0 Nie, > 0 Tak, = 0 14
Algorytm wyznaczania pierwiastków rzeczywistych równania stopnia drugiego W schematach nie wyróżniamy bloku ilustrującego skok, przedstawia go odpowiednia linia Blok łącznikowy 1 pokazuje połączenie bloków 4 i 8 15 Rysunki za: Laboratorium podstaw informatyki, wyd. Politechniki Warszawskiej
Ze względu na przejrzystość operacje wykonywane wielokrotnie w podobny sposób ilustruje schemat pętli (cyklu). Zazwyczaj wskazujemy następujące fazy organizacji pętli: Ustalania warunków indeksów początkowych i wartości zmiennych roboczych cyklu Zbiór operacji w pętli 1 lub wiele operacji, które będą wielokrotnie wykonywane dla kolejnych danych Mechanizm pobierania nowych danych zapewnia to zazwyczaj zmiana liczników ustalających kolejne wartości indeksów danych Sprawdzenie warunków zakończenia cyklu zazwyczaj sprawdzenie, czy wszystkie dane zostały już wyczerpane lub czy odpowiednie warunki obliczeń zostały spełnione 16
Liczenie sumy n-wyrazów 17
Pętle nie mogą się przenikać, pętla zewnętrzna musi zawierać pętlę wewnętrzną Pętla o określonej liczbie kroków Pętla nieskończona 18
Do typowych problemów w których pojawia się konstrukcja pętli (cyklu), zaliczamy: Sortowanie i wyszukiwanie danych Operacje na macierzach Działania cykliczne wykonywane na ciągach danych Obliczenia iteracyjne, występujące w trakcie numerycznego wyznaczania rozwiązania Modelowanie i symulacja zjawisk rzeczywistych 19
mnożenie macierzy przez wektor 20
Powierzchnia i objętość prostopadłościanu, kuli, czworościanu Wartość silni Wartość funkcji sin(x), e x, log(x), ln(x) z dokładnością do ε, korzystając z rozwinięcia w szereg Wybór maksymalnego/minimalnego elementu macierzy/wektora z podaniem indeksu tego elementu Posortowanie elementów wektora w porządku malejącym/rosnącym Iloczyn skalarny wektorów Operacje macierzowe dodawanie, odejmowanie, mnożenie macierzy; ślad macierzy, wyznacznik macierzy 21
Najprostszy sposób zapisu to zapis słowny pozwala określić kierunek działań i odpowiedzieć na pytanie, czy zagadnienie jest możliwe do rozwiązania. Bardziej konkretny zapis to lista kroków Staramy się zapisać kolejne operacje w postaci kolejnych kroków które należy wykonać Budowa listy kroków obejmuje następujące elementy sformułowanie zagadnienia (zadanie algorytmu) określenie zbioru danych potrzebnych do rozwiązania zagadnienia (określenie czy zbiór danych jest właściwy) określenie przewidywanego wyniku (wyników): co chcemy otrzymać i jakie mogą być warianty rozwiązania zapis kolejnych ponumerowanych kroków, które należy wykonać, aby przejść od punktu początkowego do końcowego Bardzo wygodny zapis to zapis graficzny Schematy blokowe i grafy 22
Algorytm liniowy Ma postać ciągu kroków które muszą zostać bezwarunkowo wykonane jeden po drugim. Algorytm taki nie zawiera żadnych warunków ani rozgałęzień: zaczyna się od podania zestawu danych, następnie wykonywane są kolejne kroki wykonawcze, aż dochodzimy do wyniku Np. dodanie lub mnożenie dwóch liczb 1. Sformułowanie zadania: oblicz sumę dwóch liczb naturalnych a,b. Wynik oznacz przez S. 2. Dane wejściowe: dwie liczby a i b 3. Cel obliczeń: obliczenie sumy S = a + b 4. Dodatkowe ograniczenia: sprawdzenie warunku dla danych wejściowych np. czy a, b są naturalne. Ale sprawdzenie takiego warunku sprawia że algorytm przestaje być liniowy 23
Algorytm z rozgałęzieniem Większość algorytmów zawiera rozgałęzienia będące efektem sprawdzania warunków. Wyrażenia warunkowe umożliwiają wykonanie zadania dla wielu wariantów danych i rozważanie różnych przypadków. 1. Sformułowanie zadania Znajdź rozwiązanie równania liniowego postaci a x + b = 0. Wynikiem jest wartość liczbowa lub stwierdzenie dlaczego nie ma jednoznacznego rozwiązania. 2. Dane wejściowe Dwie liczby rzeczywiste a i b 3. Cel obliczeń (co ma być wynikiem) Obliczenie wartości x lub stwierdzenie, że równanie nie ma jednoznacznego rozwiązania. gdy a = 0 to sprawdź czy b = 0, jeśli tak to równanie sprzeczne lub tożsamościowe gdy a 0 to oblicz x = -b/a 24
Algorytm z powtórzeniami Powtarzanie różnych działań ma dwojaką postać: liczba powtórzeń jest z góry określona (przed rozpoczęciem cyklu) najczęściej związany z działaniami na macierzach liczba powtórzeń jest nieznana (zależy od spełnienia pewnego warunku) najczęściej związany z obliczeniami typu iteracyjnego 25