Когда читаешь подобные условия, возникает чувство, что оно плохо переведено с другого языка. Так вроде нет - в профиле указано, что язык русский и возраст 15 лет...
"Ввести натуральное число". Какое число, что оно должно обозначать? Ну хорошо, ввели некое число. Далее: "Ввести количество чисел". Количество - это значит, СКОЛЬКО чисел будет обрабатываться в программе. Допустим, 10. И теперь: "Найти произведение...". А где взять значения этих чисел? А нигде! Зато дадут "много ". Ни языка программирования, ни даже намека на то, что нужна программа. А может, программа и не нужна, а нужна блок-схема? ... И только определенный опыт подсказывает, что "Ввести натуральное число" на самом деле означает "Ввести количество чисел", а "Ввести количество чисел" на самом деле подразумевает ввести сами эти числа в указанном количестве.
var n,m,i:integer; p:longint; begin Write('Количество чисел: '); Read(n); p:=1; Writeln('Введите указанное количество целых чисел'); for i:=1 to n do begin Read(m); if m<0 then p:=p*m end; Writeln('Произведение отрицательных числе равно ',p) end.
Тестовое решение: Количество чисел: 6 Введите указанное количество целых чисел 45 -12 -2 6 0 -8 Произведение отрицательных числе равно -192
Var a:array [1..20] of integer; i,p:integer; n:real; m:longint; begin n:=0; p:=0; m:=1; write ('Массив: '); for i:=1 to 20 do begin a[i]:=random(101)-50; write (a[i],' '); end; for i:=1 to 20 do begin n:=n+a[i]; end; n:=n/20; writeln; writeln; write ('Среднее арифметическое = ',n); for i:=1 to 19 do begin if a[20]<>a[i] then p:=p+1; end; writeln; write ('Кол-во чисел отличных от последнего в массиве = ',p); for i:=1 to 20 do begin if a[i]<0 then m:=m*a[i]; end; writeln; write ('Произведение отрицательных чисел массива = ',m); end.