Professional Documents
Culture Documents
Dvoindeksni Nizi
Dvoindeksni Nizi
низа
FOR I:=1 TO N DO
FOR J:=1 TO N DO
BEGIN
Write(‘A[‘,I,’,’,J,’]= ‘ );
ReadLn(A[I,J]);
END;
FOR I:=-5 TO 5 DO
FOR J:=1 TO N DO
ReadLn(A[I,J]);
08/15/2022 Goce Gjorgjievski 5
Читање и печатење на елементите на дводимензионална општа низа:
Читање по редици:
FOR i:=1 TO m DO
FOR j:=1 TO n DO
Readln( A[i, j]);
Читање по колони:
FOR j:=1 TO n D
FOR i:=1 TO m DO
Readln( A[i, j]);
Најпрегледен начин на читање на двоиндексни променливи:
For i:=1 to m do
For j:=1 to n do
begin
write('A[',i,',',j,']=');
readln(a[i,j]);
end;
Печатење по редици(кој воедно е и најприменуван начин во програмирањето):
FOR i:=1 TO m DO
BEGIN
FOR j:=1 TO n DO
Write( A[i, j]:3);
Writeln;
END;
PROGRAM matrica;
VAR
i, j, n : INTEGER;
X : ARRAY [1..15,1..15] OF INTEGER;
BEGIN
WRITE('n (kvadratna matrica) =');
READLN(n);
WRITELN(‘Vlez na niza');
FOR i := 1 TO n DO {vlez}
FOR j := 1 TO n DO
BEGIN
WRITE('X[',i,',',j,']=');
READLN(X[i,j]);
END;
FOR i := 1 TO n DO {izlez}
BEGIN
WRITELN;
FOR j := 1 TO n DO
IF i = j THEN
WRITE(X[i,j]:4);
END;
END.
08/15/2022 Гоце Ѓорѓиевски 8
3. Вчитај двоиндексна низа mxn. Испечати ги членовите на матрицата со индекси на редици помали од
индексите на колоните (i<j).
PROGRAM matrica1;
VAR
i, j, n, m: INTEGER;
X : ARRAY [1..15,1..15] OF INTEGER;
BEGIN
WRITE('n, m =');
READLN(n,m);
FOR i := 1 TO n DO
FOR j := 1 TO m DO
BEGIN
WRITE('X[',i,',',j,']=');
READLN(X[i,j]);
END;
FOR i := 1 TO n DO
BEGIN
WRITELN;
FOR j := 1 TO m DO
IF i < j THEN
WRITE(X[i,j],' ')
ELSE
WRITE(' ');
END;
END.
08/15/2022 Гоце Ѓорѓиевски 9
Задача1: Состави програма со која ќе се пресмета збирот од елементите на двоиндексната низа од цели броеви Am x n
S=A11+A12+ .. +A1n+ .... +Am1+Am2+..+Amn
Задача2: Состави програма со која ќе се пресмета збирот од елементите на двоиндексната низа An x n по главната
дијагонала
S=A11+A22+ .. +Ann
Задача 3: Состави програма со која ќе се пресмeтаат збировите по редици од елементите на двоиндексната низа Am x n
Si=Ai1+Ai2+ .. +Ain
Задача 5: Состави програма со која ќе се пресмeтаат збирот од елементите на двоиндексната низа Am x n на p-редицата
и q-колоната
Sp=Ap1+Ap2+ .. +Apn
Sq=A1q+A2q+ .. +Amq
Задача 6: Да се внесе двоиндексна низа и број a. Потоа секој член да се помножи со а. Новосоздадената низа да се
прикажи како матрица.
Задача 7: Напишете програма која внесува квадратна матрица од ред. n и го испишува производот на елементите на
главната дијагонала.
Задача 8: Напишете програма која внесува квадратна матрица од ред n и го испишува збирот на елементите на
споредната дијагонала.
Задача 9: Напишете програма која во дадена матрица nxn, однапред зададен ред m го множи со цел број, а потоа ја
печати матрицата по редици.
Задача 10: Внесете матрица nxn. Напишете ја нејзината транспонирана матрица (i-та редица кај внесената е i-та колона
кај транспонираната) 08/15/2022 Гоце Ѓорѓиевски 10
Program zadaca1_zbirmatrica;
var i,j,n,m,s:integer;
a:array[1..20,1..20] of integer;
BEGIN
WriteLn('vnesigi dimenziite na dvoindeksnata niza po redicite i kolonite');
readLn(m,n);
WriteLn('vnesigi elementite na dvoindeksnata niza po redici');
s:=0;
for i:=1 to m do
for j:=1 to n do
begin
write('A[',i,',',j,']=');
readln(a[i,j]);
s:=s+a[i,j];
end;
writeln('dvoindeksnata niza zapisana kako matrica Amxn');
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
writeln('zbirot od elementite na dvodimenzionalnata niza S=',s:5);
readln;
END.
08/15/2022 Гоце Ѓорѓиевски 11
Program zadaca_glavna_dijagonala;
var i,j,n,s:integer;
a:array[1..20,1..20] of integer;
BEGIN
WriteLn('vnesigi dimenziite na dvoindeksnata niza po redicite i kolonite');
readLn(n);
WriteLn('vnesigi elementite na dvoindeksnata niza po redici');
for i:=1 to n do
begin
s:=0;
for j:=1 to n do
begin
write('A[',i,',',j,']=');
readln(a[i,j]);
end;
s:=s+a[i,i];
end;
writeln('dvoindeksnata niza zapisana kako matrica Amxn');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
writeln('zbirot od elementite po glavnata dijagonala na dvodimenzionalnata niza S=',s:5);
readln; 08/15/2022 Гоце Ѓорѓиевски 12
Program zbir_poredica_matrica;
var i,j,n,m:integer;
a:array[1..20,1..20] of integer;
s:array[1..20] of integer;
BEGIN
WriteLn('vnesi gi dimenziite na dvoindeksnata niza po redicite i kolonite');
readLn(m,n);
WriteLn('vnesigi elementite na dvoindeksnata niza po redici');
for i:=1 to m do
for j:=1 to n do
begin
write('A[',i,',',j,']=');
readln(a[i,j]);
end;
for i:=1 to m do
begin
s[i]:=0;
for j:=1 to n do
S[i]:=s[i]+a[i,j];
end;
writeln('dvoindeksnata niza zapisana kako matrica Amxn');
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:3);
write(s[i]:3);
writeln;
end;
readln;
END.
end;
for i:=1 to n do
for j:=1 to m do
write('ma[',i,',',j,']= ',ma[i,j],'':2);
readln
end.
08/15/2022 Гоце Ѓорѓиевски 20
08/15/2022 Гоце Ѓорѓиевски 21
Напишете програма кој ќе внесува матрица А од ред nxm, природен број k, k<=m и природен број
I. Програмата треба k-тaта колона да ја сортира по растечки редослед и така добиената матрица ја
испечати.
program sortiraj_kolona_matrica;
uses crt;
var i,j,n,m,k,pom:integer;
ma:array[1..10,1..10] of integer;
begin
write('Vnesi red na m-cata!');
readln(n,m);
for i:=1 to n do
for j:=1 to m do
begin
write('ma[',i,',',j,']= ');
readln(ma[i,j]);
end;
write('Vnesi koja kolona ke se sortira!');
readln(k);
for i:=1 to n-1 do
for j:=i+1 to n do
begin
if ma[i,k]>ma[j,k] then
begin
pom:=ma[i,k];
ma[i,k]:=ma[j,k];
ma[j,k]:=pom;
end;
end;
for i:=1 to n do
begin
for j:=1 to m do
write(ma[i,j]:4,'':2);
writeln;
end;
readln
end.
08/15/2022 Гоце Ѓорѓиевски 22
Напишете програма кој ќе внесува матрица А од ред nxm, два природни броја i, j<=m. Програмата
треба i-тaта колона да ја замени со j-тата колона и така добиената матрица ја испечати.
program zameni_kolona_matrica;
uses crt;
var a,b,n,m,i,j,pom:integer;
ma:array[1..10,1..10] of integer;
begin
write('Vnesi red na m-cata!');
readln(n,m);
for a:=1 to n do
for b:=1 to m do
begin
write('ma[',a,',',b,']= ');
readln(ma[a,b]);
end;
write('Vnesi koi koloni ke se zamenat!');
readln(i,j);
for a:=1 to n do
begin
pom:=ma[a,i];
ma[a,i]:=ma[a,j];
ma[a,j]:=pom;
end;
for a:=1 to n do
begin
for b:=1 to m do
write(ma[a,b]:4,'':2);
writeln;
end;
readln
end.
end;
for a:=1 to n do
begin
for b:=1 to m do
write(ma[a,b]:4,'':2);
writeln;
end;
readln
end.
end;
for a:=1 to n do
begin
for b:=1 to m do
write(ma[a,b]:4,'':2);
writeln;
end;
readln
end. 08/15/2022 Гоце Ѓорѓиевски 25
Напишете програма која ќе внесува матрица од ред nxm. Програмата треба да ја испечати на неа
транспонираната матрица. (Транспонирана матрица од матрицата A се добива така што редиците на
матрицата A станат соодветни колони на транспонираната матрица; општо: i-тата редица на
матрицата е станува i-та колона на транспонираната матрица.)
program transponirana_matrica;
uses crt;
var n,m,i,j:integer;
ma,ma1:array[1..10,1..10] of integer;
begin
clrscr;
write('Vnesi red na m-cata!');
readln(n,m);
for i:=1 to n do
begin
for j:=1 to m do
begin
write('ma[',i,',',j,']= ');
read(ma[i,j]);
end;
writeln
end;
for i:=1 to n do
for j:=1 to m do
ma1[j,i]:=ma[i,j];
for i:=1 to m do
begin
for j:=1 to n do
write(ma1[i,j]:4,'':2);
writeln;
end;
readln;
end.
08/15/2022 Гоце Ѓорѓиевски 26
Да се внесе квадратна матрица од ред n и провери дали е симетрична. (Матрицата A е симетрична ако
важи A[i,j]=A[j,i].)
program simetricna;
uses crt;
var i,j,n,z:integer;
oemuc:array[1..10,1..10] of integer;
begin
clrscr;
write('Vnesi red na matricata!');
readln(n);
z:=0;
for i:=1 to n do
begin
for j:=1 to n do
begin
write('oemuc[',i,',',j,']= ');
readln(oemuc[i,j]);
end;
writeln
end;
for i:=1 to n do
for j:=1 to n do
if oemuc[i,j]<>oemuc[j,i] then
z:=1;
if z=1 then
writeln('Matricata ne e simetricna!')
else
writeln('Matricata e simetricna!');
readln
end. 08/15/2022 Гоце Ѓорѓиевски 27
Да се напише програма која ќе печати двоиндексна низа чии членови ќе бидат Фибоначиеви броеви.
Фибоначиеви броеви се броевите од редот 1, 1, 2, 3, 5, 8, 13, 21, 34,55, 89...