Programowanie/Metodyki/Programowanie zstępujące

Programowanie zstępująceEdytuj

Programowanie zstępujące jest jedną ze strukturalnych technik programowania. Polega ono na „rozdzielaniu” zadania programistycznego na mniejsze podzadania. Podzadanie jest podprogramem (np. funkcją).

dekompozycjaEdytuj

Przykładowo mamy do napisania skomplikowaną funkcję, możemy ją sobie wyobrazić jako pustą klatkę schematu Nassi Schneidermanna. Możemy ją zmienić na bardziej szczegółowe podzadania trzema sposobami: (1) na sekwencję, (2) na warunek, (3) na iterację. Każdy z podprogramów możemy dalej dekomponować (rozdzielać na prostsze podprogramy) aż do momentu, w którym podprogram będzie łatwy do zakodowania.

Funkcja może być zapisana jako sekwencja elementarnych podzadań. Pierwsza podinstrukcja jest prostym wyświetleniem powitania. Druga podinstrukcja może być warunkowym sprawdzeniem poprawności danych wejściowych i reakcją na nie. Jeżeli dane są poprawne, wówczas wykonaj obliczenia, w przeciwnym razie wyświetl informację o błędzie. Instrukcja obliczania została zdekomponowana – jej projektowanie zostało odłożone na później. Technikę rozpisywania zadania na prostsze podzadania możemy kontynuować od rozwiązania problemu.

technika odraczaniaEdytuj

Technika odraczania pozwala na skompilowanie algorytmu podczas jego dekompozycji, nawet jeżeli nie został jeszcze w pełni zakodowany. Wszystkie podprogramy mogę być wpisywane do komputera jako realny kod programu, ale z jednym uproszczeniem. Mianowicie niezakodowana funkcja jedynie wypisuje na ekranie informację o tym, że jest jeszcze niezakodowana. Ale posiada ona nagłówek (interfejs) i pozwala na skompilowanie oraz próbne uruchomienie programu. Pozwala to na wyłapanie błędów kompilacji i szybkie prototypowanie algorytmu, nawet jeżeli nie jest jeszcze w pełni wiadomy. Funkcję „niezakodowaną” dzielimy na dwie kategorie:

zaślepkiEdytuj

Zaślepki nie wykonują żadnych obliczeń, jedynie wyświetlają informację, że podprogram wymaga zakodowania.

makietyEdytuj

Makiety ponadto wydają jakieś wyniki działania, wzięte „na lipę”, tzn. zapewniające możliwość uruchomienia programu jeszcze przed jego zakodowaniem.