Переделать код - Pascal

Узнай цену своей работы

Формулировка задачи:

Переделайте под PAscalABC.NET
program KR;
uses crt, graph;
const coord1:array [1..8] of integer=(210,280,250,280,270,310,190,310);
 
const coord2:array [1..14] of integer=(340,280,380,280,390,310,375,325,
360,295,345,325,330,310);
const coord3:array [1..6] of integer=(230,180,200,200,200,160);
const coord4:array [1..6] of integer=(230,180,260,160,260,200);
 
var graphdriver, graphmode, errorcode:integer;
BEGIN
graphdriver:=detect;
initgraph(graphdriver,graphmode,'');
errorcode:=graphresult;
if errorcode<>0 then
   begin
   writeln('oshibka grafiki');
   writeln(grapherrormsg(errorcode));
   writeln('programu zakon4eno');
   end;
cleardevice;
setfillstyle(1,9);
bar(0,0,640,350);
setfillstyle(1,10);
bar(0,350,640,480);
setfillstyle(1,14);
pieslice(640,0,360,270,90);
setcolor(14);
line(640,0,450,0);
line(640,0,500,160);
line(640,0,480,100);
line(640,0,630,250);
line(640,0,550,220);
line(640,0,580,240);
line(640,0,420,75);
setcolor(6);
setfillstyle(1,6);
circle(230,200,15);     {golova devo4ka}
fillellipse(230,200,15,15);
circle(360,200,15);     {golova mal4ik}
fillellipse(360,200,15,15);
 
setcolor(3);               {risovanie bantika}
setfillstyle(1,3);
circle(230,180,5);
fillellipse(230,180,5,5);
fillpoly(3,coord3);
fillpoly(3,coord4);
 
setcolor(0);             {volosi mal4ika}
line(360,185,356,188);
line(360,185,350,191);
line(361,186,354,186);
line(364,186,350,185);
line(367,187,353,188);
 
setcolor(6);
line(230,215,230,230);  {risovanie liniy ruk i nog, sheya - devo4ka}
line(210,230,190,260);
line(250,230,270,260);
line(220,310,220,350);
line(240,310,240,350);
line(240,350,250,355);
line(220,350,210,355);
 
line(360,215,360,230);  {risovanie liniy ruk i nig, sheya - mal4ik}
line(340,230,320,250);
line(380,230,400,250);
line(338,315,330,350);
line(383,315,393,350);
line(330,350,318,355);
line(393,350,403,355);
setfillstyle(1,15);
bar(210,230,250,280);   {telo devo4ki}
setfillstyle(1,5);
bar(340,230,380,280);   {telo mal4ika}
setfillstyle(1,13);
fillpoly(4,coord1);     {yubka devo4ka}
setfillstyle(1,7);
fillpoly(7,coord2);     {shorti mal4ik}
setfillstyle(1,6);
floodfill(230,200,6);   {zakrashivanie lic}
floodfill(360,200,6);
repeat
until keypressed;
closegraph;
END.

Решение задачи: «Переделать код»

textual
Листинг программы
program KR;
uses graphABC;
const coord1:array [1..8] of integer=(210,280,250,280,270,310,190,310);
      coord2:array [1..14] of integer=(340,280,380,280,390,310,375,325,
                                       360,295,345,325,330,310);
      coord3:array [1..6] of integer=(230,180,200,200,200,160);
      coord4:array [1..6] of integer=(230,180,260,160,260,200);
var p:array of point;
    i:byte;
begin
brush.Color:=clBlue;
rectangle(0,0,640,350);
brush.Color:=clGreen;
rectangle(0,350,640,480);
setpencolor(clYellow);
brush.Color:=clYellow;
setpenwidth(2);
circle(640,0,90);
line(640,0,450,0);
line(640,0,500,160);
line(640,0,480,100);
line(640,0,630,250);
line(640,0,550,220);
line(640,0,580,240);
line(640,0,420,75);
setpencolor(clBrown);
setbrushcolor(clBrown);
circle(230,200,15);     {golova devo4ka}
circle(360,200,15);     {golova mal4ik}
pen.Color:=clLime;
brush.Color:=clLime;
circle(230,180,5);
setlength(p,4);
for i:=0 to 2 do
 begin
  p[i].X:=coord3[2*i+1];
  p[i].Y:=coord3[2*i+2];
 end;
p[3]:=p[0]; 
Polygon(p); 
for i:=0 to 2 do
 begin
  p[i].X:=coord4[2*i+1];
  p[i].Y:=coord4[2*i+2];
 end;
p[3]:=p[0]; 
Polygon(p);  
pen.Color:=clBlack;             {volosi mal4ika}
line(360,185,356,188);
line(360,185,350,191);
line(361,186,354,186);
line(364,186,350,185);
line(367,187,353,188); 
pen.Color:=clBrown;
line(230,215,230,230);  {risovanie liniy ruk i nog, sheya - devo4ka}
line(210,230,190,260);
line(250,230,270,260);
line(220,310,220,350);
line(240,310,240,350);
line(240,350,250,355);
line(220,350,210,355);
line(360,215,360,230);  {risovanie liniy ruk i nig, sheya - mal4ik}
line(340,230,320,250);
line(380,230,400,250);
line(338,315,330,350);
line(383,315,393,350);
line(330,350,318,355);
line(393,350,403,355); 
pen.Color :=clWhite;
brush.Color:=clWhite;
rectangle(210,230,250,280);
pen.Color :=clWhite;
brush.Color:=clWhite;
pen.Color:=clPurple;
brush.Color:=clPurple;
rectangle(340,230,380,280);   {telo mal4ika}
pen.Color:=clDarkViolet;
brush.Color:=clDarkViolet;
setlength(p,5);
for i:=0 to 3 do
 begin
  p[i].X:=coord1[2*i+1];
  p[i].Y:=coord1[2*i+2];
 end;
p[4]:=p[0]; 
Polygon(p); 
pen.Color:=clGray;
brush.Color:=clGray;
setlength(p,8);
for i:=0 to 6 do
 begin
  p[i].X:=coord2[2*i+1];
  p[i].Y:=coord2[2*i+2];
 end;
p[7]:=p[0]; 
Polygon(p);  
end.

Объяснение кода листинга программы

В данном коде представлен фрагмент программы на языке Pascal. Он использует графический пакет graphABC, который предназначен для создания графических приложений. В коде объявлены переменные и структуры данных, такие как brush, pen, rectangle, circle, line, setlength, Polygon и другие. Они используются для рисования различных фигур и линий на экране. Программа начинается с инициализации графического пакета и установки цвета кисти и фона экрана. Затем выполняется ряд операций по рисованию различных фигур и линий. Среди них:

  • Окрашивание прямоугольника с помощью функции rectangle.
  • Окрашивание круга с помощью функции circle.
  • Отрисовка линий с помощью функций line.
  • Установка цвета кисти и фона экрана с помощью функций setpencolor и setbrushcolor.
  • Создание полигонов с помощью функции Polygon. Также в коде присутствуют циклы for, которые используются для создания и отрисовки наборов точек. В конце программы выполняется выход из приложения с помощью оператора end.

Оцени полезность:

8   голосов , оценка 4.125 из 5