Вводится последовательность из N целых чисел. Найти сумму всех отрицательных чисел.

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

Вводится последовательность из N целых чисел. Найти сумму всех отрицательных чисел.


Информатика (62 баллов) | 197 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
Отличная задачка, в одну строку.

// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('S=',ReadSeqInteger(ReadInteger('n=')).Where(k->k<0).Sum)<br>end.

Пример
n= 8
34 -12 0 16 -5 -7 2 -9
S=-33

Пояснения
ReadInteger('n=') выдает подсказ 'n=' и организует ввод целого числа, мы обозначим его условно n.
ReadSeqInteger(n) обеспечивает получение с клавиатуры последовательности n целых чисел.
Эта последовательность проходит через фильтр .While(k->k<0), который пропускает только отрицательные числа.<br>Все, что прошло через фильтр, будет просуммировано при помощи .Sum
И осталось только вывести результат при помощи Writeln('S=',тут_сумма)
Вот и все.

(150k баллов)
0 голосов

{
Переменные:
n - количество чисел;
i - переменная цикла;
x - очередное число;
sum - сумма отрицательных чисел.
}
program primer_1;
Var i,n,x,sum:integer;
Begin
Writeln('Введите длину последовательности N= ');
Readln(n);
Sum:=0;
For I:=1 to n do
Begin
Writeln('Введите ', i, '-ое число: ');
Readln(x);
if x < 0 then sum:=sum+x
end;
If sum = 0
then writeln('Отрицательных чисел нет.')
Else writeln('Сумма отрицательных чисел = ', sum);
End.

(158 баллов)