Rozdział 15 - Uruchamianie programów

Sztuka programowania komputerów nie polega jedynie na wyuczeniu się funkcji poszczególnych poleceń. Prawdopodobnie już zdążyłeś się przekonać, iż większość twoich programów zawiera błędy, gdy je po raz pierwszy wprowadzisz do komputera: być może błędy przy wpisywaniu lub błędy w twoich pomysłach na temat tego, co program powinien wykonywać. Mógłbyś przypisać to swojemu niedoświadczeniu, lecz w ten sposób oszukiwałbyś się tylko.

KAŻDY PROGRAM ROZPOCZYNA SIĘ OD BŁĘDÓW

Wiele programów również kończy się z błędami. Wynikają z tego dwa wnioski: po pierwsze musisz od razu testować wszystkie swoje programy, a po drugie, nie ma sensu tracić panowania nad sobą za każdym razem, gdy nie chcą działać. Ogólny plan można zilustrować schematem blokowym:

Zasadą jest to, iż przechodzisz schemat blokowy od skrzynki do skrzynki wg strzałek, robiąc dokładnie to, co jest zapisane wewnątrz. Dla różnych rodzajów instrukcji użyliśmy różnych rodzajów skrzynek.

 

Zaokrąglona skrzynka jest punktem startowym lub metą
Prostokątna skrzynka jest bezpośrednią instrukcją
Równoległobok prosi cię o podjęcie jakiejś decyzji przed dalszym wykonywaniem instrukcji

 

(Przedstawione symbole blokowe są powszechnie stosowane na schematach blokowych, lecz wcale nie musisz się przy nich upierać)

 

Oczywiście schematy blokowe nie nadają się specjalnie do opisu działań ludzkich; myślenie ograniczone ściśle wytyczonymi ścieżkami nie sprzyja kreatywności lub elastyczności. Jednakże dla komputerów są dniem powszednim. Najlepiej nadają się do ogólnego opisu struktury programów z podprogramem w prawie każdej skrzynce, zatem schemat blokowy dla naszego programu przeliczania funtów sterlingów mógłby wyglądać następująco:

Wtedy przy koncepcyjnym podejściu prostokątne skrzynki odpowiadają poleceniom GOSUB; chociaż w praktyce niektóre skrzynki - jak ta u góry odczytująca L, S i D - są tłumaczone bezpośrednio na polecenia języka BASIC, bez odwoływania się do podprogramu.

Schematy blokowe, podprogramy oraz polecenia REM służą lepszemu zrozumieniu działania programu; a wtedy popełnia się mniej błędów. Lecz podprogramy również pomagają w ograniczeniu liczby popełnianych błędów przez ułatwienie testowania programu. Łatwiej jest przetestować osobne podprogramy i upewnić się, iż poprawnie ze sobą współpracują niż testować cały program bez podziału na podprogramy.

Zatem podprogramy pomagają przy skrzynce "Znajdź błędy", a tutaj naprawdę potrzebujesz wszelkiej dostępnej pomocy, ponieważ działanie to często doprowadza programistę do prawdziwej rozpaczy. Oto inne wskazówki do znajdowania błędów:

(i) Sprawdź, czy program nie zawiera pomyłek przy wpisywaniu. Zawsze to rób.

(ii) Staraj się wyliczyć wartość zmiennych na każdym etapie - a jeśli to możliwe, zastosuj odpowiednie wyjaśnienia w poleceniu REM. Wartość zmiennych możesz sprawdzić w wybranym punkcie programu przez wstawienie tam polecenia PRINT.

(iii) Jeśli efektem działania programu jest zatrzymanie się z komunikatem błędu, to wykorzystaj do maksimum tę informację. Wyszukaj kod błędu i postaraj się stwierdzić, dlaczego program zatrzymał się w tym właśnie wierszu. Jeśli konieczne, wyświetl sobie zawartość zmiennych.

(iv) Możesz przechodzić krokowo przez wiersze programu wpisując je jako rozkazy (bez numeru wiersza).

(v) Udaj, że jesteś komputerem: uruchom program na sobie samym korzystając przy tym z kartki i ołówka do notowania wartości zmiennych.

Gdy znajdziesz błędy, usuwanie ich przypomina pisanie oryginalnego programu, lecz program musisz przetestować ponownie. Zadziwiająco łatwo można usunąć jeden błąd tylko po to, aby wprowadzić do programu inny.

 

Ćwiczenia

  1. Schemat blokowy kalkulatora LSD nie posiada skrzynki "Koniec". Czy to ma znaczenie? Gdzie byś ją umieścił, gdybyś taką chciał mieć na schemacie blokowym?

 

 

  1. Narysuj schematy blokowe dla programów z pętlami w rozdziale 12.

 



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2018 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.