Raiden Opublikowano 7 Listopada 2007 Zgłoś Opublikowano 7 Listopada 2007 Program powinien wypisywać zera i jedynki według pewnego algorytmu (Gra_w_%C5%BCycie). Jednak od 2 cyklu wypisywania w dolnych linijkach zamiast wpisywać zera lub jedynki wpisuje jakieś dziwne liczby. Wydaje mi się że problem tkwi gdzieś w przekazywaniu tablicy do funkcji, bo gdy program był robiony z tablicą globalną nie było problemu. Co konkretnie zmienić żeby działało?? program gra_o_zycie;uses crt; type tab=array[0..21,0..21] of integer;function sprawdz:tab;var i,j,k,n:integer; t:tab;begin for i:=1 to 20 do begin for j:=1 to 20 do begin n:=0; for k:=1 to 3 do begin if t[i-1,j-k+2]=1 then inc(n); if t[i+1,j-k+2]=1 then inc(n); end; if t[i,j-1]=1 then inc(n); if t[i,j+1]=1 then inc(n); if ((t[i,j]=1) and ((n=2) or (n=3))) then t[i,j]:=1 else if ((t[i,j]=1) and ((n<2) or (n>3))) then t[i,j]:=0 else if ((t[i,j]=0) and (n=3)) then t[i,j]:=1 else if ((t[i,j]=0) and (n<>3)) then t[i,j]:=0; end; end; sprawdz:=t;end;procedure wypisz(t:tab);var i,j:integer;begin clrscr; for i:=1 to 20 do begin for j:=1 to 20 do begin write(t[i,j],' '); end; writeln; end;end;procedure generuj(t:tab);var i,j:integer;begin for i:=1 to 20 do begin for j:=1 to 20 do t[i,j]:=random(2); end; for i:=0 to 21 do begin t[i,0]:=0; t[0,i]:=0; t[21,i]:=0; t[i,21]:=0; end;end;begin randomize; clrscr; generuj(sprawdz); repeat wypisz(sprawdz); delay(1000); until keypressed; readln;end. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 8 Listopada 2007 Zgłoś Opublikowano 8 Listopada 2007 umiesz korzystać z debugera i pracy krokowej? :wink: Takie problemy rozwiazuje się na poczekaniu wykorzystując narzędzia programistyczne.. Teraz czekasz aż ktoś zacznie parsować i kompilować program i uruchamiać go w trybie krokowym w swojej pamięci... :) I to nie jest gra o życie , a gra W życie... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...