Наибольшим по модулю значением (из максимума и минимума) заменить последний элемент в массиве - PascalABC.NET
Формулировка задачи:
Ввести массив A(n). Найти максимум и минимум в массиве. Наибольшим по модулю
значением (из максимума и минимума) заменить последний элемент в массиве. Массив
вывести на печать. Подпрограммы: ввод массива, поиск максимального, поиск
минимального, замена, вывод массива
Я сделал прогу, но мне сказали сделать 2 подпрограммы. Я чет не понял как сделать. Помогите, пожалуйста!
Листинг программы
- program sem2;
- var
- a:array [1..50] of real;
- n,i:integer;
- min1,max1,x:real;
- PROCEDURE VVOD(var n,i:integer);
- begin
- writeln('Введите число n компонент массива');
- readln(n);
- writeln('Введите элементы массивов');
- for i:=1 to n do
- begin
- begin
- writeln('Введите элемент A[',i,'] массива');
- readln(A[i]);
- end;
- end;
- end;
- procedure maximum(var n,i:integer; min1,max1,x: real);
- begin
- begin
- min1:=A[1];
- for i:=1 to n do
- if A[i]>min1 then
- min1:=A[i];
- end;
- if max1<max1 then
- x:=min1
- else
- x:=max1;
- writeln(min1,' ', max1,' ', x);
- end;
- procedure zamena(var n,i:integer; x: real);
- begin
- for i:=1 to n do
- begin
- if A[i]<0 then
- A[i]:=x;
- end;
- end;
- procedure vivod(var n,i:integer);
- begin
- Writeln('Полученный массив:');
- begin
- for i:=1 to n do
- write(a[i]:4);
- writeln;
- end;
- end;
- BEGIN
- vvod(n,i);
- maximum(n,i,min1,max1,x);
- zamena(n,i,x);
- vivod(n,i);
- END.
Решение задачи: «Наибольшим по модулю значением (из максимума и минимума) заменить последний элемент в массиве»
textual
Листинг программы
- program sem2;
- type mas=array of real;
- procedure vvod(var a:mas;var n:integer);
- var i:integer;
- begin
- write('Введите число компонент массива n=');
- readln(n);
- setlength(a,n);
- writeln('Введите элементы массива');
- for i:=0 to n-1 do
- begin
- write('a[',i,']=');
- readln(a[i]);
- end;
- end;
- procedure vivod(a:mas;n:integer;s:string);
- var i:integer;
- begin
- writeln(s);
- for i:=0 to n-1 do
- write(a[i]:0:2,' ');
- writeln;
- end;
- procedure minmax(a:mas;n:integer;var min1,max1,x:real);
- var i:integer;
- begin
- min1:=a[0];
- max1:=a[0];
- for i:=1 to n-1 do
- begin
- if a[i]<min1 then min1:=a[i];
- if a[i]>max1 then max1:=a[i];
- end;
- writeln('Минимальный элемент=',min1);
- writeln('Максимальный элемент=',max1);
- if abs(max1)>abs(min1)then
- begin
- x:=max1 ;
- writeln('Больше по модулю маесимальный');
- end
- else
- begin
- x:=min1;
- writeln('Больше по модулю минимальный');
- end;
- end;
- procedure zamena(var a:mas;n:integer;x:real);
- begin
- a[n-1]:=x;
- end;
- var a:mas;
- n:integer;
- min1,max1,x:real;
- begin
- vvod(a,n);
- vivod(a,n,'Исходный массив');
- minmax(a,n,min1,max1,x);
- zamena(a,n,x);
- vivod(a,n,'Измененный массив');
- end.
Объяснение кода листинга программы
Список элементов кода:
- Объявление типа массива и процедур в программе
- Ввод данных в массив с помощью процедуры vvod
- Вывод исходного массива на экран с помощью процедуры vivod
- Поиск минимального и максимального элемента массива с помощью процедуры minmax
- Замена последнего элемента массива с помощью процедуры zamena
- Вывод измененного массива на экран с помощью процедуры vivod
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д