Язык не указан, предположим что нужен кто то из популярных: Паскаль или Питон.
PascalABC.NET:
#1 (По умному)
begin
var a := Range(1, ReadInteger('N = '));
a.Sum.Println;
a.Aggregate(BigInteger.One, (p, q) -> p*q).Println;
end.
#2 "А нас учили по другому"
begin
var N := ReadInteger();
var sum:int64 := 0;
var prod:BigInteger := 1; //Для большого N произведение не влезет в int64, по этому юзаем бесконечное целое число BigInteger
for var i := 1 to N do begin
sum += i;
prod *= i;
end;
Println(sum, prod);
end.
#3 Вариант на Питоне
summ, prod = 0, 1
for i in range(1, int(input())+1):
summ += i; prod *= i
print(summ, prod)
Объяснение:
program cikli;
unit math;
var
i,n,s,p:integer;
a:array[1..20]of integer;
begin
writeln('Исходный массив: ');
for i:=1 to 20 do begin
a[i]:=RandomRange(1,20);
writeln(' Элемент ',i,' = ',a[i]);
end;
writeln('Сумму и произведения скольки первых чисел вы хотите посчитать? ');
readln(n);
s:=0;p:=1;
//цикл с параметром
For i:=1 to n do begin
s:=s+a[i];
p:=p*a[i];
end;
writeln('Цикл с параметром');
writeln('Сумма первых ',n,' чисел = ',s);
writeln('Произведения первых ',n,'чисел = ',p);
//цикл с предусловием
i:=1;p:=1;s:=0;
while i<>n do begin
s:=s+a[i];
p:=p*a[i];
i:=i+1;
end;
writeln('Цикл с предусловием');
writeln('Сумма первых ',n,' чисел = ',s);
writeln('Произведения первых ',n,'чисел = ',p);
//цикл с постусловием
i:=0;s:=0;p:=1;
repeat
i:=i+1;
s:=s+a[i];
p:=p*a[i];
until i=n;
writeln('Цикл с постусловием');
writeln('Сумма первых ',n,' чисел = ',s);
writeln('Произведения первых ',n,'чисел = ',p);
End.
const
n=5; m=6;
var
a:array [1..n,1..m] of integer;
b:array of integer;
i,j:integer;
begin
setlength(b,0); //пустой динамический массив
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(41)-20;
write(a[i,j]:4);
//
//Если выполняется условие, то
//расширяем массив b на ячейку, и
//в неё записываем значение.
if a[i,j]<0 then
begin
setlength(b,length(b)+1);
b[length(b)-1]:=a[i,j];
end;
//
end;
writeln;
end;
writeln;
//
//Вывод результата
for i:=0 to length(b)-1 do
write(b[i]:4);
end.