Zdravím vás potřeboval bych poradit s tady tím zadáním: matici MxN naplnit náhodnými čísly od 1do 99, pak matici pomocí procedury rozdělte na jednu čtvercovou matice a zbytkovou matici. Všechny matice zobrazte.
Předem děkuji za tipy.
#2 Jerry
Pascal
Zdravím vás potřeboval bych poradit s tady tím zadáním: matici MxN naplnit náhodnými čísly od 1do 99, pak matici pomocí procedury rozdělte na jednu čtvercovou matice a zbytkovou matici. Všechny matice zobrazte.
Předem děkuji za tipy.
Můžeš použít dynamické dvourozměrné pole.
type
TMatice = array of array of integer;
var
matice: TMatice;
...
setlength(matice, m, n);
for y := 0 to m-1 do
for x := 0 to n-1 do
matice[y,x] := 1 + random(98);
To rozdělení bude podobně. Vytvoříš další 2 matice a naplníš je hodnotami z té původní.
type
TMatice = array of array of integer;
var
matice: TMatice;
matice2: TMatice;
matice3: TMatice;
...
setlength(matice, m, n);
for y := 0 to m-1 do
for x := 0 to n-1 do
matice[y,x] := 1 + random(98);
y jsou radky, m jsou radky
x jsou sloupce, n jsou sloupce
zvol mensi rozmer takze dostanes matici k x k
idealni by bylo kdyby sis navolil napevno ze matice bude mit treba 10 sloupcu a 6 radku
takze ta ctverova matice bude 6x6 a zbyvajici matice bude mit rozmer 6 x 4 neboli 6 radku a 4 sloupce
if ( m < n ) then begin
r1 = m;
r2 = n - m
end;
else
begin
r1 = n;
r2 = m - n;
end;
tady se dela ctvercova matice
for y := 0 to r1-1 do
for x := 0 to r1-1 do
matice2[y,x] := matice[y,x]
tady se dela zbytek jen sloupce co jsou za hranici ctvercove matice r1 x r1
for y := 0 to k-1 do
for x := r1-1 to r2-1 do
matice3[y,x] := matice[y,x]
kdyz si to navolis napevno reba 10 sloupcu x 6 radku bude to mnohem jednodussi
a bude to vypadat takhle:
for y := 0 to 6-1 do
for x := 0 to 10-1 do
matice[y,x] := 1 + random(98);
for y := 0 to 6-1 do
for x := 0 to 6-1 do
matice2[y,x] := matice[y,x];
for y := 0 to 6-1 do
for x := 6 to 10-1 do
matice3[y,x] := matice[y,x];
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku