![]() |
Eugeniusz Jakubas |
Stąd można pobrać teksty źródłowe poniższych 57 programów w Pascalu pr-pascal.zip - 34 kB
21. Pola figur płaskich.
Program Pole_figury_plaskiej;
uses Graph;
var karta,tryb,x,y,k,n,bialy,czarny,siatka:integer;
psw,psz:longint;
const czworokat:array[1..5,1..2] of integer=
((50,120),(400,100),(500,285),(210,420),(50,120));
j:integer = 64;
begin
karta:=vga; tryb:=vgaHi; initGraph(karta,tryb,'');
fillPoly(4,czworokat);
setColor(cyan);
siatka:=16; psw:=0; psz:=0;
for n:=0 to 440 div siatka do
for k:=0 to 560 div siatka do
begin
bialy:=0;
czarny:=0;
for x:=k*siatka to (k+1)*siatka-1 do
for y:=n*siatka to (n+1)*siatka-1 do
if getPixel(x,y)=white then bialy:=1 else czarny:=1;
rectangle(k*siatka-1,n*siatka-1,(k+1)*siatka-1,(n+1)*siatka-1);
if (bialy=1) and (czarny=0) then
begin
inc(psw);
setFillStyle(1,lightRed);
bar(k*siatka,n*siatka,(k+1)*siatka-1,(n+1)*siatka-1);
end;
if (bialy=1) and (czarny=1) then
begin
inc(psz);
setFillStyle(1,lightBlue);
bar(k*siatka,n*siatka,(k+1)*siatka-1,(n+1)*siatka-1);
end;
end;
setColor(black);
drawPoly(5,czworokat);
writeLn('P.s.z.=',(psz+psw)/j/j*siatka*siatka:6:4,
' P.s.w.=',psw/j/j*siatka*siatka:6:4);
readLn; closeGraph;
end.
|
![]() |