Предмет: Информатика, автор: ИльяСтеРус55

Даю 100 баллов! Программа на pascal, в которой нужно заменить цикл while на for.
const n=10;
var a: array [1..n] of integer; i, p: integer;
begin
writeln('Ввод значений элементов массива:');
for i:=1 to n do
read(a[i]);
write('Ввод p: ');
readln(p);
i:=1;
while (i<=n) and (a[i]<>p) do i:=i+1;
if i=n+1
then writeln('Искомого элемента в массиве нет')
else writeln('Искомый элемент a[', i, '] = ', a[i])
end.


ИльяСтеРус55: Нет
ИльяСтеРус55: Нужно переделать программу так, чтобы использовался цикл for, вместо while
ИльяСтеРус55: В строке while (i<=n) and (a[i]<>p) do i:=i+1;
restIess: Ну так а сделать что нужно в задаче?
ИльяСтеРус55: Это индивидуальное задание, нужно просто переделать код.
restIess: Переделывать код, не понимая что он делает - бред
ИльяСтеРус55: Я понимаю, что делает код. Алгоритм называется "последовательный поиск в неупорядоченном массиве". "Имеется массив[1..n]; требуется найти элемент массива, равный p.".
Задание: заменить конструкцию while в программе на for.
restIess: for i := 1 to n do begin if a[i] = p then begin writeln('Искомый элемент', a[i]); break; end; if (i = n) and (a[i] <> p) writeln('Нет такого элемента'); end;
ИльяСтеРус55: Пожалуйста, напишите ваше решение в ответ, вместе со всем кодом.
luckyanna612: тут не 100 а пятьдесят дают

Ответы

Автор ответа: restIess
1

const n=10;

var a: array [1..n] of integer;  

i, p: integer;

begin

writeln('Ввод значений элементов массива:');

for i:=1 to n do

read(a[i]);

write('Ввод p: ');

readln(p);

for i := 1 to n do

 begin  

 if a[i] = p then

   begin  

   writeln('Искомый элемент a[', i, '] = ', a[i]);

   break;  

   end;  

   if (i = n) and (a[i] <> p) then

     writeln('Искомого элемента в массиве нет');

 end;

end.

Похожие вопросы