Найти произведение только тех чисел, которые больше заданного числа m - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Составить программу на Паскале, содержащую минимум 4 подпрограммы. Дан одномерный массив, выполнить следующие действия: -вычислить произведение отрицательных элементов P1 произведение положительных элементов P2, сравнить модуль P2 с модулем P1, указать какое из произведений по модулю больше. -найти произведение только тех чисел,которые больше заданного числа m. -подсчитать,сколько в нем положительных элементов. -поменять местами соседние элементы, стоящие на четырех местах,с элементами, стоящими на нечетных местах.

Решение задачи: «Найти произведение только тех чисел, которые больше заданного числа m»

textual
Листинг программы
  1. program pr;
  2.  
  3. type
  4.   arr = array [1..100] of integer;
  5.  
  6. var
  7.   i, n, h, c: integer;
  8.   a: arr;
  9.   p1, p2: integer;
  10.  
  11. procedure fis(var x: arr; var av, avv: integer);
  12. var
  13.   j, k: integer;
  14. begin
  15.   av := 1;
  16.   avv := 1;
  17.   for j := 1 to n do
  18.     if a[j] > 0 then
  19.     begin
  20.       av := av * a[j];
  21.     end;
  22.   for k := 1 to n do
  23.   begin
  24.     if a[k] < 0 then
  25.       avv := avv * a[k];
  26.   end;
  27.   writeln;
  28.   if abs(p1) > abs(p2) then
  29.     writeln('Произведение положительных элементов по модулю больше')
  30.   else writeln('Произведение отрицательных элементов по модулю больше');
  31. end;
  32.  
  33. procedure secon(var x: arr; var hh: integer);
  34. var
  35.   m, j: integer;
  36. begin
  37.   hh := 1;
  38.   writeln('Введите число m');
  39.   readln(m);
  40.   for j := 1 to n do
  41.     if a[j] > m then
  42.       hh := hh * a[j];
  43. end;
  44.  
  45. procedure three(var x: arr; var cout: integer);
  46. var
  47.   j: integer;
  48. begin
  49.   cout := 0;
  50.   for j := 1 to n do
  51.     if a[j] > 0 then
  52.     begin
  53.       cout := cout + 1;
  54.     end;
  55. end;
  56.  
  57. procedure four(var x: arr);
  58. var
  59.   j, t: integer;
  60. begin
  61.   j := 0;
  62.   while j < n - 1 do
  63.   begin
  64.     inc(j, 1);
  65.     t := A[j];
  66.     A[j] := A[j + 1];
  67.     A[j + 1] := t;
  68.     inc(j, 1);
  69.   end;
  70.   for j := 1 to n do
  71.     write(A[j]:4);
  72.  
  73. end;
  74.  
  75. begin
  76.   writeln('Введите размер массива');
  77.   readln(n);
  78.   for i := 1 to n do
  79.   begin
  80.     a[i] := -10 + random(21);
  81.     write(a[i]:3);
  82.   end;
  83.   fis(a, p1, p2);
  84.   writeln('Произведение положительных элементов: ', p1);
  85.   writeln('Произведение отрицательных элементов: ', p2);
  86.   secon(a, h);
  87.   writeln('Произведение элементов больше числа m: ', h);
  88.   three(a, c);
  89.   writeln('Количество положительных элементов: ', c);
  90.   four(a);
  91. end.

Объяснение кода листинга программы

Список действий в коде:

  1. Ввод размера массива.
  2. Инициализация массива случайными числами.
  3. Вычисление произведения положительных и отрицательных элементов массива.
  4. Ввод числа m.
  5. Вычисление произведения элементов массива, больших числа m.
  6. Вывод количества положительных элементов в массиве.
  7. Реверсирование элементов массива.
  8. Вывод элементов массива в обратном порядке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы