Set 3 - matrici

1. Se citeste o matrice cu n linii si m coloane si elemente numare intregi. Se cere:

a)sa se determine elementele minime de pe fiecare linie

b)sa se numere elementele pare de pe perimetrul matricii

 type matrice=array[1..100,1..100]of integer;

var a:matrice;

    n,m:byte;

procedure citire;

var i,j:byte;

begin

write('n=');readln(n);

write('m=');readln(m);

for i:=1 to n do

    for j:=1 to m do

        begin

        write('a[',i,',',j,']=');

        readln(a[i,j]);

        end;

end;

procedure minim_linii;

var i,j:byte;min:integer;

begin

for i:=1 to n do

    begin

     min:=a[i,1];

     for j:=1 to m do

         if a[i,j]<min then min:=a[i,j];

     writeln('min de pe linia ',i,' =',min);

     end;

end;

procedure perimetru;

var i,j:byte;nr:integer;

begin

nr:=0;

{pt linia 1 si n}

for i:=1 to m do

    if (a[1,i] mod 2=0)or(a[n,i]mod 2=0) then nr:=nr+1;

{pt coloana 1 si m}

for i:=1 to n do

    if (a[i,1]mod 2=0)or (a[i,m]mod 2=0) then nr:=nr+1;

writeln('nr de elemente pare de pe perimetrul matricii=',nr);

end;

procedure afisarematrice;

var i,j:byte;

begin

for i:=1 to n do

    begin

     for j:=1 to m do

         write(a[i,j]:3);

     writeln;

    end;

end;

BEGIN

citire;

afisarematrice;

minim_linii;

perimetru;

end.

 

2. Se da o matrice cu n linii si n coloane. Sa se determine maximul elementelor pare de pe coloana p. 

type matrice=array[1..100,1..100]of integer;

var a:matrice; n,p:byte;

procedure citire;

 var i,j:byte;

 begin

 write('n=');readln(n);

 for i:=1 to n do

 for j:=1 to n do

 begin

     write('a[',i,',',j,']=');readln(a[i,j]);

 end;

 write('p=');readln(p);

end;

procedure  maxime;

var i,j:byte;max:integer;

begin

max:=-32767;

for i:=1 to n do

if (a[i,p]>max)and(a[i,p] mod 2=0) then max:=a[i,p];

if max=-32767 then write('exsita numai elemente impare pe coloana p')

              else writeln('max=',max);

end;

procedure afisare;

var i,j:byte;

begin

for i:=1 to n do begin

    for j:=1 to n do

        write(a[i,j],' ');

    writeln;

    end;

end;

begin

citire;

afisare;

maxime;

end.

 

3. Se da o matrice m linii si n coloane elementele matricii numere intregi sa se determine elementul minim de pe coloana c, c citita de la tasatura. 

type matrice=array[1..100,1..100]of integer;

var a:matrice; n,c,m:byte;

procedure citire;

 var i,j:byte;

 begin

 write('m=');readln(m);

 write('n=');readln(n);

 for i:=1 to m do

 for j:=1 to n do

 begin

     write('a[',i,',',j,']=');readln(a[i,j]);

 end;

 write('c=');readln(c);

end;

procedure  minim;

var i,j:byte;min:integer;

begin

min:=a[1,c];

for i:=2 to m do

    if (a[i,c]<min)then min:=a[i,c];

writeln(min);

end;

procedure afisare;

var i,j:byte;

begin

for i:=1 to m do begin

    for j:=1 to n do

        write(a[i,j],' ');

    writeln;

    end;

end;

begin

citire;

afisare;

minim;

end.

 

4. Se citeste un numar natural n. Sa se creeze o matrice care contine:

- cifrele numarului pe diagonala principala

- valoarea elementelor ramase in matrice sa contina valoarea 0. 

var n:longint;nr:byte;

    a:array[1..100,1..100] of byte;

procedure umplere_cu0;

var i,j:byte;

begin

for i:=1 to 100 do

    for j:=1 to 100 do

        a[i,j]:=0;

end;

procedure completeaza;

begin

nr:=1;

repeat

     a[nr,nr]:=n mod 10;

     n:=n div 10;

     nr:=nr+1;

until n=0;

end;

procedure afisare;

var i,j:byte;

begin

for i:=1 to nr-1 do

    begin

    for j:=1 to nr-1 do

     write(a[i,j],' ');

    writeln;

    end;

end;

begin

write('n=');readln(n);

umplere_cu0;

completeaza;

afisare;

end.

 

5. Se citeste o matrice cu m linii si n coloane cu elemente numare intregi.Sa se interschimbe doua linii l1 si l2 (date), intre ele, folosind un  subprogram. 

type matrice=array[1..100,1..100]of integer;

var a:matrice; n,m,l1,l2:byte;

procedure citire;

var i,j:byte;

begin

 write('m=');readln(m);

 write('n=');readln(n);

 for i:=1 to m do

 for j:=1 to n do

 begin

     write('a[',i,',',j,']=');readln(a[i,j]);

 end;

 write('l1=');readln(l1);

 write('l2=');readln(l2);

end;

procedure interschimb;

var i:byte; aux:integer;

begin

for i:=1 to n do

    begin

     aux:=a[l1,i];

     a[l1,i]:=a[l2,i];

     a[l2,i]:=aux;

    end;

end;

procedure afisare;

var i,j:byte;

begin

for i:=1 to m do begin

    for j:=1 to n do

        write(a[i,j],' ');

    writeln;

    end;

end;

begin

citire;

afisare;

writeln;

interschimb;

afisare;

end.

 

6. Se citesc de la tastatura elementele unei matrici patratice. Sa se afiseze:

-          suma elementelor din matrice

-          suma elementelor de pe diagonala principala 

type matrice=array[1..100,1..100]of integer;

var a:matrice; n,m,l:byte;

procedure citire;

var i,j:byte;

begin

 write('n=');readln(n);

 for i:=1 to n do

 for j:=1 to n do

 begin

     write('a[',i,',',j,']=');readln(a[i,j]);

 end;

end;

procedure afisare;

var i,j:byte;

begin

for i:=1 to n do begin

    for j:=1 to n do

        write(a[i,j],' ');

    writeln;

    end;

end;

procedure sallelemente;

var i,j:byte;s:real;

begin

s:=0;

for i:=1 to n do

    for j:=1 to n do

        s:=s+a[i,j];

writeln('suma elementelor din matrice',s:5:2);

end;

procedure selementedp;

var i,j:byte;s:real;

begin

s:=0;

for i:=1 to n do

        s:=s+a[i,i];

writeln('suma elementelor de pe diagonala principala',s:5:2);

end;

begin

citire;

afisare;

sallelemente;

selementedp

end.

 

7. Se introduce de la tastartura o matrice cu m linii si n coloane cu elemente numere intregi. Se cere sa se calculeze si sa se afiseze minumul de pe o linie l a matricei. 

type matrice=array[1..100,1..100]of integer;

var a:matrice; n,m,l:byte;

procedure citire;

var i,j:byte;

begin

 write('m=');readln(m);

 write('n=');readln(n);

 for i:=1 to m do

 for j:=1 to n do

 begin

     write('a[',i,',',j,']=');readln(a[i,j]);

 end;

 write('l=');readln(l);

end;

procedure minim;

var i:byte; min:integer;

begin

min:=a[l,1];

for i:=1 to n do

    if min>a[l,i] then min:=a[l,i];

writeln('min=',min);

end;

procedure afisare;

var i,j:byte;

begin

for i:=1 to m do begin

    for j:=1 to n do

        write(a[i,j],' ');

    writeln;

    end;

end;

begin

citire;

afisare;

minim;

end.

 

counter for wordpress

View My Stats