matice
program matica_all;
uses crt;
type
typ= array [1..20, 1..20] of char;
procedure prehod_hore_dole(criadku1, criadku2: byte; var mat: typ; sirka: byte);
var
w: byte;
pom: char;
begin
for w:=1 to sirka do
begin
pom:=mat[w,criadku1];
mat[w,criadku1]:=mat[w,criadku2];
mat[w,criadku2]:=pom;
end;
end;
procedure prehod_vlavo_vpravo(cstlpca1, cstlpca2: byte; var mat: typ; sirka: byte);
var
w: byte;
pom: char;
begin
for w:=1 to sirka do
begin
pom:=mat[cstlpca1, w];
mat[cstlpca1, w]:=mat[cstlpca2, w];
mat[cstlpca2, w]:=pom;
end;
end;
procedure prevratit_maticu_po_diagonale(var mat: typ; sirka: byte);
var
x, y: byte;
pom: char;
begin
for y:=1 to sirka do
begin
for x:=1 to sirka-y+1 do
begin
pom:=mat[x, y];
mat[x, y]:=mat[sirka-y+1, sirka-x+1];
mat[sirka-y+1, sirka-x+1]:=pom;
end;
end;
end;
procedure zorad_riadky_podla_abecedy_podla_stlpca(var mat: typ; sirka: byte; radit_podla_stlpca: byte);
var
w: byte;
y: byte;
begin
for y:=1 to sirka-1 do
begin
for w:=1 to sirka-y do
begin
if ord(mat[radit_podla_stlpca, w])>ord(mat[radit_podla_stlpca, w+1]) then prehod_hore_dole(w, w+1, mat, sirka);
end;
end;
end;
var
matica: typ;
x, y, velkost: byte;
a, b: byte;
const
prve_farebne_stlpce=0;
posledne_farebne_stlpce=0;
prve_farebne_riadky=0;
posledne_farebne_riadky=0;
procedure Vypis_maticu;
begin
FOR Y:=1 TO Velkost DO
begin
FOR X:=1 TO Velkost DO
begin
if y<=prve_farebne_riadky then textcolor(green);
if y>=Velkost-posledne_farebne_riadky+1 then textcolor(green);
if x<=prve_farebne_stlpce then textcolor(green);
if x>=Velkost-posledne_farebne_stlpce+1 then textcolor(green);
write(matica[x, y], ' ');
textcolor(white);
end;
writeln;
end;
writeln;
end;
begin
clrscr;
write('velkost matice: ');
readln(velkost);
FOR Y:=1 TO Velkost DO
begin
FOR X:=1 TO Velkost DO
begin
//matica[X, Y]:=chr(ord('A')+random(26)); //vygenerovat velke pismena
//matica[X, Y]:=chr(ord('a')+random(26)); //vygenerovat male pismena
matica[X, Y]:=chr(ord('1')+random(9)); //vygenerovat cisla
end;
end;
Vypis_maticu;
//prevratenie matice zvysle
writeln('prevratena matica zvysle');
for y:=1 to velkost div 2 do
begin
prehod_hore_dole(y, velkost-y+1, matica, velkost);
end;
Vypis_maticu;
//prevratenie matice vodorovne
writeln('prevratena matica vodorovne');
for x:=1 to velkost div 2 do
begin
prehod_vlavo_vpravo(x, velkost-x+1, matica, velkost);
end;
Vypis_maticu;
//zorad_riadky_podla_abecedy_podla_stlpca
writeln('zorad_riadky_podla_abecedy_podla_stlpca');
zorad_riadky_podla_abecedy_podla_stlpca(matica, velkost, 1);
Vypis_maticu;
//prevratit_maticu_po_diagonale
writeln('prevratit_maticu_po_diagonale');
prevratit_maticu_po_diagonale(matica, velkost);
Vypis_maticu;
//prehodit uzivatelom zadane riadky
write('prehodit riadok ');
readln(a);
write('prehodit s riadkom ');
readln(b);
prehod_hore_dole(a, b, matica, velkost);
Vypis_maticu;
//prehodit uzivatelom zadane stlpce
write('prehodit stlpce ');
readln(a);
write('prehodit so stlpcom ');
readln(b);
prehod_vlavo_vpravo(a, b, matica, velkost);
Vypis_maticu;
readln;
end.
uses crt;
type
typ= array [1..20, 1..20] of char;
procedure prehod_hore_dole(criadku1, criadku2: byte; var mat: typ; sirka: byte);
var
w: byte;
pom: char;
begin
for w:=1 to sirka do
begin
pom:=mat[w,criadku1];
mat[w,criadku1]:=mat[w,criadku2];
mat[w,criadku2]:=pom;
end;
end;
procedure prehod_vlavo_vpravo(cstlpca1, cstlpca2: byte; var mat: typ; sirka: byte);
var
w: byte;
pom: char;
begin
for w:=1 to sirka do
begin
pom:=mat[cstlpca1, w];
mat[cstlpca1, w]:=mat[cstlpca2, w];
mat[cstlpca2, w]:=pom;
end;
end;
procedure prevratit_maticu_po_diagonale(var mat: typ; sirka: byte);
var
x, y: byte;
pom: char;
begin
for y:=1 to sirka do
begin
for x:=1 to sirka-y+1 do
begin
pom:=mat[x, y];
mat[x, y]:=mat[sirka-y+1, sirka-x+1];
mat[sirka-y+1, sirka-x+1]:=pom;
end;
end;
end;
procedure zorad_riadky_podla_abecedy_podla_stlpca(var mat: typ; sirka: byte; radit_podla_stlpca: byte);
var
w: byte;
y: byte;
begin
for y:=1 to sirka-1 do
begin
for w:=1 to sirka-y do
begin
if ord(mat[radit_podla_stlpca, w])>ord(mat[radit_podla_stlpca, w+1]) then prehod_hore_dole(w, w+1, mat, sirka);
end;
end;
end;
var
matica: typ;
x, y, velkost: byte;
a, b: byte;
const
prve_farebne_stlpce=0;
posledne_farebne_stlpce=0;
prve_farebne_riadky=0;
posledne_farebne_riadky=0;
procedure Vypis_maticu;
begin
FOR Y:=1 TO Velkost DO
begin
FOR X:=1 TO Velkost DO
begin
if y<=prve_farebne_riadky then textcolor(green);
if y>=Velkost-posledne_farebne_riadky+1 then textcolor(green);
if x<=prve_farebne_stlpce then textcolor(green);
if x>=Velkost-posledne_farebne_stlpce+1 then textcolor(green);
write(matica[x, y], ' ');
textcolor(white);
end;
writeln;
end;
writeln;
end;
begin
clrscr;
write('velkost matice: ');
readln(velkost);
FOR Y:=1 TO Velkost DO
begin
FOR X:=1 TO Velkost DO
begin
//matica[X, Y]:=chr(ord('A')+random(26)); //vygenerovat velke pismena
//matica[X, Y]:=chr(ord('a')+random(26)); //vygenerovat male pismena
matica[X, Y]:=chr(ord('1')+random(9)); //vygenerovat cisla
end;
end;
Vypis_maticu;
//prevratenie matice zvysle
writeln('prevratena matica zvysle');
for y:=1 to velkost div 2 do
begin
prehod_hore_dole(y, velkost-y+1, matica, velkost);
end;
Vypis_maticu;
//prevratenie matice vodorovne
writeln('prevratena matica vodorovne');
for x:=1 to velkost div 2 do
begin
prehod_vlavo_vpravo(x, velkost-x+1, matica, velkost);
end;
Vypis_maticu;
//zorad_riadky_podla_abecedy_podla_stlpca
writeln('zorad_riadky_podla_abecedy_podla_stlpca');
zorad_riadky_podla_abecedy_podla_stlpca(matica, velkost, 1);
Vypis_maticu;
//prevratit_maticu_po_diagonale
writeln('prevratit_maticu_po_diagonale');
prevratit_maticu_po_diagonale(matica, velkost);
Vypis_maticu;
//prehodit uzivatelom zadane riadky
write('prehodit riadok ');
readln(a);
write('prehodit s riadkom ');
readln(b);
prehod_hore_dole(a, b, matica, velkost);
Vypis_maticu;
//prehodit uzivatelom zadane stlpce
write('prehodit stlpce ');
readln(a);
write('prehodit so stlpcom ');
readln(b);
prehod_vlavo_vpravo(a, b, matica, velkost);
Vypis_maticu;
readln;
end.