Проверьте пожалуйста программу - Pascal ABC

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

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

Помогите найти ошибку В одномерном массиве, состоящем из n вещественных элементов, вычислить 1) сумму положительных элементов массива 2) произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
Листинг программы
  1. program Labaaaa3;
  2. //uses crt;
  3. const
  4. n = 10;
  5. var
  6. a: array[1..n] of integer;
  7. i, x, imax, imin: integer;
  8. max, min, b, Rt: integer;
  9. s: integer;
  10. mult: integer;
  11. tempmin, tempmax: integer;
  12. begin
  13. write('Введите массив: ');
  14. for i := 1 to n do
  15. read(a[i]);
  16. imax := 1; {индекс max}
  17. imin := 1; {индекс max}
  18. for i := 1 to n do
  19. begin
  20. if a[imax] < a[i] then imax := i;
  21. if a[imin] > a[i] then imin := i;
  22. end;
  23. if imin > imax then
  24. begin
  25. imin := imin + imax;
  26. imax := imin - imax;
  27. imin := imin - imax;
  28. end;
  29. x := imax div 2;
  30. for i := imin + 1 to x do
  31. begin
  32. a[i] := a[i] + a[n + imin - i];
  33. a[n + imin - i] := a[i] - a[n + imin - i];
  34. a[i] := a[i] - a[n + imin - i];
  35. end;
  36. for i := 1 to n do
  37. write(a[i], ' ');
  38. s := 0;
  39. for i := 1 to n do
  40. if a[i] > 0 then
  41. begin
  42. s := s + a[i];
  43. end;
  44. //---
  45. for i := tempmax to n do
  46. tempmin := i;
  47. mult := i;
  48. Rt := i;
  49. if (a[i] < max) then
  50. tempmax := i;
  51. if (a[i] > min) then
  52. tempmin := i;
  53. //+
  54. if (tempmin < tempmax) then
  55. begin
  56. b := tempmin;
  57. tempmin := tempmax;
  58. tempmax := b;
  59. end;
  60. //--
  61. begin
  62. Rt := Rt * a[i];
  63. tempmax := tempmax - 1;
  64. tempmin := tempmin + 1;
  65. end;
  66. Writeln('Произведение между максимальным и минимальным=', Rt);
  67. Writeln('Сумма положительных элементов =', s:5);
  68. Readln;
  69. end.

Решение задачи: «Проверьте пожалуйста программу»

textual
Листинг программы
  1. program Labaaaa3;
  2. //uses crt;
  3. const
  4.   n = 10;
  5.  
  6. var
  7.   a: array[1..n] of single;
  8.   i, x, imax, imin: integer;
  9.   max, min, b, Rt: single;
  10.   s: single;
  11.   mult: integer;
  12.   tempmin, tempmax: integer;
  13.  
  14. begin
  15.   write('Введите массив: ');
  16.   for i := 1 to n do
  17.     read(a[i]);
  18.   imax := 1; {индекс max}
  19.   imin := 1; {индекс max}
  20.   for i := 1 to n do
  21.   begin
  22.     if abs(a[imax]) < abs(a[i]) then imax := i;
  23.     if abs(a[imin]) > abs(a[i]) then imin := i;
  24.   end;
  25.   if imax < imin
  26.     then swap(imax, imin);
  27.   s := 0;
  28.   for i := 1 to n do
  29.     if a[i] > 0 then
  30.     begin
  31.       s := s + a[i];
  32.     end;
  33.   Rt := 1;
  34.   //---
  35.   for i := imin + 1 to imax - 1 do
  36.     Rt := Rt * a[i];
  37.   Writeln('Произведение между максимальным и минимальным=', Rt);
  38.   Writeln('Сумма положительных элементов =', s:5);
  39. end.

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

  1. В программе объявлены переменные: a (массив), i, x, imax, imin, max, min, b, Rt (single), s (single), mult (integer), tempmin (integer), tempmax (integer).
  2. В цикле for считывается массив из стандартного ввода.
  3. Переменные imax и imin инициализируются значением 1.
  4. Затем происходит сравнение абсолютных значений элементов массива и обновление значений переменных imax и imin.
  5. Если imax меньше imin, то происходит обмен их значениями.
  6. Переменная s инициализируется значением 0.
  7. В цикле for происходит суммирование положительных элементов массива и сохранение суммы в переменной s.
  8. Переменная Rt инициализируется значением 1.
  9. В цикле for происходит умножение всех элементов массива, начиная с индекса imin+1 и заканчивая индексом imax-1, и сохранение произведения в переменной Rt.
  10. Выводится сообщение с произведением между максимальным и минимальным элементами массива и с суммой положительных элементов.

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


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

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

11   голосов , оценка 3.818 из 5

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

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

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