You are on page 1of 4

Matrice

Thursday, December 8, 2022 2:16 PM

zad24.pas do zad28.pas

*Matrice možemo da definišemo pomoću sledeće sintakse:


var matr:array of array of integer;

*Možemo definisati matricu koa novu promjenjivu zbog lakšeg pisanja:


type matrica=array of array of integer;
ako smo već definisali niz kao svoj tip, možemo ovo zapisati još kraće:
type niz = array of integer;
type matrica=array of niz;

1. Zadatak

//matrice
program zad24;
type niz = array of integer;//unosenje novog tipa za niz
type matrica=array of array of integer; //unosenje novog tipa za matricu
var matr: array[0..5, 0..7] of Integer;
var matr1:matrica;
var n, m, i, j:Integer;
procedure stampaMatrice(n,m:Integer; matr: matrica);
var i, j:Integer;
begin
for i:= 0 to n-1 do
begin
for j:= 0 to m-1 do
write(matr1[i, j], ' ');
writeln();
end;
end;
procedure zbirPokolonama(n, m:Integer;matr:matrica);
var arr:niz;
var i, j:Integer;
begin
setlength(arr, m);
for i:=0 to m-1 do
arr[i] :=0; //na pocetku suma elemenata svake kolone je 0
for j := 0 to m-1 do
begin
for i := 0 to n-1 do
arr[j] := arr[j] + matr[i, j];
end;
for i:=0 to m-1 do
write(arr[i], ' ');
end;
begin
readln(n, m);
setlength(matr1, n, m);
for i:= 0 to n-1 do
for j:=0 to m-1 do
matr1[i, j] := i * j;

for i:= 0 to n-1 do

New Section 1 Page 1


for i:= 0 to n-1 do
begin
for j:= 0 to m-1 do
write(matr1[i, j], ' ');
writeln();
end;

stampaMatrice(n, m, matr1);
writeln('------------------');
zbirPoKolonama(n, m, matr1);
end.

2. Zadatak

//zad 2 iz druge grupe zad


program zad25;
type niz = array of integer;
type matrica = array of niz;
var matr:matrica;
var i, j, n , m:integer;
function odbanaKraljevstva(n, m:Integer; matr:matrica): integer;
var i:integer;
begin
for i := 0 to n-1 do
odbanaKraljevstva := odbanaKraljevstva + matr[i, 0]; //dodamo prvu
kolonu
for i := 0 to m-1 do
odbanaKraljevstva := odbanaKraljevstva + matr[0, i]; //dodamo prvu
vrstu
for i := 1 to n-1 do
odbanaKraljevstva := odbanaKraljevstva + matr[i, m-1]; //poslednja
vrsta
for i := 1 to m-2 do
odbanaKraljevstva := odbanaKraljevstva +matr [n-1, i];
end;
begin
readln(n);
setlength(matr, n, n);
for i:=0 to n-1 do
for j:= 0 to n-1 do
read(matr[i, j]);

writeln(odbanaKraljevstva(n, n,matr));
end.

3. Zadatak

//zad 4 iz druge grupe zad


program zad26;
type niz = array of integer;
type matrica = array of niz;
var matr:matrica;
var i, j, n , m:integer;
function simetricna(n, m:Integer; matr:matrica): boolean;
var i, j:integer;
begin
simetricna := true;
for i:= 0 to n-1 do

New Section 1 Page 2


for i:= 0 to n-1 do
for j:=i+1 to n-1 do
if matr[i, j] <> matr[j, i] then
simetricna := false;
end;
begin
readln(n);
setlength(matr, n, n);
for i:=0 to n-1 do
for j:= 0 to n-1 do
read(matr[i, j]);
writeln(simetricna(n, n, matr));
end.

4. Zadatak

//zad 5 iz druge grupe zad


program zad27;
type niz = array of integer;
type matrica = array of niz;
var matr:matrica;
var n, m:integer;
procedure stampaMatrice(n,m:Integer; matr: matrica);
var i, j:Integer;
begin
for i:= 0 to n-1 do
begin
for j:= 0 to m-1 do
write(matr[i, j], ' ');
writeln();
end;
end;
procedure popuniMatricu(n, m:integer; var matr:matrica);
var i, j, br:integer;
begin
br:=0;
for i := 0 to n-1 do
begin
if i mod 2 = 0 then
begin
for j := 0 to m-1 do
begin
matr[i, j] := br;
br := br+1;
end;
end
else
for j := m-1 downto 0 do
begin
matr[i, j] := br;
br := br+1;
end;
end;
end;

begin
read(n, m);
setlength(matr, n, m);
popuniMatricu(n, m, matr);

New Section 1 Page 3


popuniMatricu(n, m, matr);
stampaMatrice(n, m, matr);
end.

5. Zadatak

program zad28;
type niz = array of integer;
type matrica = array of niz;
var matr:matrica;
var n, m, br:integer;
procedure stampaMatrice(n,m:Integer; matr: matrica);
var i, j:Integer;
begin
for i:= 0 to n-1 do
begin
for j:= 0 to m-1 do
write(matr[i, j], ' ');
writeln();
end;
end;
procedure popuniMatricu(n,m:Integer; matr: matrica);
var i, j, ip, jp:Integer;
begin
ip := 0;
jp := 0;
br := 0;
while br < n * m do
begin
i := ip;
j := jp;
while (j >= 0) and (i < n) do
begin
matr[i, j] := br;
br := br+1;
i := i + 1;
j := j + 1;
end;
if jp < m then
jp := jp +1
else
ip := ip +1;
end;
end;
begin
read(n, m);
setlength(matr, n, m);
popuniMatricu(n, m, matr);
stampaMatrice(n, m, matr);
end.

New Section 1 Page 4

You might also like