{ A feladat: Adott A(N,N) matrix. Adjuk meg a matrix azon oszlopat, melyben a melleklatlo alatti elemek osszege a legnagyobb illetve a legkisebb. Adjuk meg ezeket az ertekeket is. Beadasi hatarido: 2002. 05. 24. } program matrix_akarmi; { uses crt; } const n=3; {n*n-es a matrix} type Tomb=array[1..255] of integer; {segedvaltozo} Tmatrix=array[1..n,1..n] of shortint; {a matrix kinezete} var mx:Tmatrix; {a matrix} minind,maxind,min,max:integer; {hol van, milyen ertekkel} t:tomb; {segedvaltozo} procedure mellekatlo_alatt_szamol(oszlop:integer; mx:Tmatrix; n:integer; var osszeg:integer); { a mellekatlo alattiak osszege, egy oszlop eseteben } var i:integer; begin osszeg:=0; for i:=n downto (n-oszlop+1) do begin osszeg:=osszeg+mx[i,oszlop]; end; end; procedure kiszamol_kigyujt(mx:Tmatrix; n:integer; var hova:Tomb); { minden oszlopnal kiszamolja a mellekatlo alattiak osszeget } var j:integer; begin for j:=1 to n do begin mellekatlo_alatt_szamol(j,mx,n,hova[j]); end; end; procedure minmaxkiv(t:tomb; n:integer; var min, max:integer; var minind, maxind:integer); { az osszegek kozol kivalasztja: a legkisebb helye't es erteket; a legnagyobb helye't es erteket } var i,svmin,svmax,svminind,svmaxind:integer; begin svmin:=maxint; svmax:=(-1)*(maxint); for i:=1 to n do begin if t[i]svmax then begin svmax:=t[i]; svmaxind:=i; end; {elozo sor: ha amit talalt az nagyobb, mint az eddigi maximum, akkor csereli a "maximumot" a mostanira} end; end; BEGIN {foprogram} {a beolvasas hianyzik: annak a kimenete kell, hogy legyen az "mx:tmatrix"} kiszamol_kigyujt(mx,n,t); {melyik sornal min=?, max=?} minmaxkiv(t,n,min,max,minind,maxind); {a sok "min" es "max" kozul kivalasztja a _tenylegesen_ legkisebbet ill. legnagyobbat} writeln('Min: ',min); writeln('Max: ',max); writeln('Hol van a min /melyik sorban/: ',minind); writeln('Hol van a max /melyik sorban/: ',maxind); END.