Schemat blokowy algorytmu – rodzaje bloków, jak go zrobić i w czym wykonać

Przedstawienie algorytmów w sposób czytelny jest istotne zarówno dla początkującego programisty, jak i dla profesjonalnego kodera. Schematy blokowe okazują się idealnym rozwiązaniem w czasie nauki, szczególnie jeśli chodzi o podstawowe typy algorytmów.

Na czym polega schemat blokowy?

Schemat blokowy to graficzne przedstawienie algorytmu, a więc ciągu czynności służących do osiągnięcia konkretnego efektu. Co ciekawe, schematy blokowe są wykorzystywane w różnych dziedzinach, w tym do przedstawiania zasady działania algorytmów czy przebiegu procesów biznesowych.

Schematy blokowe składają się z elementów (bloki lub skrzynki), które przedstawiają konkretne instrukcje w ściśle określonej kolejności (z wykorzystaniem strzałek).

Dokumentowanie procesów biznesowych za pomocą schematów blokowych rozpoczęło się już w latach 20. i 30. XX wieku. Rozpowszechniono je jednak dopiero w latach 40., co było zasługą dwójki studentów – Spinangera oraz Grahama. Z kolei w 1947 roku ASME – Amerykańskie Stowarzyszenie Inżynierów Mechaników – przyjęło system symboli do schematów blokowych procesów. To były początki schematu blokowego, który w informatyce został użyty w latach 40. przez Goldstina i Van Neumanna.

ads banner
Zalety schematów blokowych:
  • elastyczna forma zapisu,
  • niezależność od języków programowania,
  • łatwa kontrola poprawności algorytmu,
  • możliwość szybkiego zrozumienia.
Wady schematów blokowych:
  • niewygodne dla skomplikowanych algorytmów,
  • brak możliwości łatwej poprawy błędów.

Jak się robi schemat blokowy?

Schematy blokowe składają się z bloków, które w sposób graficzny reprezentują konkretne operacje. Do ich zastosowania konieczna jest więc znajomość elementów, z których się składa, oraz sposobu przedstawiania takich wyrażeń jak pętle.

Elementy schematu blokowego – lista

Na poniższym obrazku znajdziesz listę wszystkich elementów, które mogą być stosowane w ramach schematów blokowych.

Elementy - schemat blokowy
Skorzystaj z powyższej grafiki, dla łatwego zapamiętania poszczególnych bloków. Może posłużyć również jako ściągawka, dzięki której łatwiej znajdziesz potrzebny blok. Nieistotne są kolory konkretnych elementów, liczą się ich kształty oraz kierunek strzałek.

Warto jednak pamiętać, że nie istnieją bloki służące do bezpośredniego wykonywania pętli. Dlatego też tworzy się je za pomocą wykorzystania bloku warunkowego, dzięki któremu możliwe jest utworzenie odpowiednika każdej pętli.

Pętla w schemacie blokowym
Na obrazku znajdziesz podstawowy rodzaj pętli, który możesz odpowiednio dopasować do swoich potrzeb.

Ważne: W przypadku schematów blokowych na naszej stronie stosujemy strzałkę ← jako operator przypisania, natomiast znak = do instrukcji warunkowych jako operator porównania. Dodatkowo w przypadku bloku operacyjnego stosujemy operacje takie jak w pseudokodzie według wskazań CKE. Pozwala to zmniejszyć liczbę potencjalnych błędów, szczególnie jeśli jest się przyzwyczajonym do stosowania pseudokodu.

Proces projektowania i tworzenia schematu blokowego

Poniżej znajdziesz proces tworzenia krok po kroku schematu blokowego na przykładzie wzoru na średnią arytmetyczną. Graficzny proces tworzenia jest dostępny na poniższej grafice GIF.

Przykład schematu blokowego GIF
Stworzenie schematu blokowego wymaga przemyślenia, po pierwsze, w jaki sposób ma działać sam algorytm, a po drugie, na którym miejscu umieścić instrukcje warunkowe, bloki operacyjne czy pętle. Nie śpiesz się i zwracaj uwagę na wszelkie potencjalne błędy.

Specyfikacja:

  • n – liczba podawanych wartości,
  • suma – suma podanych wartości,
  • srednia – wynik końcowy, średnia arytmetyczna.

W przypadku pseudokodu ten kod prezentuje się następująco:

Proces tworzenia części logicznej schematu blokowego:

  • 1. krok – tworzenie schematu blokowego rozpoczyna się zawsze od bloku początkowego Start,
  • 2. krok – deklaracja zmiennej n o wartości 0. Nie jest to konieczne w przypadku schematu blokowego (skoro potem stosuje się blok wejścia), jednak w przypadku części języków (np. C++) byłoby to ważne, ponadto dla większej uniwersalności warto zadbać o wcześniejszą inicjalizację zmiennych,
  • 3. krok – wprowadzenie wartości do zmiennej n, czyli liczby wartości, na bazie których zostanie obliczona średnia arytmetyczna,
  • 4. krok – deklaracja tablicy wartości, bo teraz już wiadomo, ile wartości zostanie wprowadzonych. Do tego należy zainicjalizować zmienne suma oraz srednia,
  • 5. krok – w tym miejscu umieszcza się instrukcję warunkową działającą jako pętla, która działa tyle razy, ile jest wprowadzanych wartości do tablicy (odpowiednik for). Nie jest istotne, który z kątów rombu odpowiada za strzałkę “tak”, a który za “nie”. Istotne jest tylko oznaczenie, gdzie jest “tak”, a gdzie “nie”, przy zachowaniu odpowiedniego kierunku strzałek,
  • 6. krok – wprowadzenie kolejnych wartości, z których zostanie uzyskana średnia arytmetyczna do tablicy,
  • 7. krok – zamiast tworzyć kolejną pętlę, gdzie zostaną zsumowane wszystkie wartości, można skorzystać z już istniejącej. Istotne jest tylko to, żeby dodawać wartości już po tym, jak zostaną wprowadzone przez użytkownika,
  • 8. krok – po zwróceniu “nie” przez blok warunkowy wykonywana jest instrukcja obliczająca średnią z ilorazu sumy oraz liczby elementów,
  • 9. krok – teraz wystarczy już tylko wypisać wynik umieszczony w zmiennej srednia,
  • 10. krok – gotowe, schemat blokowy został utworzony. Oczywiście, po utworzeniu każdego algorytmu w formie graficznej należy prześledzić wszystkie bloki dla sprawdzenia, czy logika schematu działa prawidłowo.

Utworzenie własnego schematu blokowego nie jest trudne, choć wymaga pewnej wprawy. Najważniejsze jest sprawdzanie działania algorytmu już po utworzeniu schematu, żeby wyeliminować wszelkie potencjalne błędy.

W czym najlepiej zrobić schemat blokowy – lista programów

Klasycznie schemat blokowy jest wykonywany na kartce papieru przy pomocy długopisu lub ołówka. Jednak obecnie istnieją programy do tworzenia schematów blokowych, dzięki którym możesz wygodnie przygotować odpowiednią grafikę. Są to m.in.:

  • figma.com,
  • diagrams.net (wcześniej draw.io),
  • Microsoft Visio,
  • Lucidchart,
  • Miro,
  • Dia Diagram Editor.

To popularne aplikacje oraz strony internetowe, które ułatwiają tworzenie estetycznych schematów blokowych.

Do czego wykorzystujemy schemat blokowy?

Schematy blokowe – ze względu na możliwość łatwego przekazania określonych informacji i sprawnego wyszukiwania potencjalnych błędów – wykorzystywane są w rozmaitych dziedzinach, m.in. do:

  • projektowania algorytmów,
  • rozwiązywania problemów (niezależnie od dziedziny),
  • nauki podstaw programowania,
  • planowania procesów produkcyjnych,
  • modelowania systemów informatycznych.

Jeśli miewasz problemy z częścią logiczną algorytmów, dobrze jest przełożyć je na schemat blokowy. Okazuje się to użyteczne zarówno w przypadku planowania działania programu, jak i przy próbach zrozumienia określonych algorytmów.

Jak wygląda schemat blokowy algorytmu – przykłady

Istnieje wiele algorytmów przedstawianych w formie schematu blokowego. Najczęściej chodzi o te, które są stosowane w ramach nauki. Graficzna forma pozwala na skuteczne przyswojenie sobie zasad, którymi kierują się poszczególne rozwiązania. Wśród znanych algorytmów przedstawianych graficznie można znaleźć:

  • sortowanie bąbelkowe,
  • Sito Eratostenesa,
  • sortowanie przez wstawianie,
  • ciąg Fibonacciego.

Poniżej znajdziesz gotowe schematy blokowe, opisujące algorytmy stosowania wzorów matematycznych w programie.

Obwód prostokąta – schemat blokowy
Obwód prostokąta - schemat blokowy
Obliczanie obwodu prostokąta to podstawowy wzór matematyczny: Ob = 2 * a + 2 * b.

Implementacja w pseudokodzie:

Jak widać na powyższym schemacie blokowym, wystarczy zaledwie kilka elementów, żeby odzwierciedlić algorytm obliczania obwodu prostokąta. W schematach blokowych dobrze jest trzymać się wcześniejszego (czyli przed wprowadzaniem do nich wartości przez użytkownika) deklarowania zmiennych. Warto jednak pamiętać, że niektórzy autorzy schematów przyjmują deklarowanie zmiennej w czasie jej wprowadzania.

Średnia ważona – schemat blokowy
Średnia ważona - schemat blokowy
Średnia ważona posiada wzór: xw = x1 * w1 + x2 * w2 … xn * wn / w1 + w2 … + wn.

Implementacja w pseudokodzie:

Schemat blokowy opisujący średnią ważoną to usprawniony schemat obliczania średniej arytmetycznej. Główną różnicą jest zastosowanie tablicy dwuwymiarowej, gdzie w jednym elemencie umieszcza się wartość, a w drugim jej wagę. Natomiast sam dzielnik to suma wag, a nie liczba wartości.

Obliczanie delty – schemat blokowy
Obliczanie delty - schemat blokowy
W przypadku obliczania delty wzorem jest: delta = b2 – 4 * a * c. Gdy wynik jest większy od 0, istnieją dwa rozwiązania równania kwadratowego, jeśli jest równy 0, to rozwiązanie jest jedno, a przy ujemnym wyniku nie istnieją możliwe rozwiązania.

Implementacja w pseudokodzie:

Przedstawiony schemat blokowy jest stosunkowo prosty, jednak dobrze pokazuje, w jaki sposób można wykorzystać kilka połączonych bloków warunkowych. Ze względu na ograniczoną liczbę elementów (bloków) w schematach blokowych wykorzystanie bloku warunkowego pozwala uzyskać większe możliwości.

QUIZ – Sprawdź swoją wiedzę

Schematy blokowe to użyteczne narzędzie do graficznego przedstawiania algorytmów oraz procesów. Okazują się łatwe w zrozumieniu, uniwersalne, a także skalowalne. Wystarczą kartka papieru i długopis, żeby opracować własny schemat blokowy, choć obecnie istnieje wiele darmowych, a zarazem profesjonalnych programów oferujących możliwość ich tworzenia. Schematy blokowe okażą się sporym ułatwieniem w czasie nauki nowych rozwiązań.

Zadanie domowe
  1. Stwórz schemat blokowy opisujący algorytm obliczania pola i obwodu równoległoboku (obwód: C = 2 (a + b), pole: A = b * h, gdzie a i b to boki, natomiast h to wysokość).

Najczęściej zadawane pytania o schematy blokowe

Czy schematy blokowe są przydatne w programowaniu?

Tak, schematy blokowe są niezwykle przydatne w programowaniu – z kilku powodów:

  1. wizualizacja algorytmów – pomagają wizualizować działanie algorytmów, co ułatwia zrozumienie ich części logicznej,
  2. projektowanie algorytmów – pozwalają programistom na projektowanie algorytmów przed przystąpieniem do pisania kodu, co pomaga w planowaniu i organizowaniu procesu programowania,
  3. debugowanie – mogą być używane do wstępnego debugowania kodu poprzez identyfikowanie potencjalnych problemów w logice algorytmu jeszcze przed jego implementacją w kodzie,
  4. komunikacja – to doskonałe narzędzie do komunikacji między członkami zespołu programistycznego, umożliwiające wspólne zrozumienie algorytmów i procesów.
Jak można przekonwertować schemat blokowy na kod programu?

W tym przypadku podstawą jest ręczne przetworzenie schematu blokowego na kod. Jednak część środowisk programistycznych (IDE), bibliotek i narzędzi pozwala na tworzenie kodu za pomocą bloczków. Jest to rozwiązanie podobne do schematu blokowego, obecne w:

  1. Blockly,
  2. Code2Flow,
  3. Microsoft Visual Studio,
  4. Eclipse,
  5. JetBrains IntelliJ IDEA.
Czy istnieją standardy lub konwencje dotyczące tworzenia schematów blokowych?

Istnieje ogólny standard co do tego, jakie elementy (bloki) stosowane są w schematach blokowych w informatyce. Jednak nie ma ogólnej standaryzacji co do tego, co można wykorzystać w ramach samych bloków. Mimo to w swoich schematach blokowych warto starać się o uniwersalność (niezależność od języków programowania), a także o stosowanie podobnych zasad pisania przy każdym schemacie. Ułatwi to późniejsze przekonwertowanie algorytmu na język programowania oraz zrozumienie działania danego rozwiązania przez inne osoby.

ads banner