Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Zespół Szkół Ogólnokształcących w Bobowej

Tablica służy do przechowywania dużej ilości danych tego samego typu. Tablica, to jakby pudełko, podzielone na komórki. W każdej komórce tablicy można przechować jakąś wartość (liczbę tekst itp.). Ponieważ tą wartością może być również tablica - można więc tworzyć tablice wielowymiarowe. Podczas deklarowania tablic wielowymiarowych należy uważać na ilość zajmowanej przez nie pamięci. Komórki pamięci można numerować w dowolny, ale kolejny sposób, np. od 1 do 10, ale i od -5 do 4. Wszystko zależy od naszych pomysłów na realizację programu

POBIERZ CAŁĄ LEKCJĘ

GRAF15.PAS
TABLICA

{odbijanie kwadrat˘w - tablice}
program grafika15;
uses crt,graph;

var
{tablica na 100 kwadrat˘w
1 - x
2 - y
3 - bok
4 - kolor
5 - dx
6 - dy
kaľdego ze 100 kwadrat˘w}
TK:array[1..100,1..6] of integer;

ile:byte;{ilo˜† kwadrat˘w}
i:byte;{licznik kwadrat˘w}

procedure Kwadrat(x,y,bok,kolor:integer);
begin
SetColor(kolor);
MoveTo(x,y);
LineRel(0,bok);
LineRel(bok,0);
LineRel(0,-bok);
LineRel(-bok,0);
{kwadracik z zaznaczonym ˜rodkiem}
{PutPixel(x+(bok div 2),y+(bok div 2),kolor);}
end;


var d,m:integer;
begin
d:=detect;
initgraph(d,m,'');

Randomize;
{inicjowanie wszystkich kwadrat˘w}
ile:=50;
for i:=1 to ile do
begin
TK[i,1]:=random(600); {x}
TK[i,2]:=random(400); {y}
TK[i,3]:=random(20)+10; {bok 10..30}
TK[i,4]:=random(15)+1; {kolor 1..15}
TK[i,5]:=random(9)-4; {dx -4..4}
TK[i,6]:=random(9)-4; {dy -4..4}
end;

repeat
{rysowanie kwadrat˘w}
for i:=1 to ile do
kwadrat(TK[i,1],TK[i,2],TK[i,3],TK[i,4]);

{wstrzymanie}
delay(15);

{wymazywanie kwadrat˘w}
for i:=1 to ile do
kwadrat(TK[i,1],TK[i,2],TK[i,3],0);

{obliczenie nowych wsp˘ˆrz©dnych i sprawdzenie odbi†}
for i:=1 to ile do
begin
TK[i,1]:=TK[i,1]+TK[i,5];
TK[i,2]:=TK[i,2]+TK[i,6];

{je˜li odbicie P i L}
if (TK[i,1] >= 640 - TK[i,3]) or (TK[i,1] <= 0) then
TK[i,5]:=-TK[i,5];

{je˜li odbicie G i D}
if (TK[i,2] >= 480 - TK[i,3]) or (TK[i,2] <= 0) then
TK[i,6]:=-TK[i,6];
end;
until keypressed;

closegraph;
end.


GRAF16.PAS
REKORDY


{odbijanie kwadrat˘w - tablice rekord˘w}
program grafika16;
uses crt,graph;

type
TKwadrat=record {opisujemy dane dotyczĄce kwadratu}
x,y:integer;
bok,kolor:byte;
dx,dy:shortint;
end;

var
{tablica na 100 kwadrat˘w}
TK:array[1..100] of TKwadrat;

ile:byte;{ilo˜† kwadrat˘w}
i:byte;{licznik kwadrat˘w}

procedure Kwadrat(x,y,bok,kolor:integer);
begin
SetColor(kolor);
MoveTo(x,y);
LineRel(0,bok);
LineRel(bok,0);
LineRel(0,-bok);
LineRel(-bok,0);
end;


var d,m:integer;
begin
d:=detect;
initgraph(d,m,'');

Randomize;
{inicjowanie wszystkich kwadrat˘w}
ile:=50;
for i:=1 to ile do
begin
TK[i].x:=random(600);
TK[i].y:=random(400);
TK[i].bok:=random(20)+10;
TK[i].kolor:=random(15)+1;
TK[i].dx:=random(9)-4;
TK[i].dy:=random(9)-4;
end;

repeat
{rysowanie kwadrat˘w}
for i:=1 to ile do
kwadrat(TK[i].x, TK[i].y, TK[i].bok, TK[i].kolor);

{wstrzymanie}
delay(15);

{wymazywanie kwadrat˘w}
for i:=1 to ile do
kwadrat(TK[i].x, TK[i].y, TK[i].bok, 0);

{obliczenie nowych wsp˘ˆrz©dnych i sprawdzenie odbi†}
for i:=1 to ile do
begin
TK[i].x:=TK[i].x+TK[i].dx;
TK[i].y:=TK[i].y+TK[i].dy;

{je˜li odbicie P i L}
if (TK[i].x >= 640 - TK[i].bok) or (TK[i].x <= 0) then
begin
TK[i].dx:=-TK[i].dx;
TK[i].kolor:=(TK[i].kolor + 1) mod 16;
end;

{je˜li odbicie G i D}
if (TK[i].y >= 480 - TK[i].bok) or (TK[i].y <= 0) then
begin
TK[i].dy:=-TK[i].dy;
TK[i].kolor:=(TK[i].kolor + 1) mod 16;
end;
end;
until keypressed;

closegraph;
end.

 

Zobacz tutaj