Наибольшим по модулю значением (из максимума и минимума) заменить последний элемент в массиве - PascalABC.NET

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

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

Ввести массив A(n). Найти максимум и минимум в массиве. Наибольшим по модулю значением (из максимума и минимума) заменить последний элемент в массиве. Массив вывести на печать. Подпрограммы: ввод массива, поиск максимального, поиск минимального, замена, вывод массива Я сделал прогу, но мне сказали сделать 2 подпрограммы. Я чет не понял как сделать. Помогите, пожалуйста!
Листинг программы
  1. program sem2;
  2. var
  3. a:array [1..50] of real;
  4. n,i:integer;
  5. min1,max1,x:real;
  6. PROCEDURE VVOD(var n,i:integer);
  7. begin
  8. writeln('Введите число n компонент массива');
  9. readln(n);
  10. writeln('Введите элементы массивов');
  11. for i:=1 to n do
  12. begin
  13. begin
  14. writeln('Введите элемент A[',i,'] массива');
  15. readln(A[i]);
  16. end;
  17. end;
  18. end;
  19. procedure maximum(var n,i:integer; min1,max1,x: real);
  20. begin
  21. begin
  22. min1:=A[1];
  23. for i:=1 to n do
  24. if A[i]>min1 then
  25. min1:=A[i];
  26. end;
  27. if max1<max1 then
  28. x:=min1
  29. else
  30. x:=max1;
  31. writeln(min1,' ', max1,' ', x);
  32. end;
  33. procedure zamena(var n,i:integer; x: real);
  34. begin
  35. for i:=1 to n do
  36. begin
  37. if A[i]<0 then
  38. A[i]:=x;
  39. end;
  40. end;
  41. procedure vivod(var n,i:integer);
  42. begin
  43. Writeln('Полученный массив:');
  44. begin
  45. for i:=1 to n do
  46. write(a[i]:4);
  47. writeln;
  48. end;
  49. end;
  50. BEGIN
  51. vvod(n,i);
  52. maximum(n,i,min1,max1,x);
  53. zamena(n,i,x);
  54. vivod(n,i);
  55. END.

Решение задачи: «Наибольшим по модулю значением (из максимума и минимума) заменить последний элемент в массиве»

textual
Листинг программы
  1. program sem2;
  2. type mas=array of real;
  3. procedure vvod(var a:mas;var n:integer);
  4. var i:integer;
  5. begin
  6. write('Введите число компонент  массива n=');
  7. readln(n);
  8. setlength(a,n);
  9. writeln('Введите элементы массива');
  10. for i:=0 to n-1 do
  11.  begin
  12.   write('a[',i,']=');
  13.   readln(a[i]);
  14.  end;
  15. end;
  16. procedure vivod(a:mas;n:integer;s:string);
  17. var i:integer;
  18. begin
  19. writeln(s);
  20. for i:=0 to n-1 do
  21. write(a[i]:0:2,' ');
  22. writeln;
  23. end;
  24. procedure minmax(a:mas;n:integer;var min1,max1,x:real);
  25. var i:integer;
  26. begin
  27. min1:=a[0];
  28. max1:=a[0];
  29. for i:=1 to n-1 do
  30.  begin
  31.   if a[i]<min1 then min1:=a[i];
  32.   if a[i]>max1 then max1:=a[i];
  33.  end;
  34. writeln('Минимальный элемент=',min1);
  35. writeln('Максимальный элемент=',max1);
  36. if abs(max1)>abs(min1)then
  37.  begin
  38.   x:=max1 ;
  39.   writeln('Больше по модулю маесимальный');
  40.  end
  41. else
  42.  begin
  43.   x:=min1;
  44.   writeln('Больше по модулю минимальный');
  45.  end;
  46. end;
  47. procedure zamena(var a:mas;n:integer;x:real);
  48. begin
  49. a[n-1]:=x;
  50. end;
  51. var a:mas;
  52.     n:integer;
  53.     min1,max1,x:real;
  54. begin
  55. vvod(a,n);
  56. vivod(a,n,'Исходный массив');
  57. minmax(a,n,min1,max1,x);    
  58. zamena(a,n,x);
  59. vivod(a,n,'Измененный массив');
  60. end.

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

Список элементов кода:

  1. Объявление типа массива и процедур в программе
  2. Ввод данных в массив с помощью процедуры vvod
  3. Вывод исходного массива на экран с помощью процедуры vivod
  4. Поиск минимального и максимального элемента массива с помощью процедуры minmax
  5. Замена последнего элемента массива с помощью процедуры zamena
  6. Вывод измененного массива на экран с помощью процедуры vivod

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


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

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

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

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

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

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