INF.04 · C# · lekcja 22
Metody rozwiązywania problemów — schematy blokowe i pseudokod
Od pytania do schematu i kodu
- Zrozum
- Sprawdź
- Napisz sam
Po tej lekcji: od pytania do schematu i kodu
Dzisiaj zrobisz konkretną rzecz
Zanim napiszesz linijkę kodu, warto rozrysować rozwiązanie na kartce. Schemat blokowy i pseudokod to dwa uniwersalne "języki", w których zapiszesz algorytm niezależnie od tego, czy potem zaimplementujesz go w C#, Pythonie czy jakimkolwiek innym języku. Podstawa programowa (INF.04.3.3) wymaga wprost umiejętności zapisu algorytmu w tej postaci — to też świetne narzędzie do planowania własnych programów, zanim zgubisz się w składni.
Instrukcja obsługi bankomatu, procedura reklamacyjna w sklepie, a nawet przepis kulinarny — to wszystko algorytmy, które dałoby się rozrysować jako schemat blokowy: "sprawdź czy karta jest ważna → jeśli tak, poproś o PIN → jeśli PIN poprawny, pokaż menu → jeśli nie, po 3 próbach zablokuj kartę". Firmy projektujące procesy (np. obsługę zamówień w sklepie internetowym) często najpierw rysują taki diagram, żeby wychwycić brakujące przypadki, zanim ktokolwiek napisze kod.
Sprawdź w działaniu
Od pytania do schematu i kodu
Najpierw przewidź wynik. Zmień dane w modelu i porównaj efekt. Spróbuj także przypadku granicznego, a nie tylko pierwszego poprawnego przykładu.
Model pokazuje wybraną zasadę. Nie uruchamia ani nie ocenia wklejonego kodu C#.
1. Przygotuj i uruchom własny projekt
2. Najpierw mały przykład
Wykonaj tę próbę przed dłuższym rozwiązaniem. Zacznij od wejścia i oczekiwanego wyjścia. Romb schematu odpowiada warunkowi, a dwie gałęzie mają rozłączne opisy. Ten sam warunek musi znaleźć się w pseudokodzie i w C#.
int liczba = 8;
if (liczba % 2 == 0)
Console.WriteLine("parzysta");
else
Console.WriteLine("nieparzysta");
Dla8: parzysta; dla7: nieparzysta.
- Co sprawdzić? Zmień jedną wartość i przed uruchomieniem zapisz przewidywany rezultat. Porównaj go z opisem wyniku; przy błędzie wróć do konkretnej instrukcji.
Jak to działa — 1
Schemat blokowy to graficzny zapis algorytmu za pomocą znormalizowanych symboli połączonych strzałkami pokazującymi kolejność wykonania:
• owal — początek lub koniec algorytmu;
• prostokąt — pojedyncza operacja/działanie (np. przypisanie zmiennej, obliczenie);
• romb — decyzja/warunek, zawsze z dwoma możliwymi wyjściami (tak/nie, prawda/fałsz);
• równoległobok — wejście lub wyjście danych (wczytanie z klawiatury, wypisanie na ekran).
Pseudokod to z kolei zapis tekstowy, "prawie jak kod", ale bez trzymania się składni konkretnego języka — używasz słów typu "jeżeli", "dopóki", "dla każdego", zapisując logikę tak, żeby każdy programista (niezależnie od używanego języka) mógł to zrozumieć i przepisać na swój język.
Drzewo decyzyjne to sposób przedstawienia sekwencji decyzji, gdzie każdy węzeł to pytanie/warunek, a gałęzie prowadzą do kolejnych pytań albo do ostatecznego wyniku — przydatne, gdy trzeba rozpisać wiele warunków zależnych od siebie (np. kwalifikacja klienta do rabatu na podstawie kilku kryteriów).
Jak to działa — 2
Wszystkie trzy metody służą temu samemu celowi: rozbiciu problemu na małe, jednoznaczne kroki, zanim zacznie się pisać kod w konkretnym języku programowania.
3. Pełny przykład — czytaj od Main
Teraz zastąp Program.cs tym programem. Zanim uruchomisz, znajdź dane wejściowe, operację i miejsce prezentacji wyniku. W tym wariancie zachowujemy jawny Main. Nie wklejaj kilku pełnych programów do jednego pliku.
using System;
class Program
{
// Ten sam algorytm co na schemacie blokowym powyżej,
// zapisany najpierw jako pseudokod (w komentarzu), a potem w C#:
//
// PSEUDOKOD:
// 1. wczytaj liczbę n
// 2. jeżeli n podzielne przez 2 bez reszty:
// wypisz "parzysta"
// w przeciwnym razie:
// wypisz "nieparzysta"
static void Main()
{
Console.Write("Podaj liczbę całkowitą: ");
int n = int.Parse(Console.ReadLine());
if (n % 2 == 0)
{
Console.WriteLine("Liczba parzysta");
}
else
{
Console.WriteLine("Liczba nieparzysta");
}
}
}
- Prześledź kod Zwróć uwagę, że pseudokod w komentarzu i schemat blokowy z sekcji "Schemat" opisują dokładnie ten sam algorytm co finalny kod C# — tylko na trzy różne sposoby. To celowe: chodzi o pokazanie, że "myślenie algorytmiczne" jest niezależne od języka programowania. Romb ze schematu (
n % 2 == 0?) to dokładnie ten sam warunek, coif (n % 2 == 0)w kodzie.
Sprawdź, zanim przepiszesz cały program
Pomijanie etapu planowania i pisanie kodu "na żywioł" — dla prostych zadań to działa, ale przy bardziej złożonej logice (dużo warunków zależnych od siebie) łatwo o pominięty przypadek. Schemat blokowy wymusza przemyślenie WSZYSTKICH gałęzi (każdy romb musi mieć dokładnie dwa wyjścia).
Zbyt szczegółowy pseudokod — pseudokod nie powinien zawierać składni konkretnego języka (średniki, nawiasy klamrowe). Jeśli pseudokod wygląda jak gotowy kod C#, to już nie jest pseudokod.
Romb z jednym wyjściem — częsty błąd na rysowanych schematach: warunek musi mieć ZAWSZE dwie strzałki wychodzące (tak/nie), nawet jeśli w gałęzi "nie" nic się nie dzieje poza przejściem dalej.
Ćwiczenie z pomocą · samodzielna praca
4. Teraz Twoja zmiana
Rozpisz na kartce (albo w edytorze tekstu) pseudokod algorytmu sprawdzającego, czy podana liczba jest liczbą pierwszą. Nie pisz jeszcze kodu C# — najpierw sam pseudokod, krok po kroku.
Spełnij warunki polecenia. Zapisz wejście, otrzymany wynik i wyjaśnij, która część kodu za niego odpowiada.
? Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź
Wróć do podstawowej formy oraz objaśnienia: Zacznij od wejścia i oczekiwanego wyjścia. Romb schematu odpowiada warunkowi, a dwie gałęzie mają rozłączne opisy. Ten sam warunek musi znaleźć się w pseudokodzie i w C#.
Krok 2 — pokaż podpowiedź
Zmień tylko część potrzebną do polecenia. Zachowaj działającą wersję przed zmianą i uruchamiaj po każdym małym etapie.
Krok 3 — pokaż podpowiedź
Sprawdź przypadek zwykły i graniczny; porównaj z regułą: Dla8: parzysta; dla7: nieparzysta.
Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.
5. Sprawdź rozumienie, nie tylko uruchomienie
Dalej na swoim koncie
Rozgrzewki, quiz i zadania są w biurku ucznia.
Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.
Zaloguj się →