matrici 2

3. Se citeşte o matrice pătrată de dimensiune nxn şi elemente numere întregi. Se cere:
a) Să se afişeze numerele prime de pe diagonala principală;
b) Să se formeze un vector cu elementele matricei parcurse în ordine pe coloane.

var a:array[1..50,1..50] of integer;

n,m: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;

function prim(n:integer):boolean;

var i:byte;

begin

prim:=true;

if(n<=1)then prim:=false;

for i:=2 to n div 2 do

    if n mod i=0 then prim:=false;

end;

procedure diagonala_p;

var i:byte;

begin

for i:=1 to n do

    if(prim(a[i,i])) then write(a[i,i],' ');

writeln;

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 parcurgere;

var i,j,k:byte;

b:array[1..900]of integer;

begin

k:=0;

for j:=1 to n do

    for i:=1 to n do

        begin

        k:=k+1;

        b[k]:=a[i,j];

        end;

for i:=1 to k do write(b[i],' ');

end;

begin

citire;

afisare;

writeln('elementele prime de pe diagonala principala');

diagonala_p;

writeln('parcurgerea');

parcurgere;

end.

5. Se citeşte o matrice cu n linii şi m coloane. Se cere:
a) Să se formeze un vector în care se vor reţine elementele maxime de pe fiecare coloană a matricei;
b) Să se ordoneze vectorul format la punctul a.

var a:array[1..50,1..50] of integer;

b:array[1..50]of integer;

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 afisare;

var i,j:byte;

begin

for i:=1 to n do

begin

     for j:=1 to m do

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

     writeln;

end;

end;

 

procedure maxim_coloane;

var max:integer;

i,j:byte;

begin

for j:=1 to m do

begin

     max:=a[1,j];

     for i:=1 to n do

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

     b[j]:=max;

end;

end;

procedure afisare_vector;

var i:byte;

begin

for i:=1 to m do write(b[i],' ');

writeln;

end;

procedure sortare;

var aux:integer;i,j:byte;

begin

for i:=1 to m-1 do

    for j:=i+1 to m do

        if(b[i]>b[j]) then begin

                      aux:=b[i];

                      b[i]:=b[j];

                      b[j]:=aux;

                      end;

end;

 

begin

citire;

afisare;

writeln('elementele maxime de pe fiecare coloana');

maxim_coloane;

afisare_vector;

writeln('sortare');

sortare; afisare_vector;

end.

19. Se dă o matrice x, cu n linii şi n coloane, cu elemente întregi.Să se determine numărul elementelor din matrice care sunt < 24 şi se găsesc deasupra diagonalei principale pe linii pare.

var a:array[1..30,1..30]of integer;

n: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;

writeln;

end;

procedure afisare_elemente_deasupra_dp;

var i,j:byte;

begin

for i:=1 to n-1 do

begin

     for j:=i+1 to n do

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

         writeln;

         end;

end;

procedure elemente;

var i,j,c:byte;

begin

c:=0;

for i:=1 to n-1 do

    if i mod 2=0 then

     for j:=i+1 to n do

         if a[i,j]<24 then c:=c+1;

writeln('c=',c);

end;

begin

citire;

writeln('matricea');

afisare;

writeln('elementele de deasupra diagonalei principale');

afisare_elemente_deasupra_dp;

elemente;

end.

42. Se introduce de la tastatură o matrice pătrată de ordin n cu elemente numere întregi. Se cere să se calculeze şi afişeze:
a) suma elementelor de deasupra diagonalei principale;
b) suma elementelor de sub diagonala secundară.

var a:array[1..30,1..30]of integer;

n: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 deasupra_dp;

var i,j:byte;s:integer;

begin

s:=0;

for i:=1 to n-1 do

begin

     for j:=i+1 to n do

        begin

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

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

        end;

     writeln;

end;

writeln('suma elementelor de deasura diagonalei principale=',s);

end;

procedure sub_ds;

var i,j:byte;s:integer;

begin

s:=0;

for i:=2 to n do

    begin

    for j:=n-i+2 to n do

        begin

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

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

        end;

    writeln;

end;

writeln('suma elementelor de sub diagonala secundara=',s);

end;

begin

citire;

writeln('matricea');

afisare;

writeln('elementele de deasupra diagonalei principale');

deasupra_dp;

writeln('elementele de sub diagonala secundara');

sub_ds;

end.

 

counter for wordpress

View My Stats