Предмет: Информатика, автор: lakOR555

В массиве из n элементов найти сумму положительных и произведение отрицательных элементов.


Karakulina: Какой язык программирования?
lakOR555: паскаль АВС.NET
Karakulina: проходили динамические массивы?
lakOR555: версия и сборка нужна?
lakOR555: нет, не проходили
Karakulina: Сейчас сделаю, версия не важна.
LRSM: Какой смысл в таком задании создавать статический..?

Ответы

Автор ответа: LRSM
0

Ответ:

  • begin
  • var a := ReadArrInteger(ReadInteger('N:'));
  • Println('Сумма положительных:', a.Sum(x->x>0?x:0));
  • Println('Произведение отрицательных:', a.Product(x->x<0?x:1));
  • end.

Пример работы:

Приложения:

lakOR555: мы не проходили ReadArrInteger, и вместо print используем write и read
Karakulina: Лично я не так хорошо знаю паскаль, но мне нравятся такие краткие и лаконичные решения, однако в учебных заведениях требуют делать всё примитивнее.
LRSM: "однако в учебных заведениях требуют делать всё примитивнее" -- во многих не требуют и во многих запрещают.
Karakulina: Поэтому оптимальным решением из этой ситуации я вижу лишь саморазвитие, если тема интересна. Потому что иначе есть риск остаться ни с чем.
Автор ответа: Karakulina
0

===PascalABC.Net===

var

 arr: array [1..100] of integer;

 n, i, sum, multiply: integer;

begin

 WriteLn('Программа находит сумму положительных и произведение отрицательных чисел в массиве.');

 Write('Введите размерность массива: ');

 ReadLn(n);

 multiply := 1;

 for i := 1 to n do

 begin

   Write('Введите ', i, ' элемент массива: ');

   ReadLn(arr[i]);

 end;

 for i := 1 to n do

 begin

   if arr[i] >= 0 then

     sum += arr[i]

   else

     multiply *= arr[i];

 end;

 WriteLn('Сумма положительных чисел: ', sum);

 Write('Произведение отрицательных чисел: ', multiply);

end.

Приложения:

LRSM: А += и *= проходили?))
Похожие вопросы