[Pascal] Testowanie programu

makuu
Użytkownik
Użytkownik
Posty: 48
Rejestracja: 7 maja 2010, o 01:42
Płeć: Mężczyzna

[Pascal] Testowanie programu

Post autor: makuu » 26 sie 2011, o 23:08

Witam, mam pytanie odnośnie testowania programu.
Gdy mamy program następujący, zapisany w Pascalu:

Kod: Zaznacz cały

program silnia;
var
n,i,s:integer;
begin
writeln('podaj n');
readln(n);
s:=1;
i:=1;
while i<=n do
begin
s:=s*i;
i:=i+1;
writeln(s);
end;
readln;
end.
I testujemy go dla wartości n=5
To jak należy go testować? Tutaj są dwa sposoby na obrazku:http://imageshack.us/photo/my-images/59 ... wanie.jpg/

Mógłby ktoś napisać który jest dobry i ewentualnie napisać dlaczego? Z góry dzięki.
Ostatnio zmieniony 29 sie 2011, o 14:52 przez Afish, łącznie zmieniany 2 razy.
Powód: Poprawa wiadomości.

sonicwork
Użytkownik
Użytkownik
Posty: 67
Rejestracja: 3 wrz 2010, o 00:38
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 2 razy
Pomógł: 1 raz

[Pascal] Testowanie programu

Post autor: sonicwork » 27 sie 2011, o 00:10

Trochę źle jest to narysowane
Ten drugi jest bliżej prawdy a wątpliwości biorą się stąd że i jest zmieniane dopiero po zmianie s, wiersz odpowiada kolejnemu cyklowi pętli z wyjątkiem wiersza pierwszego ponieważ wartości w nim zawarte są przypisywane przed pętlą

makuu
Użytkownik
Użytkownik
Posty: 48
Rejestracja: 7 maja 2010, o 01:42
Płeć: Mężczyzna

[Pascal] Testowanie programu

Post autor: makuu » 27 sie 2011, o 08:16

Tak ale czy tutaj z "s" nie ma być w jednym wierszu to "i" dla którego to "s" powstaje?

A czemu ten drugi jest bliżej prawdy? co w nim jest złego?

sonicwork
Użytkownik
Użytkownik
Posty: 67
Rejestracja: 3 wrz 2010, o 00:38
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 2 razy
Pomógł: 1 raz

[Pascal] Testowanie programu

Post autor: sonicwork » 27 sie 2011, o 09:59

to że sprawia wrażenie obliczania "s" z już zwiększonego "i" a program działa odwrotnie, najpierw oblicza "s" a dopiero potem zwiększa "i" proponuję przede wszystkim umieścić zmienne w kolejności n, s, i, dzięki temu czytając kolejno komórki tabeli widzimy kolejne operacje wykonywane przez program

nowe "s" obliczasz zawsze z wartości w poprzednim wierszu

ODPOWIEDZ