Obsah lekce:
Oproti klasickému jednorozměrnému poli se liší dalším rozměrem navíc. Ukažme si výpis prázdného 2d pole rozměru 5x5:
Dobrou analogií je například list čtverečkovaného papíru o rozměru mxn čtverečků.
Ukažme si výpis prázdného 2d pole:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const m=2; n=4;
type pole2d = array[1..m,1..n]of integer;
var p:pole2d;
radek, sloupec:integer;
begin
for radek:=1 to m do
for sloupec:=1 to n do
write(p[radek, sloupec],' ');
readln;
end.
Vypsaná čísla v poli jsou za sebou a není zřetelně vidět, že se jedná o 2d pole. K ilustraci tohoto faktu zdrojový kód doplníme příkazem writeln po každém vypsaném řádku pole.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const m=2; n=4;
type pole2d = array[1..m,1..n]of integer;
var p:pole2d;
radek, sloupec:integer;
begin
for radek:=1 to m do
begin
for sloupec:=1 to n do
write(p[radek, sloupec],' ');
writeln;
end;
readln;
end.
V následujících cvičeních si dáme za cíl různými způsoby naplnit čtvercové (typu nxn) 2d pole čísly. Pro zobrazení na obrazovce zvolíme rozměr 10x10.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const m=10; n=10;
type pole2d = array[1..m,1..n]of integer;
var p:pole2d;
radek, sloupec:integer;
begin
for radek:=1 to m do
begin
for sloupec:=1 to n do
begin
end;
end;
for radek:=1 to m do
begin
for sloupec:=1 to n do
write(p[radek, sloupec]:3,' ');
writeln;
end;
readln;
end.
1 | 1 | 1 |
1 | 1 | 1 |
1 | 1 | 1 |
p[radek, sloupec]:=1;
1 | 2 | 3 |
1 | 2 | 3 |
1 | 2 | 3 |
p[radek, sloupec]:=sloupec;
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
p[radek, sloupec]:=radek;
1 | 2 | 3 |
2 | 4 | 6 |
3 | 6 | 9 |
p[radek, sloupec]:=radek*sloupec;
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
if radek=sloupec then
p[radek, sloupec]:=1
else
p[radek, sloupec]:=0
1 | 1 | 1 |
0 | 1 | 1 |
0 | 0 | 1 |
if radek<=sloupec then
p[radek, sloupec]:=1
else
p[radek, sloupec]:=0
1 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 1 |
// if (radek=sloupec) or (radek+sloupec=11) then
// if (radek=sloupec) or (radek+sloupec=n+1) then
if (radek=sloupec) or (radek=m-sloupec+1) then
p[radek, sloupec]:=1
else
p[radek, sloupec]:=0
Napište program pro výpočet aritmetického průměru libovolného počtu zadaných čísel ve 2d poli.
Napište program pro nalezení minima a maxima ze všech zadaných čísel ve 2d poli.