Należy poprawić program tak, żeby działał.


program szukam_liczbe;
{ Program zapelnia tablice losowymi liczbami i sprawdza ile razy
znajduje sie w niej wczytana liczba. }
uses crt
var
IleZnaleziono : Byte;
Liczby: array [1 .. 20] of Byte;
I, N : Byte;begin

Randomize;
for I := l to 20 do
begin

Liczby [I] := Random (20) + l;
write ('Podaj liczbe z zakresu (1..20): ');
readln (N);
while ((N<l)
or (N)20)) do

write (' Zla wartosc. Podaj liczbe z zakresu (1..20): ');
readln (N);
end;
IleZnaleziono := 0;
writeln;
write ('Tablica: '); for I:= l to 20 do

begin
write (Liczby I, ' ');
if Liczby [I] = N then
IleZnaleziono:= IleZnaleziono + 1;
end;

writeln;

if IleZnalezlono = O then
writeln ('Liczby', N, 'w tablicy nie odnaleziono. ') else
writeln ('Liczbe ', N, 'w tablicy odnaleziono' , IleZnaleziono, ' razy.');

readln;
end.

1

Odpowiedzi

Najlepsza Odpowiedź!
2010-03-17T11:25:29+01:00
Poprawiony kod:

program szukam_liczbe;
{ Program zapelnia tablice losowymi liczbami i sprawdza ile razy
znajduje sie w niej wczytana liczba. }
uses crt;
var
IleZnaleziono : Byte;
Liczby: array [1 .. 20] of Byte;
I, N : Byte;begin
clrscr;
Randomize;
for I := 1 to 20 do
begin
Liczby [I] := Random (20) + 1;
end;
repeat
write ('Podaj liczbe z zakresu (1..20): ');
readln (N);
until (n>0) and (n<21);
IleZnaleziono := 0;
writeln;
write ('Tablica: '); for I:= 1 to 20 do

begin
write (Liczby[I], ' ');
if Liczby [I] = N then
IleZnaleziono:= IleZnaleziono + 1;
end;

writeln;

if IleZnaleziono = 0 then
writeln ('Liczby', N, 'w tablicy nie odnaleziono. ') else
writeln ('Liczbe ', N, 'w tablicy odnaleziono' , IleZnaleziono, ' razy.');

readln;
end.



Ogólnie bardzo dużo błędów, pętle na siebie nachodziły, zmienne do siebie nie pasowały, strasznie dużo literówek. Poprawiłem kod i po mojemu powinno to działać, w każdym razie się kompiluje. Gdybyś miała jakieś pytania albo reklamacje to pisz na PM.