program Prog;
var i, x, Proiz, MinEl: Integer;
arr: array[1..8] of Integer;
begin
Proiz:=1;
MinEl:=13;
randomize;
write('Введите X: ');
read(x);
// запоолнение, вычисление мин. эл., и умножения
for i:=1 to 8 do begin
arr[i]:=random(12)+2;
Proiz:=Proiz*arr[i];
if arr[i]<MinEl then
MinEl:=arr[i]
end;
// вывод всего массива
for i:=1 to 8 do
write(arr[i], ' ');
writeln;
// вывод нужных элементов
writeln('Минимальный элемент: ', MinEl);
writeln('Произведение элементов: ', Proiz);
writeln('Элементы, равные X: ');
for i:=1 to 8 do
if arr[i]=x then
write(arr[i], ' ')
end.
m:=0. "количество отрицателных"
p:=0 "количество положительных"
i:=1.
пока i<>0 повторять
i:=прочитать число, введенное с клавиатуры.
если i>0 то p:=p+1.
если i<0 то m:=m+1.
конец цикла пока.
вывести на экран('процент положительных = ', p/(p+m)).
вывести на экран('процент отрицательных = ', m/(p+m)).
Алгоритм будет верно работать, если введено хотя бы одно число, отличное от нуля. В противном случае возникнет ошибка деления на ноль. В нормальных программах подобные случаи отлавливаются и корректно обрабатываются.