Переделать код - 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.