Характеристикой столбца прямоугольной матрицы m*n является максимальный элемент этого столбца.Составить подпрограмму для вычисления минимальной характеристики в прямоугольной матрице. Найти минимальную характеристику в матрице А(4*5) и В(4*3). Элементы матрицы брать произвольно. Задача с использованием функционального типа — Pascal(Паскаль)

Program Func_type;

uses crt;

type
  Tmatr = array [1 .. 10, 1 .. 10] of integer;
  Tmass = array [1 .. 10] of integer;
  FMax = function(a: Tmatr; m, n: integer): integer;
  FMin = function(a: Tmass; n: integer): integer;

var
  ma, na, mb, nb, i, j, min: integer;
  a, b: Tmatr;
  c: Tmass;
{$F+}

function MaxStb(a: Tmatr; m, n: integer): integer;
var
  k, max: integer;
begin
  for i := 1 to m do
  begin
    max := a[1, j];
    for k := 2 to m do
    begin
      if a[k, j] > max then
      begin
        max := a[k, j];
      end;
    end;
    MaxStb := max;
  end;
end;

function MinEl(a: Tmass; n: integer): integer;
begin
  min := a[1];
  for i := 2 to n do
  begin
    if c[i] < min then
    begin
      min := c[i];
    end;
  end;
  MinEl := min;
end;
{$F-}

procedure MinChar(a: Tmatr; m, n: integer; F1: FMax; F2: FMin);
begin
  for j := 1 to n do
  begin
    c[j] := F1(a, m, n);
  end;
  writeln('max elem v stb matr:');
  for i := 1 to n do
    write(c[i], ' ');
  writeln;
  readln;
  min := F2(c, n);
  writeln('MinChar matr=', min);
  readln;
end;

begin
  clrscr;
  write('ma=');
  readln(ma);
  write('na=');
  readln(na);
  write('mb=');
  readln(mb);
  write('nb=');
  readln(nb);
  randomize;
  writeln('matrix A:');
  for i := 1 to ma do
  begin
    for j := 1 to na do
    begin
      a[i, j] := random(20);
      write(a[i, j]:3);
    end;
    writeln;
  end;
  readln;
  MinChar(a, ma, na, MaxStb, MinEl);
  writeln('matrix B:');
  for i := 1 to mb do
  begin
    for j := 1 to nb do
    begin
      b[i, j] := random(20);
      write(b[i, j]:3);
    end;
    writeln;
  end;
  readln;
  MinChar(b, mb, nb, MaxStb, MinEl);

end.

Leave a Comment

1 + 5 =