Wykład z Podstaw Informatyki dla I roku BO Piotr Mika
Napisanie programu komputerowego: Zasada rozwiązania zadania Stworzenie sekwencji kroków algorytmu Przykłady algorytmów z życia codziennego (2/1 6)
Algorytm to skończony ciąg/sekwencja reguł, które aplikuje się na skończonej liczbie danych, pozwalający rozwiązać zbliżone do siebie klasy problemów Zespół reguł charakterystycznych dla pewnych obliczeń lub czynności informatycznych ver. 2.3 (3/1 6)
Dane wejściowe z dobrze zdefiniowanego zbioru Algorytm produkuje pewien wynik (niekoniecznie numeryczny) skończoność - realizowany ciąg instrukcji powinien mieć swój koniec (mając algorytm i dane wejściowe, powinno być możliwe określenie czasu wykonania) ver. 2.3 (4/1 6)
Określoność czyli jest precyzyjnie zdefiniowany - każdy krok jednoznacznie określony, operacje i ich porządek muszą być ściśle określone ogólność - stosowanie danego algorytmu nie powinno się ograniczać do pojedynczego problemu, ale do całej klasy problemów tego samego typu; efektywność - doprowadzenie do rozwiązania najkrótszą drogą (5/1 6)
Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn Musy al-chorezmi (z Chorezmu), który ok. 820 r n.e. opisał pozycyjny system kodowania dziesiętnego liczb i sztukę liczenia w tym systemie. Jego nazwisko tłumaczono jako Algorismus. W XII w. Europie przetłumaczono jego książkę i rozpoczęto wykonywanie obliczeń metodą "pisemną Nazwę tą wywodzi się też od algorytmu Euklidesa na obliczanie największego wspólnego dzielnika dwóch liczb A i B. (6/1 6)
Słowny określa kierunek działań i podaje rozwiązanie, jeśli istnieje Lista ponumerowanych kroków, które należy wykonać Zapisy graficzne Zapis w języku programowania (7/1 6)
Sformułowanie zagadnienia Określenie zbioru danych, czy jest właściwy Zadania nad- i podokreślone Określenie przewidywanego wyniku (celu), co chcemy otrzymać i jakie warianty rozwiązania Zapis kolejnych kroków od danych do wyników (8/1 6)
Liniowy Z rozgałęzieniem Z powtórzeniami (iteracyjny, rekurencyjny) Proceduralny ver. 2.3 (9/1 6)
Ciąg kroków, które należy kolejno wykonać (brak warunków i rozgałęzień) Sformułowanie zadania: wypłata kwoty pieniędzy przy użyciu jak najwyższych nominałów Dane wejściowe kwota, nominały (200 zł, 100 zł,, 1 gr) Cel obliczeń zestawienie poszczególnych nominałów z ich krotnościami Ewentualne dodatkowe ograniczenia (10/ 16)
1. Wypisz wartości nominałów od najwyższego do najniższego 2. Podaj wielkość kwoty 3. Oblicz krotność występowania największego nominału 4. Zmniejsz kwotę o obliczone nominały w kroku 3 5. Przejdź do niższego nominału i wykonaj obliczenia z kroku 3 6. Algorytm zakończ po osiągnięciu najniższego nominału (11/ 16)
Zawiera rozgałęzienia, które są efektem sprawdzenia warunków. Zadanie można wykonać dla wielu wariantów danych Sformułowanie zadania: ax+b=0 Dane wejściowe a, b ze zbioru R Cel obliczeń obliczenie x lub stwierdzenie, że nie ma rozwiązania Jeśli ograniczymy się do x= -b/a algorytm liniowy, ale jest możliwy błąd dla a=0 (12/ 16)
1. Wprowadź a, 2. Sprawdź, czy a 0, jeśli tak krok 4, jeśli nie, czyli a=0 krok 3 3. Jeśli b=0 równanie tożsamościowe (0=0), jeśli b 0 równanie sprzeczne 4. Oblicz x = -b/a (13/ 16)
Liczba powtórzeń jest z góry określona Liczba powtórzeń jest nieznana (zależy od założonego warunku) Przykład 1: policzenie średniej arytmetycznej n liczb przy założeniu, ze n jest dane Przykład 2: policzenie średniej arytmetycznej n liczb, że n nie jest narzucone z góry, tylko koniec danych sygnalizuje niedodatnia liczba ver. 2.3 (14/16)
1. Wprowadź n 2. Jeśli n=0 zakończ obliczenia 3. Ustal wartości początkowe sumy s=0 oraz licznika i=1 4. Dodaj i-ta liczbę do s: s = s + ai 5. Zwiększ i o jeden: i=i+1 6. Jeśli i<=n wróć do kroku 4 7. Suma s jest obliczona, srednia=s/(n-1) 8. Wynikiem jest srednia ver. 2.3 (15/16)
1. Ustal wartości początkowe sumy s=0 oraz licznika i=1 2. Wprowadź liczbę ai, oraz potem kolejne 3. Jeśli ai<0 idź do kroku 7 (warunek zakończenia danych ai) 4. Dodaj i-ta liczbę do s: s = s + ai 5. Zwiększ i o jeden: i=i+1 6. Wróć do kroku 2 (podawanie liczb) 7. Jeśli s<0 to koniec obliczeń (nie było danych) 8. Oblicz średnią, srednia=s/i 9. Wynikiem jest srednia ver. 2.3 (16/16)