Otwórz sobie drzwi do kariery programisty     |        Wybierz swoją ścieżkę kariery w IT!     |       Zacznij naukę z 30% rabatem

2 dni 00 godzin
close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
Zdjęcie główne artykułu.

Co to jest programowanie strukturalne

Programowanie strukturalne to styl programowania, który ma ułatwić zrozumienie kodu z punktu widzenia osoby, która ten kod czyta. W programowaniu strukturalnym kolejność wykonywania instrukcji jest taka sama jak ich kolejność w kodzie źródłowym.

Jak to rozumieć w praktyce

W programowaniu strukturalnym najważniejszy jest tzw. liniowy przepływ. Wyobraź sobie, że analizujesz kod źródłowy jakiegoś programu. Jeśli jest on napisany zgodnie ze sztuką programowania strukturalnego to nie będziesz mieć problemów z przeanalizowaniem zachowania programu.

W takim kodzie łatwo odnajdziesz miejsce, od którego program zaczyna swoją pracę. Łatwo też odnajdziesz miejsce, w którym praca programu sie kończy. W każdym momencie będziesz wiedzieć, który fragment kodu jest aktualnie wykonywany. Wszystko będzie ułożone liniowo - nie będzie nagłych przeskoków o 100 czy 1000 linii kodu podczas wykonywania programu.

Po prostu taki kod będzie miał łatwą do zrozumienia strukturę. Stąd też nazwa “programowanie strukturalne”.

Główne elementy programowania strukturalnego

W programach napisanych zgodnie ze sztuką możemy wyróżnić kilka charakterystycznych elementów. Te elementy będą się przewijały na każdym kroku. Spróbujmy więc przyjrzeć się im bliżej.

Bloki

Blok to nic innego jak zestaw powiązanych ze sobą instrukcji. To naturalny element budujący kod źródłowy programu. Blokiem może być funkcja, pętla itp. Blok należy traktować jako całość - jako najmniejszy samodzielny element programu.

Blok powinien mieć jeden punkt wejścia oraz jeden punkt wyjścia. Podczas wykonywania programu “wchodzimy” do bloku. Wykonujemy wszystkie instrukcje w nim zawarte i na koniec z tego bloku wychodzimy.

Takie podejście bardzo ułatwia analizowanie oraz debugowanie kodu. Jeśli podaliśmy na wejściu dobre dane a otrzymaliśmy zły wynik to wiemy, że błąd występuje wewnątrz bloku. To bardzo ułatwi nam pracę bo wiemy już gdzie tego błędu szukać.

Powtarzanie (iteracja)

Powtarzanie w programowaniu realizujemy zazwyczaj za pomocą pętli. I teraz mamy pytanie:

Czy pętla spełnia kryteria programowania strukturalnego?
Raczej tak.

Wchodzimy do pętli z poprzedniego bloku. Wykonujemy pewną ilość iteracji i na końcu wychodzimy z pętli przechodząc do kolejnego bloku kodu. Wszystko ma liniową, łatwą do przeanalizowania strukturę.

Nie ma znaczenia ile razy pętla się wykona. Czy będzie to raz czy tysiąc razy. Dopóki pętla wykonuje swoją pracę to jesteśmy w tym samym miejscu. A jak już pętla swoje działanie zakończy to po prostu przechodzimy dalej.

Wybór

W programowaniu często musimy dokonywać wyboru. Pewnie kojarzysz instrukcję warunkową IF-ELSE (Jeżeli-To). To właśnie dobry przykład mechanizmu wyboru.

Czy taki mechanizm spełnia kryteria programowania strukturalnego? Wyobraź sobie, że sprawdzasz wartość zmiennej - to jest punkt wejścia. Jeśli warunek jest prawdziwy to wykonujemy pierwszy blok kodu i potem z niego wychodzimy. Jeśli warunek jest fałszywy to wykonujemy drugi blok kodu i potem z niego wychodzimy.

Jeśli mamy jeden punkt wejścia i każdy z alternatywnych bloków ma jeden punkt wyjścia to kryteria programowania strukturalnego są spełnione.

Zagnieżdżanie

Mniejsze bloki można zagnieżdżać w blokach większych. Te mniejsze bloki też spełniają nasze kryteria - mają jeden punkt wejścia oraz jeden punkt wyjścia. Nie ma znaczenia jak głęboko jest zagnieżdżona struktura. Ważne, żeby powyższe kryteria były spełnione.

Co NIE jest programowaniem strukturalnym?

Obecnie rzadko już stosuje się tzw. instrukcje skoku (GO TO czyli “idź do”). Dlaczego? Bo takie instrukcje utrudniały albo wręcz uniemożliwiały tworzenie kodu w sposób strukturalny.

Instrukcja skoku powodowała, że podczas wykonywania programu następowały nagłe…skoki. Na przykład z linii numer 123 do linii numer 30. Albo z linii numer 23 do linii 345. To bardzo utrudniało analizowanie oraz debugowanie kodu. I stąd właśnie wzięła się idea programowania strukturalnego, które ma zaradzić tym problemom.

Jeszcze raz przypominamy, że chodzi o ten liniowy przepływ bez nagłych skoków. Kolejność wykonywania instrukcji podczas uruchamiania programu powinna być mniej więcej taka sama jak ich kolejność w kodzie źródłowym.

Programowanie strukturalne w praktyce

W rzeczywistości mało jest języków, które wymuszają strukturalne podejście do programowania. To jest zadanie dla programisty - on sam musi zadbać o to, aby jego kod był zgodny z omówionymi wyżej regułami.

Nie ma większego znaczenia w jakim języku pracujesz. To może być Java, Python, C++, JavaScript albo cokolwiek innego. Sam język nie będzie zazwyczaj narzucał “na sztywno” mechanizmów programowania strukturalnego. Ty musisz o to zadbać samodzielnie.

Ten temat jest bardzo głęboki. Programowanie strukturalne możesz w praktyce realizować za pomocą różnych mechanizmów. To może być programowanie obiektowe, funkcyjne itd. Ważne jest to aby pamiętać o tych ogólnych regułach budujących strukturę programu.