Algorytmy [MK, 19/20]
Lekcja 1. Grafy

Wprowadzenie do algorytmów

Algorytm jest to skończony ciąg czynności, przekształcający zbiór danych wejściowych na zbiór danych wyjściowych.

Etapy konstruowania algorytmu:
  1. Sformułowanie zadania – ustalamy jaki problem ma rozwiązywać algorytm
  2. Określenie rodzaju danych wejściowych – określamy, czy dane są liczbami rzeczywistymi, całkowitymi, ciągiem lub ciągami znaków, czy też są innego typu)
  3. Określenie rodzaju wyniku oraz sposobu jego prezentacji
  4. Ustalenie metody wykonania zadania (jeśli jest kilka metod na rozwiązanie, to wybieramy optymalną)
  5. Zapisanie algorytmu za pomocą wybranej metody
  6. Analiza poprawności rozwiązania
  7. Testowanie algorytmu dla różnych danych wejściowych
  8. Ocena skuteczności algorytmu (np. szybkości, skomplikowania, itp.)
Sposoby zapisu algorytmu:
  • lista kroków
  • graficzna prezentacja za pomocą schematu blokowego
  • zapis za pomocą pseudokodu
  • zapis w wybranym języku programowania z komentarzami

Lista kroków pozwala opisać algorytmy liniowe (sekwencyjne) niezawierające warunków i rozgałęzień, w którym kolejność wykonywanych czynności jest taka sama i niezależna od wartości danych wejściowych. Lista kroków charakteryzuje się tym, że każdy wiersz opisujący pojedynczy krok realizowanej czynności jest numerowany. Poniżej lista kroków algorytmu pozwalającego znaleźć średnią arytmetyczną dwóch liczb rzeczywistych:

  1. Pobierz pierwszą liczbę
  2. Pobierz drugą liczbę
  3. Dodaj liczby do siebie
  4. Wynik dodawania podziel przez 2
  5. Wyświetl otrzymaną wartość
  6. Zakończ

Schemat blokowy przedstawia algorytm w postaci symboli graficznych, podając szczegółowo wszystkie operacje arytmetyczne, logiczne, przesyłania oraz pomocnicze wraz z kolejnością ich wykonywania. Najważniejsze bloki w schemacie blokowym to:

  • Bloki graniczne – wyznaczają początek i koniec algorytmu. Mają kształt owalu. Z bloku START wychodzi tylko jedno połączenie. Każdy schemat blokowy musi mieć dokładnie jeden blok START i co najmniej jeden blok STOP
  • Blok operacyjny – zawiera operację lub grupę operacji. Blok operacyjny ma kształt prostokąta, wchodzi do niego jedno połączenie i wychodzi też jedno połączenie.
  • Blok wejścia / wyjścia – blok odpowiedzialny za wprowadzanie lub wyprowadzanie danych, wyników lub komunikatów. Ma kształt równoległoboku, wchodzi i wychodzi z niego jedno połączenie.
  • Blok decyzyjny – przedstawia wybór jednej z dwóch możliwych dróg działania. Ma kształt rombu. Wchodzi do niego jedno połączenie, a wychodzą dwa: TAK – gdy warunek wpisany wewnątrz jest spełniony oraz NIE – gdy warunek wpisany wewnątrz nie jest spełniony.
  • Łącznik pomiędzy blokami – określa kierunek przepływu danych lub kolejność wykonywanych działań. Powinien być zakończony strzałką

Przykład schematu blokowego opisującego algorytm określania znaku podanej liczby:

algorytm znak liczby.png

Operatory arytmetyczne stosowane w algorytmach

  • + dodawanie
  • - odejmowanie
  • * mnożenie
  • / dzielenie
  • divdzielenie całkowite (6 div 4 = 1)
  • mod reszta z dzielenia liczb całkowitych (6 mod 4 = 2)

Operatory logiczne

  • koniunkcja zdań
  • alternatywa zdań
  • ~ zaprzeczenie zdania

Definicje

  • Definicja 1.
    Podaj definicję algorytmu.
  • Aby zobaczyć tą treść musisz być zalogowany

  • Definicja 2.
    Jakiego typu algorytmy najczęściej opisujemy za pomocą listy kroków?
  • Aby zobaczyć tą treść musisz być zalogowany

  • Definicja 3.
    Podaj cztery główne sposoby przedstawiania algorytmów.
  • Aby zobaczyć tą treść musisz być zalogowany

  • Definicja 4.
    Wymień z nazwy i narysuj cztery najważniejsze bloki wykorzystywane w schemacie blokowym algorytmu.
  • Aby zobaczyć tą treść musisz być zalogowany

Zadania

Zadanie 1. #
Narysuj schemat blokowy opisujący algorytm wypisania wszystkich liczb dodatnich dwucyfrowych.

Zadanie 2. #
Narysuj schemat blokowy opisujący algorytm, który pobiera na wejściu liczbę całkowitą, dodatnią, mniejszą od 100 i wyprowadza informację, czy jest to liczba parzysta lub nie.

Zadanie 3. #
Narysuj schemat blokowy opisujący algorytm obliczania pola powierzchni trójkąta na podstawie długości trzech odcinków z zastosowaniem wzoru Herona.

Zadanie 4. #
Narysuj schemat blokowy opisujący algorytm wyszukiwania w zbiorze liczb liczby najmniejszej i największej. Algorytm ma na początku pobierać informację o tym ile liczb będzie znajdowało się w zbiorze. Gdy w zbiorze będzie tylko jedna liczba, to przyjmujemy, że jest to jednocześnie wartość minimalna i maksymalna.

Zadanie 5. #
Narysuj schemat blokowy opisujący rekurencyjny algorytm wypisujący n kolejnych liczb ciągu Fibonacciego. Napisz wzór rekurencyjny pozwalający obliczyć kolejne liczby tego ciągu oraz podaj założenia do tego wzoru.

Zadanie 6. #
Narysuj schemat blokowy algorytmu sprawdzającego i wypisującego informację czy podana liczba rzeczywista jest dodatnia, ujemna lub jest zerem.

Zadanie 7. #
Narysuj schemat blokowy algorytmu wypisującego wszystkie ujemne, dwucyfrowe wielokrotności liczby 10 w kolejności malejącej.

Zadanie 8. #
Narysuj schemat blokowy algorytmu obliczającego sumę liczb całkowitych ze zbioru (–19, 9).

Zadanie 9. #
Narysuj schemat blokowy algorytmu obliczającego sumę liczb całkowitych ze zbioru (2, 50] ∪ (-5, 15]. Zwróć uwagę, że jest to suma dwóch zbiorów liczbowych.

Zadanie 10. #
Narysuj schemat blokowy algorytmu obliczającego sumę liczb podawanych przez użytkownika. Algorytm ma zakończyć działanie i wypisać sumę wtedy, kiedy podaną liczbą będzie zero.

Zadanie 11. #
Narysuj schemat blokowy algorytmu wykonującego cztery podstawowe działania arytmetyczne:
  1. dodawanie
  2. odejmowanie
  3. mnożenie
  4. dzielenie
Algorytm ma najpierw pytać jaki rodzaj działania chcemy wykonać, następnie pobierać dwie liczby, wykonywać na nich dane działanie i na końcu zwracać wynik działania z informacją, że jest to suma, różnica, iloczyn lub iloraz. Algorytm powinien również sprawdzać czy drugą liczbą jest zero. W takim wypadku dzielenie jest niewykonalne i należy wyświetlić komunikat informujący o tym.

Zadanie 12. #
Narysuj schemat blokowy algorytmu wypisującego wynik dzielenia dwóch liczb podanych przez użytkownika. Jeśli drugą liczbą będzie zero, to algorytm ma nie wyświetlać ilorazu, tylko komunikat Nie mogę wykonać tego działania.

2019-09-15 22:24:05 2023-12-04 00:43:50


© 2024 Młody Informatyk v. 0.1.7717