program pratybos3_15; const T = 50; type Mas = array [1..5, 1..8] of integer; //Matricos aprasymas var i, k :integer; //pagalbiniai kintemieji n2 :integer; //Maziausias matr elementui saugoti skirtas kintamasis s :integer; //eilutes turincios min matr elemento nr saugoti skirtas kintamasis x :integer; //Didziausiam matr elementui saugoti skirtas kintamasis d :integer; //eilutes turincios max matr elemento nr saugoti skirtas kintamasis matrix:Mas; //Matricos kintamasis //------------------------------------------------------------------------------ //procedura suskurs tektsiniame faile matrica 5x8 ir atsistiktiniu skaiciu procedure kuria(var matrix:Mas); var i,k:integer; begin Randomize; //ijungiam randomize for i:= 1 to 5 do begin for k:= 1 to 8 do begin matrix[i][k]:= random(T); //generuojami matricos elementai end; end; end; //------------------------------------------------------------------------------ //procedura irasys matrica i faila 'matrica.dat' procedure raso (matrix:Mas); var F:text; begin Assign(F, 'matrica.dat'); //failo priskyrimas ReWrite(F); //istrinamas failas for i:= 1 to 5 do begin for k:= 1 to 8 do begin Write(F,matrix[i][k]:5); //i faila irasomi matricos elementai if k = 8 then WriteLn(F); //nauja eilute end; end; Close(f); //uzdaromas failas end; //------------------------------------------------------------------------------ //procedura suras min matricos elementa ir eilute kurioje jis yra procedure min (var s, n2:integer); var F: text; n, i, k :integer; begin Assign(F, 'matrica.dat'); reset(F); //failas paruosiamas nuskaitymui n2:=maxint; //priskiriama max sveikassis skaicius - pradine reiksme read(F,n); //nuskaitomas pirmasis matricos elementas s := 0; //pradine reiksme for i:= 1 to 5 do begin for k:= 1 to 8 do begin //------------------------------// if nx then begin //ieskoma max elemento // x:=n; d:=k; end; //ir isimenamas eilutes nr // Read(F,n); //elemento nuskaitymas is failo // end; //------------------------------// end; Close (F); //failo uzdarymas end; //------------------------------------------------------------------------------ //procedura apskaiciuos visu matricos elementu suma isskyrus tos eilutes //kurioje yra max matricos elementas procedure suma(d:integer); var i, k,g, n :integer; F :text; sum :longint; begin Assign(F, 'matrica.dat'); Reset (F); sum := 0; n := 0; //pradine reiksme for i:= 1 to 5 do begin //tikrina ar tai ne ta eilute kur yra max elementas begin for k:= 1 to 8 do begin if (k <> d) then begin Read (F,n); sum := sum + n; //kaupiama suma end else begin sum := sum -n; read (F, n); for g:= d+1 to 8 do read(F, n); sum := sum + n; end; end; end; end; WriteLn ('Matricos elementu suma ismetus max elemento eilute = ', sum :10); Close(f); end; //------------------------------------------------------------------------------ begin kuria(matrix); //kreipiasi i procedura kuri sukurs matrica raso(matrix); //kreipiasi i procedura kuri irasys matrica i faila WriteLn('Pradiniai duomenys'); for i:= 1 to 5 do begin //atspauzdina pradiniuos duomenis for k:= 1 to 8 do begin Write(matrix[i][k]:5); if k = 8 then WriteLn; end; end; WriteLn; min(s, n2); //kreipimasis i procedura kuri suras min elementa ir jo eilutes nr WriteLn('Maziausias matricos elementas = ', n2:5); WriteLn('Jis yra ', s:5, ' eiluteje'); aritvid(s); //eilutes su min elementu aritmetinio vidurkio skaiciavimo proceduros iskvietimas max(x,d); //kreipimasis i procedura kuri suras max elementa ir jo eilutes nr WriteLn('Didziausias matricos elementas = ', x:5); WriteLn('Jis yra ', d:5, ' eiluteje'); suma(d); //kreipimasis i procedura kuri apskaiciuos visu matricos elementu suma Readln; //isskyrus eilute su max elementu end.