Вычислить значение выражения - Pascal ABC (14320)
Формулировка задачи:
Написать программу решения следующей задачи: Вычислить и где и – максимальные элементы массивов X(20), Y(30); и – минимальные элементы этих же массивов (вычисление максимального и минимально элементов массива осуществлять в одной подпрограмме).
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
const nx=20;ny=30; type mas=array[1..ny] of integer; var x,y:mas; z1,z2:real; procedure vv_mas(var a:mas;n:integer;s:string); var i:integer; begin writeln(s); for i:=1 to n do begin a[i]:=random(51); write(a[i],' ') end; writeln end; function minmax(a:mas;n:integer;f:boolean):integer; var i:integer;rez:integer; begin rez:=a[1]; for i:=2 to n do if (a[i]>rez)=f then rez:=a[i]; minmax:=rez end; begin vv_mas(x,nx,'массив X:'); vv_mas(y,ny,'массив Y:'); z1:=(minmax(x,nx,true)+minmax(y,ny,false))/2;writeln('Z1 = ',z1:0:1); z2:=(minmax(x,nx,false)+minmax(y,ny,false))/2;writeln('Z2 = ',z2:0:1); end.
Объяснение кода листинга программы
- const nx=20;ny=30; - объявляются константы nx и ny, которые равны 20 и 30 соответственно
- type mas=array[1..ny] of integer; - объявляется тип данных mas, который представляет собой массив целых чисел от 1 до ny
- var x,y:mas; - объявляются переменные x и y, которые представляют собой массивы
- var z1,z2:real; - объявляются переменные z1 и z2, которые представляют собой вещественные числа
- procedure vv_mas(var a:mas;n:integer;s:string); - объявляется процедура vv_mas, которая принимает три аргумента: a (массив), n (количество элементов) и s (строка)
- var i:integer; - объявляется переменная i
- begin writeln(s); for i:=1 to n do begin a[i]:=random(51); write(a[i],' ') end; writeln end; - выполняется цикл for, который заполняет массив a случайными числами от 1 до 51
- function minmax(a:mas;n:integer;f:boolean):integer; - объявляется функция minmax, которая принимает три аргумента: a (массив), n (количество элементов) и f (булево значение, указывающее, какой элемент считать минимальным)
- var i:integer; rez:integer; - объявляются переменные i и rez
- begin rez:=a[1]; for i:=2 to n do if (a[i]>rez)=f then rez:=a[i]; minmax:=rez end; - выполняется цикл for, который ищет минимальный элемент в массиве в соответствии с указанным булевым значением f
- begin vv_mas(x,nx,'массив X:'); - выполняется вызов процедуры vv_mas для массива x с аргументами nx и 'массив X:' vv_mas(y,ny,'массив Y:'); - выполняется вызов процедуры vv_mas для массива y с аргументами ny и 'массив Y:' z1:=(minmax(x,nx,true)+minmax(y,ny,false))/2;writeln('Z1 = ',z1:0:1); - выполняется вычисление среднего значения двух минимальных элементов массивов x и y и вывод результата на экран
- z2:=(minmax(x,nx,false)+minmax(y,ny,false))/2;writeln('Z2 = ',z2:0:1); - выполняется вычисление среднего значения двух максимальных элементов массивов x и y и вывод результата на экран
- end. - завершается блок кода
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д