Массив a[1..10] заполните случайными целыми числами в диапазоне от 1 до 10. Определите,...

0 голосов
73 просмотров

Массив a[1..10] заполните случайными целыми числами в диапазоне от 1 до 10. Определите, есть ли в массиве элемент, равный 5. Ответ выведите в виде слов "Да" или "Нет". В общем найдите мою ошибку(у меня выводится только 1 элемент, а не 10)
Program shist;
Var a:array[1..10] of integer;
i:integer;
Begin
For i:=1 to 10 do
a[i]:=Random(10)+1;
writeln ('Исходный массив');
For i:=1 to 10 do
begin
write (a[i], ' ');
writeln;
writeln ('Есть ли в массиве элемент, равный 5?');
break;
end;
if a[i]=5 then write ('Да') else write ('Нет')
End.
И вот что получилось
Исходный массив
7
Есть ли в массиве элемент, равный 5?
Нет


Информатика (2.3k баллов) | 73 просмотров
0

в исходном массиве должно быть 10 чисел а у мя только одно...

Дан 1 ответ
0 голосов

Var a:array[1..10] of integer; q:boolean; i:integer; Begin Randomize; q:= false; writeln ('Исходный массив'); For i:=1 to 10 do begin a[i]:=Random(10)+1; write (a[i], ' '); if (a[i]=5) then q:=true; end; writeln; if (q) then writeln('da') else writeln('net'); end.

(336 баллов)
0

или можно Program shist;
Var a:array[1..10] of integer;
i:integer;
Begin
For i:=1 to 10 do
a[i]:=Random(10)+1;
writeln ('Исходный массив');
For i:=1 to 10 do
begin
write (a[i], ' ');
end;
writeln;
writeln ('Есть ли в массиве элемент, равный 5?');
if a[i]=5 then write ('Да') else write ('Нет')
End.

0

Нет, у вас в предпоследней строке идет проверка if a[i]=5 then. Это условие находится вне цикла, поэтому идет проверка только if a[10]=5 then , тк i последний раз принимал значение 10.