С помощью двух функций найти их минимальные и максимальные значения - Free Pascal
Формулировка задачи:
Есть несколько массивов, с помощью одной процедуры заполнить их всех, а с помощью двух функций найти их минимальные и максимальные значения. Вот мой код, но не работает не смотря на то, что я перепробовал все методы, который нашел только в книгах и интернете. Выдает ошибку см.внизу.
Program6.pas(47) : Нельзя преобразовать тип array [1..5] of integer к array of integer
program Program6;
const
n = 5;
m = 5;
var
a: array[1..n]of integer;
b: array[1..m]of integer;
c: array[1..30]of integer;
t: integer;
procedure mas(j: array of integer; k: integer);
var
i: integer;
begin
Randomize;
for i := 1 to k do
j[i] := Random(50)
end;
function min(j: array of integer; k: integer): integer;
var
i, m: integer;
begin
m := 1;
for i := 1 to k do
begin
if j[i] < j[m] then m := i
end;
result := j[m]
end;
function max(j: array of integer; k: integer): integer;
var
i, m: integer;
begin
m := 1;
for i := 1 to k do
begin
if j[i] > j[m] then m := i
end;
result := j[m]
end;
begin
mas(a, n);
mas(b, m);
mas(c, 30);
writeln(max(a, n));
writeln(min(b, m));
writeln(max(c, 30));
Readln
end.Решение задачи: «С помощью двух функций найти их минимальные и максимальные значения»
textual
Листинг программы
program Program6; const n = 5; m = 5; type massiv=array[1..30]of integer; procedure mas(var j: massiv; k: integer); var i: integer; begin for i := 1 to k do j[i] := Random(50) end; function min(j:massiv; k: integer): integer; var i, m: integer; begin m := 1; for i := 1 to k do if j[i] < j[m] then m := i; result := j[m] end; function max(j:massiv; k: integer): integer; var i, m: integer; begin m := 1; for i := 1 to k do if j[i] > j[m] then m := i; result := j[m] end; var a,b,c:massiv; begin randomize; mas(a, n); mas(b, m); mas(c, 30); writeln(max(a, n)); writeln(min(b, m)); writeln(max(c, 30)); Readln end.
Объяснение кода листинга программы
- Объявлены константы n = 5 и m = 5, а также тип данных massiv = array[1..30] of integer.
- Объявлена процедура mas с параметрами var j: massiv и k: integer. В ней объявлена переменная i: integer и выполняется цикл for i := 1 to k, в котором каждому элементу j[i] присваивается случайное значение Random(50).
- Объявлена функция min с параметрами j:massiv и k: integer. В ней объявлены переменные i: integer и m: integer. Выполняется цикл for i := 1 to k, в котором сравниваются значения j[i] и j[m]. Если j[i] меньше j[m], то m присваивается значение i. После выполнения цикла, результатом функции становится значение j[m].
- Объявлена функция max с параметрами j:massiv и k: integer. В ней объявлены переменные i: integer и m: integer. Выполняется цикл for i := 1 to k, в котором сравниваются значения j[i] и j[m]. Если j[i] больше j[m], то m присваивается значение i. После выполнения цикла, результатом функции становится значение j[m].
- Объявлены переменные a, b и c типа massiv.
- Выполняется функция mas с параметрами a, n. Значениям каждого элемента массива a присваивается случайное значение.
- Выполняется функция mas с параметрами b, m. Значениям каждого элемента массива b присваивается случайное значение.
- Выполняется функция mas с параметрами c, 30. Значениям каждого элемента массива c присваивается случайное значение.
- Выводится значение функции max с параметрами a, n.
- Выводится значение функции min с параметрами b, m.
- Выводится значение функции max с параметрами c, 30.
- Вводится значение с клавиатуры с помощью функции Readln.