Jak najlepiej szukać błędów
Pewnie jak każdy z programistów masz potężnego wroga - błędy. To tak samo jak ja :). Najlepiej wypiszę wszystko w punktach:
1. Jesli używasz Turbo Pascala, masz duże szanse na "przeżycie" przygody z błędami. Mimo to, czasami nawet TP nie pomoże. Oto kilka błędów i ich wyjaśnienie(jeśli to wszystko wiecie to proszę mnie nie obsypywać oczywistymi komentarzami):
Kod żródłowy:
Myśli użytkownika niewtajemniczonego(i zbyt leniwego na dokładne sprawdzenie problemu :)):
CO??!!
Zaraz, zaraz, przypisanie się zgadza! Więc co się nie zgadza? Głupie pudło! Tyle czasu pracy i ten mi robi złośliwe uwagi tylko dlatego, że dobrze przypisałem! PHI!
Rozwiązanie: Zainicjuj zmienną Liczba!
Porada: Zawsze, gdy piszesz program, który jest długi, a w dodatku najbliższa operacja związana z daną zmienną jest więcej niż 15 linii od początku, zaraz po Begin zainicjuj ją jakąś wartością.
Kod źródłowy:
Rozwiązanie: TP nie zgłosił Ci tym razem błędu w Uses, bo zakładam, że biblioteka Graph istnieje. Dlatego też nie szukaj błędu od Begin, ale od samiuteńkiego początku.
Porada: Po każdym zdaniu sprawdzaj, czy zawiera ono to, co chciałeś.
2. Przepisy na szukanie błędów są bardzo mnogie:
- Szukaj najpierw w linii wskazanej przez kompilator, później deklaracje zmiennych, potem deklaracje procedur; wreszcie inne rzeczy.
- Jeśli szukasz, szukasz aż do końca programu, zachowaj kolejność procedury ratunkowej:
3. Sprawdź wersję kompilatora - niektóre są po prostu za stare na pewne rzeczy.
4. Czwartego punktu nie ma. Adiqwo wszedł do akcji i wyszedł z dumą :)
1. Jesli używasz Turbo Pascala, masz duże szanse na "przeżycie" przygody z błędami. Mimo to, czasami nawet TP nie pomoże. Oto kilka błędów i ich wyjaśnienie(jeśli to wszystko wiecie to proszę mnie nie obsypywać oczywistymi komentarzami):
Kod żródłowy:
Program Blad1;
Uses Crt;
Var
Liczba: Integer;
begin
{ bliżej nie opisane działania }
Liczba:=Liczba+1; { Tu jest błąd! }
end.
Uses Crt;
Var
Liczba: Integer;
begin
{ bliżej nie opisane działania }
Liczba:=Liczba+1; { Tu jest błąd! }
end.
Myśli użytkownika niewtajemniczonego(i zbyt leniwego na dokładne sprawdzenie problemu :)):
CO??!!
Zaraz, zaraz, przypisanie się zgadza! Więc co się nie zgadza? Głupie pudło! Tyle czasu pracy i ten mi robi złośliwe uwagi tylko dlatego, że dobrze przypisałem! PHI!
Rozwiązanie: Zainicjuj zmienną Liczba!
Porada: Zawsze, gdy piszesz program, który jest długi, a w dodatku najbliższa operacja związana z daną zmienną jest więcej niż 15 linii od początku, zaraz po Begin zainicjuj ją jakąś wartością.
Kod źródłowy:
Program Blad2;
Uses Crt, Graph;
Var
Liczba: Integer;
begin
{ bliżej nie opisane działania }
InitGraph(...); { błąd! }
end.
Uses Crt, Graph;
Var
Liczba: Integer;
begin
{ bliżej nie opisane działania }
InitGraph(...); { błąd! }
end.
Rozwiązanie: TP nie zgłosił Ci tym razem błędu w Uses, bo zakładam, że biblioteka Graph istnieje. Dlatego też nie szukaj błędu od Begin, ale od samiuteńkiego początku.
Porada: Po każdym zdaniu sprawdzaj, czy zawiera ono to, co chciałeś.
2. Przepisy na szukanie błędów są bardzo mnogie:
- Szukaj najpierw w linii wskazanej przez kompilator, później deklaracje zmiennych, potem deklaracje procedur; wreszcie inne rzeczy.
- Jeśli szukasz, szukasz aż do końca programu, zachowaj kolejność procedury ratunkowej:
Uses Inteligecja;
Procedure Ratunek;
begin
Rozum_Po_Polsku;
Mów_Po_Polsku;
Powiedz('Najpierw przeszukaj raz następny,');
Powiedz('Potem napisz program od nowa');
end;
:DProcedure Ratunek;
begin
Rozum_Po_Polsku;
Mów_Po_Polsku;
Powiedz('Najpierw przeszukaj raz następny,');
Powiedz('Potem napisz program od nowa');
end;
3. Sprawdź wersję kompilatora - niektóre są po prostu za stare na pewne rzeczy.
4. Czwartego punktu nie ma. Adiqwo wszedł do akcji i wyszedł z dumą :)



Używaj kolorowania składni (< delphi >< /delphi > ) i wcięć w kodzie.
Całość trochę mętnie napisana. Może dorzuć instrukcję obslugi debuggera?
// debugger prawdę Ci powie, poza tym gdy program wywala się pod kontrolą IDE, dowiesz się w której linijce wystąpił błąd - ŁF.