Даны 4 двумерных массива A, B, C, D одинаковой длины. Разработать процедуры: 1) для ввода размеров и элементов массива; 2) для в
ычисления минимумов среди отрицательных элементов в каждом массиве. В программе вычислить максимум среди полученных минимумов. Результаты выдать на экран. НУЖЕН ПАСКАЛЬ!!!!!!!!!!!!!!!!!!!
<em>// PascalABC.NET 3.2, сборка 1417 от 28.03.2017</em> <em>// Внимание! Если программа не работает, обновите версию!</em>
type Mas=array[,] of integer; var n,m:integer;
procedure GetMas(s:string; var a:Mas); begin if n=0 then begin n:=ReadInteger('Количество строк в массиве:'); m:=ReadInteger('Количество столбцов в массиве:'); end; Writeln('Вводите элементы массива ',s); a:=ReadMatrInteger(n,m) end;
function MinMas(a:Mas):=a.ElementsByRow.Where(x->x<0).Min;
begin var a,b,c,d:Mas; n:=0; GetMas('A',a); GetMas('B',b); GetMas('C',c); GetMas('D',d); Writeln('Искомый максимум равен ', Max(MinMas(a),Max(MinMas(b),Max(MinMas(c),MinMas(d))))) end.
<u>Пример</u> Количество строк в массиве: 3 Количество столбцов в массиве: 5 Вводите элементы массива A -33 -50 34 -41 -41 -31 10 37 31 40 32 -49 -32 -27 4 Вводите элементы массива B -22 35 16 -6 37 0 11 -48 18 -20 -39 25 -43 38 -26 Вводите элементы массива C 23 38 -33 8 26 17 -8 -42 39 5 16 -1 -12 -25 -49 Вводите элементы массива D 29 31 -21 27 18 -38 49 -11 17 -49 6 48 -34 30 49 Искомый максимум равен -48
//FPC 2.6.4 //uses MATH; procedure p(); type mein = array of array of integer; function _max(a, b: integer): integer; begin if a>b then _max:=a else _max:=b; end; function inter_p(k, l: integer; var r: mein): integer; var i, j, mn: integer; begin mn:=0; setLength(r, k); for i:=0 to k-1 do begin setLength(r[i], l); for j:=0 to l-1 do begin read(r[i, j]); if (r[i, j]<mn) and (r[i, j]<0) then mn:=r[i, j]; end; end; //result:=mn; inter_p:=mn; end;
var a, b, c, d: mein; n, m, mA, mB, mC, mD: integer; begin write ('размеры A: '); readln (n, m); writeln ('Вводите элементы A: '); ma:=inter_p(n, m, a); writeln('MinA=', mA); write ('размеры B: '); readln (n, m); writeln ('Вводите элементы B: '); mb:=inter_p(n, m, b); writeln('MinB=', mB); write ('размеры C: '); readln (n, m); writeln ('Вводите элементы C: '); mc:=inter_p(n, m, c); writeln('MinC=', mC); write ('размеры D: '); readln (n, m); writeln ('Вводите элементы D: '); md:=inter_p(n, m, d); writeln('MinD=', mD); write ('Max из Min: ', _max(_max(ma, mb), _max(mc, md))); end;