Podstawy Programowania - Ćwiczenia 4


ZasadyĆw1, Ćw2, Ćw3, Ćw4, Ćw5, Ćw6, Ćw7, Ćw8, Ćw9, Ćw10, Ćw11, Ćw12, Ćw13
Prowadzący: Rafał Witkowski
Temat: Debugowanie

Aby uruchomić debugera w programie należy używać poleceń z menu pod przyciskiem Run.
Podstawowe z nich to:

F8 - wykonaj program linia po linii (wykonaj kolejną linię programu)
F7 - wykonaj kolejną linię programu, chyba, że jest to procedura, wtedy wykonaj pierwszą linię procedury
F4 - wykonaj program do linii w której znajduje się kursor
Ctrl+F5 - dodaj zmienną do Watcha

Watch to okienko, w którym można podglądać wartości zmiennych wykorzystywanych w programie.
Aby Watch działał tak jak tego od niego oczekujemy należy najpierw wykonać:
Project -> Options -> Compiler
i odznaczyć pole Optimize.

Jeśli wykonywaną linią programu jest wczytywanie danych, obsługa przełączy się do czarnego okienka DOSowego programu i będzie czekał, aż wpiszemy mu tam jakąś liczbę. Po wpisaniu obsługa przełączy się z powrotem do Dephi, gdzie będzie można kontynuować debugowanie.

Zadanie 1

Poniżej podany został kod programu liczący błędnie NWD wg algorytmu Euklidesa. Zadanie polega na znalezieniu błędu w poniższym kodzie (przy pomocy debugowania), a poprawnego wysłania na sprawrkę (zadanie ppr5).

//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
int d,i;
int liczba1, liczba2; // deklaracja zmiennych
int liczba[3];

scanf("%d",d);
while (d--)
{
for (int i=1 ; i<=2 ; i++) scanf("%d",&liczba[i]);
liczba1 = liczba[1];
liczba2 = liczba[2];
do
{
if (liczba1 > liczba2) liczba2 = liczba1 - liczba2;
else liczba1 = liczba2 - liczba1;
} while (liczba1 != liczba2);
printf("%d\n",liczba2);
}

  return 0;
}
//---------------------------------------------------------------------------

Uwaga!

Konstrukcja głównej pętli programu while (d--) jest jak najbardziej prawidłowa. O tym dlaczego tak jest można się dowiedzieć czytając ćwiczenia 2