Temat C2. Przedstawianie algorytmu z warunkami w postaci listy kroków i schematu blokowego

przez | 3 września 2019

Wszystkie treści na stronie ir.migra.pl chronione są prawami autorskimi. Więcej informacji znajdziesz tutaj.

Uwaga: Zapoznaj się wcześniej z treścią tematu C4 z podręcznika „Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres podstawowy. Klasa I”. Wykonaj zawarte w nich ćwiczenia i zadania.

Zapisy podstawy programowej realizowane w temacie:

I. Rozumienie, analizowanie i rozwiązywanie problemów.

Zakres rozszerzony. Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:

2) do realizacji rozwiązania problemu dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych;

3) objaśnia dobrany algorytm, uzasadnia poprawność rozwiązania na wybranych przykładach danych i ocenia jego efektywność;

II. Programowanie i rozwiązywanie problemów z wykorzystaniem komputera i innych urządzeń cyfrowych.

I + II. Zakres rozszerzony, Uczeń spełnia wymagania określone dla zakresu podstawowego, a ponadto:

1) zapisuje za pomocą listy kroków, schematu blokowego lub pseudokodu, i implementuje w wybranym języku programowania, algorytmy poznane na wcześniejszych etapach […];

Spis treści

  1. Lista kroków algorytmu z warunkami
  2. Schemat blokowy algorytmu z warunkami
  3. Algorytm sprawdzania warunku istnienia trójkąta
  4. Lista kroków i schemat blokowy algorytmu z warunkami zagnieżdżonymi
  5. Rozwiązywanie równania liniowego

1. Lista kroków algorytmu z warunkami

W liście kroków algorytmu z warunkami przynajmniej w jednym z kroków występują dwa warianty wykonania operacji algorytmu, których realizacja zależy od spełnienia poprzedzającego je warunku (warunków).

Przykład 1. Przedstawianie algorytmu z warunkami w postaci listy kroków

Zadanie: W firmie X miesięczna płaca podstawowa jest zwiększana m.in. o kwotę za przepracowane nadgodziny. Jeśli liczba nadgodzin przekroczy 30, to stawka za każdą nadgodzinę powyżej 30 jest zwiększana o 50%.

Wprowadź liczbę nadgodzin przepracowanych przez jednego pracownika oraz stawkę za jedną nadgodzinę. Oblicz i wyprowadź płacę za przepracowane nadgodziny.

Dane: liczba całkowita nieujemna – liczba nadgodzin: lng, liczba rzeczywista dodatnia – stawka za jedną nadgodzinę: s.

Wynik: wartość płacy za nadgodziny: Płaca.

  1. Zacznij algorytm.
  2. Wprowadź wartości lng, s.
  3. Jeżeli lng <= 30, to oblicz Płaca = lng • s;
    w przeciwnym wypadku oblicz Płaca = lng • s + (lng – 30) • s • 0,5
  4. Wyprowadź wynik Płaca.
  5. Zakończ algorytm.

Ćwiczenie 1. Testujemy działanie algorytmu

Przetestuj działanie algorytmu zapisanego w postaci listy kroków (przykład 1.) dla danych (lng, s): (15; 23), (30, 20), (35; 19).

Ćwiczenie 2. Zapisujemy algorytm w postaci listy kroków

Napisz listę kroków algorytmu sprawdzania, czy dana litera jest samogłoską czy spółgłoską.

Wskazówki:

  • Skorzystaj ze specyfikacji zadania utworzonej w zadaniu 1b z tematu C1 z podręcznika „Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres podstawowy. Klasa I”.
  • W instrukcji warunkowej należy zastosować warunek złożony z alternatywą.

2. Schemat blokowy algorytmu z warunkami

W schemacie blokowym sytuację warunkową obrazuje blok warunkowy (decyzyjny) Sprawdzanie warunku (tabela 1. w temacie C1). W schemacie może być wiele takich bloków.

Do bloku warunkowego wchodzi jedno połączenie, a wychodzą dwa:

  • z napisem „Tak”, gdy warunek jest spełniony;
  • z napisem „Nie”, gdy warunek nie jest spełniony.

Wewnątrz bloku umieszczamy warunek logiczny – prosty lub złożony. Warunek może zawierać następujące operatory logiczne: = (równy), > (większy), < (mniejszy), >= (większy lub równy), <= (mniejszy lub równy), <> różny, lub (or) – alternatywa, i (and) – koniunkcja, nie (not) – negacja. Na przykład:
a > 50;
suma <= 100;
x > -5 i x < 5;
a > b + c lub b > a + c.

Rys. 1. Schemat blokowy algorytmu z warunkami – na podstawie listy kroków z przykładu 1.

Ćwiczenie 3. Testujemy działanie algorytmu

Przetestuj działanie algorytmu przedstawionego w postaci schematu blokowego na rysunku 1. dla następujących danych (lng, s): (25; 21), (30, 25), (33; 20).

Ćwiczenie 4. Przedstawiamy algorytm w postaci schematu blokowego

Utwórz schemat blokowy algorytmu sprawdzania, czy dana litera jest samogłoską czy spółgłoską.

3. Algorytm sprawdzania warunku istnienia trójkąta

Warunek istnienia trójkąta:
w każdym trójkącie długość dowolnego boku jest mniejsza od sumy długości dwóch pozostałych boków, czyli z danych trzech odcinków o długości a, b i c można zbudować trójkąt, jeżeli:
a < b + c i b < a + c i c < b + a.

W rozwiązaniu zadania sprawdzającego warunek istnienia trójkąta (zwanego też „warunkiem trójkąta”) zastosujemy złożony warunek logiczny.

Przykład 2. Lista kroków algorytmu sprawdzania warunku trójkąta

Zadanie: Sprawdź, czy z odcinków o długościach a, b i c, będących liczbami naturalnymi, można zbudować trójkąt.

Dane: Trzy liczby naturalne, będące długościami odcinków: a, b, c.

Wynik: Komunikat „można zbudować trójkąt” lub „nie można zbudować trójkąta” – zależnie od wartości wprowadzonych danych.

Lista kroków:

  1. Zacznij algorytm.
  2. Wprowadź wartości długości odcinków: a, b i c.
  3. Jeśli a + b > c i a + c > b i b + c > a, wyprowadź napis „można zbudować trójkąt”;
    w przeciwnym wypadku wyprowadź napis „nie można zbudować trójkąta”.
  4. Zakończ algorytm.

Ćwiczenie 5. Testujemy działanie algorytmu

Przetestuj działanie algorytmu z przykładu 4. dla następujących liczb: (3, 4, 5), (7, 2, 8), (9, 4, 4), (11, 13, 27).

Ćwiczenie 6. Przedstawiamy algorytm w postaci schematu blokowego

Utwórz schemat blokowy algorytmu sprawdzania warunku trójkąta na podstawie listy kroków podanej w przykładzie 2.

Wskazówka: Koniunkcję warunków logicznych należy zapisać w jednym bloku decyzyjnym stosując operator i.

4. Lista kroków i schemat blokowy algorytmu z warunkami zagnieżdżonymi

Przykład 3. Zapisywanie algorytmu z warunkami zagnieżdżonymi w postaci listy kroków

Zadanie: Sprawdź, do jakiej grupy został zakwalifikowany uczeń po napisaniu testu z języka angielskiego. Przydział do grup odbywa się według następującego klucza:

wynik w punktach grupa
<0, 30) podstawowa
<30, 60> zaawansowana

Dane: liczba punktów: p.

Wynik: zależnie od wprowadzonej liczby – jeden z komunikatów: „grupa podstawowa”, „grupa zaawansowana” lub „wprowadzono liczbę spoza zakresu”.

Lista kroków:

  1. Zacznij algorytm.
  2. Wprowadź wynik w punktach: p.  
  3. Jeśli p >= 0 i p <= 60,
    • jeśli p < 30, wyprowadź napis „grupa podstawowa”;
    • w przeciwnym wypadku wyprowadź napis „grupa zaawansowana”;
    w przeciwnym wypadku wyprowadź napis „wprowadzono liczbę spoza zakresu”.
  4. Zakończ algorytm.
Rys. 2. Schemat blokowy algorytmu z warunkami zagnieżdżonymi – przykład 3.

Ćwiczenie 7. Testujemy działanie algorytmu

Przetestuj listę kroków z przykładu 3. i algorytm pokazany na rysunku 2. dla następujących danych: 23, 100, 34, 55, 1, 66.

Ćwiczenie 8. Modyfikujemy listę kroków i schemat blokowy

Otwórz plik TC2_ c8_p3.doc. Zmodyfikuj listę kroków i schemat blokowy, dostosowując je do nowego klucza przydziału ucznia do danej grupy na kurs języka angielskiego.

wynik w punktach grupa
<0, 20) podstawowa
<20, 40> średniozaawansowana
(40, 60> zaawansowana

5. Rozwiązywanie równania liniowego

Przykład 4. Lista kroków rozwiązywania równania liniowego

Rozwiązywanie równania liniowego a • x + b = 0.

Dane: dowolne liczby rzeczywiste: a, b.

Wynik: wartość x.

  1. Zacznij algorytm.
  2. Wprowadź wartości współczynników: a i b.
  3. Jeśli a = 0,
    • jeśli b = 0, wyprowadź napis „nieskończenie wiele rozwiązań”;
    • w przeciwnym wypadku wyprowadź napis: „równanie sprzeczne”;
    w przeciwnym wypadku oblicz x = –b / a i wyprowadź wartość x.
  4. Zakończ algorytm.

Ćwiczenie 9. Rysujemy schemat blokowy rozwiązywania równania liniowego

Narysuj schemat blokowy rozwiązywania równania liniowego na podstawie listy kroków przedstawionej w przykładzie 4. Następnie prześledź działanie algorytmu dla podanych współczynników: (4; 8), (0; -1), (-3; 0), (0; 0).

Wskazówka: Naszkicuj ten schemat najpierw w zeszycie, a dopiero potem skonstruuj go, korzystając z programu komputerowego.

Zadania

  1. Napisz specyfikację zadania, przedstaw w postaci listy kroków i narysuj schemat blokowy algorytmu sprawdzania, czy dany uczeń zdał egzamin maturalny. Dane są: liczba punktów zdobytych przez ucznia i całkowita liczba punktów możliwych do uzyskania. Uczeń zdaje egzamin, jeśli uzyskuje nie mniej niż 30% całkowitej liczby punktów.
  2. Napisz program na podstawie listy kroków i schematu blokowego utworzonego w zadaniu 1.
  3. Napisz program na podstawie listy kroków z przykładu 3. i schematu blokowego przedstawionego na rysunku 2. Skompiluj i uruchom program. Przetestuj program dla wybranych danych.
  4. Utwórz program sprawdzający przydział ucznia do grupy według klucza podanego w ćwiczeniu 6. Skorzystaj z listy kroków i schematu blokowego przygotowanych w ćwiczeniu 8. Skompiluj i uruchom program. Przetestuj program dla wybranych danych.
  5. Napisz program rozwiązujący równanie liniowe na podstawie listy kroków podanej w przykładzie 4. i schematu utworzonego w ćwiczeniu 9.
  6. Dla zainteresowanych

  7. Napisz listę kroków i utwórz schemat blokowy rozwiązania „problemu sprzedawcy komputera” opisanego w przykładzie 5. z tematu C1 z podręcznika „Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres podstawowy. Klasa I”.
  8. Opisz wymyślony samodzielnie problem zawierający warunki zagnieżdżone (podobnie jak przykładzie 3. tego tematu). Ułóż zadanie, zapisz specyfikację, listę kroków i utwórz schemat blokowy. Na koniec napisz program realizujący to zadanie.