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.



vytlačiť článok  hľadať súvisiace články 

Vyhľadávanie na stránke
Reklama
Náhodný obrázok
náhodný obrázok
Kontakty

Martin Kasman, M Software
Smreková 3095/23
Email: martin@kasman.sk

Telefón: 0908 270 294