С помощью двух функций найти их минимальные и максимальные значения - Free Pascal

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

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

Есть несколько массивов, с помощью одной процедуры заполнить их всех, а с помощью двух функций найти их минимальные и максимальные значения. Вот мой код, но не работает не смотря на то, что я перепробовал все методы, который нашел только в книгах и интернете. Выдает ошибку см.внизу.
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.
Program6.pas(47) : Нельзя преобразовать тип array [1..5] of integer к array of integer

Решение задачи: «С помощью двух функций найти их минимальные и максимальные значения»

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.

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

  1. Объявлены константы n = 5 и m = 5, а также тип данных massiv = array[1..30] of integer.
  2. Объявлена процедура mas с параметрами var j: massiv и k: integer. В ней объявлена переменная i: integer и выполняется цикл for i := 1 to k, в котором каждому элементу j[i] присваивается случайное значение Random(50).
  3. Объявлена функция 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].
  4. Объявлена функция 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].
  5. Объявлены переменные a, b и c типа massiv.
  6. Выполняется функция mas с параметрами a, n. Значениям каждого элемента массива a присваивается случайное значение.
  7. Выполняется функция mas с параметрами b, m. Значениям каждого элемента массива b присваивается случайное значение.
  8. Выполняется функция mas с параметрами c, 30. Значениям каждого элемента массива c присваивается случайное значение.
  9. Выводится значение функции max с параметрами a, n.
  10. Выводится значение функции min с параметрами b, m.
  11. Выводится значение функции max с параметрами c, 30.
  12. Вводится значение с клавиатуры с помощью функции Readln.

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


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

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

10   голосов , оценка 3.9 из 5
Похожие ответы