Найти минимальную характеристику в матрице
Категория: Delphi/Pascal
2011-12-20 23:41:14
Характеристикой столбца прямоугольной матрицы m*n является максимальный элемент этого столбца.Составить подпрограмму для вычисления минимальной характеристики в прямоугольной матрице. Найти минимальную характеристику в матрице А(4*5) и В(4*3). Элементы матрицы брать произвольно. Задача с использованием функционального типа.
code: #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.
автор: puporev
Поделиться: