С помощью двух функций найти их минимальные и максимальные значения - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д