Перевести код с PascalABC - Turbo Pascal
Формулировка задачи:
Решение задачи: «Перевести код с PascalABC»
textual
Листинг программы
uses crt,graph; type Pyr=array[1..5] of real; const ang=pi/3; r=100; x:Pyr=(0,r,r div 2,r div 2,r div 2); y:Pyr=(0,0,0,0,-r); z:Pyr=(0,0,r,r,r div 2); var i,e:integer; a:real; xx,yy,zz:array[1..5] of real; x1,y1:array[1..5] of integer; procedure show; begin setcolor(9); line(0,240,640,240); setcolor(12); line(x1[1],y1[1],x1[2],y1[2]); line(x1[1],y1[1],x1[4],y1[4]); line(x1[1],y1[1],x1[5],y1[5]); line(x1[2],y1[2],x1[5],y1[5]); line(x1[3],y1[3],x1[2],y1[2]); line(x1[3],y1[3],x1[4],y1[4]); line(x1[3],y1[3],x1[5],y1[5]); line(x1[3],y1[3],x1[4],y1[4]); line(x1[4],y1[4],x1[5],y1[5]); end; begin initgraph(i,e,''); e:=1; while (e<=360)and not keypressed do begin a:=pi/180*e; for i:=1 to 5 do begin xx[i]:=x[i]; yy[i]:=y[i]*cos(a)+z[i]*sin(a); zz[i]:=z[i]*sin(a)-z[i]*cos(a); x1[i]:=round(xx[i]+zz[i]*cos(ang)/2)+320; y1[i]:=round(yy[i]-zz[i]*cos(ang)/2)+240; end; show; delay(100); ClearDevice; inc(e); end; show; readln end.
Объяснение кода листинга программы
- Используется библиотека crt и графический модуль graph.
- Создается тип Pyr, который представляет собой массив из пяти чисел с плавающей запятой.
- Задаются константы ang и r, которые представляют собой значение угла и радиуса соответственно.
- Создаются переменные i и e, которые представляют собой целочисленный и вещественный типы.
- Создаются массивы xx, yy, zz, x1 и y1, которые представляют собой массивы из пяти чисел с плавающей запятой.
- Создается процедура show, которая рисует линии на графике.
- Задаются цвета для линий с помощью функции setcolor.
- Рисуются линии между точками на графике с помощью функции line.
- Задается начальная точка для линий с помощью функций x1[1], y1[1], x1[2], y1[2] и т.д.
- Запускается цикл while, который выполняется до тех пор, пока не будет нажата клавиша.
- Внутри цикла вычисляется значение a с помощью формулы pi/180*e, где e - текущий угол.
- Для каждой координаты (i,j) в массивах xx, yy, zz, x1 и y1 вычисляются значения с помощью формул xx[i], yy[i], zz[i], x1[i] и y1[i] соответственно.
- Значения x1[i] и y1[i] округляются до ближайшего целого числа с помощью функции round.
- Добавляется заголовок
Show
к каждой строке кода, чтобы показать, что это часть программы, которая должна быть отображена на экране. - Запускается цикл delay, который задерживает выполнение программы на 100 миллисекунд.
- Сбрасывается устройство с помощью функции ClearDevice.
- Увеличивается значение e на единицу.
- Проверяется, была ли нажата клавиша с помощью функции keypressed.
- Если клавиша была нажата, то цикл while прерывается.
- Выводится сообщение
Readln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д