Перевести код с 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.

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

  1. Используется библиотека crt и графический модуль graph.
  2. Создается тип Pyr, который представляет собой массив из пяти чисел с плавающей запятой.
  3. Задаются константы ang и r, которые представляют собой значение угла и радиуса соответственно.
  4. Создаются переменные i и e, которые представляют собой целочисленный и вещественный типы.
  5. Создаются массивы xx, yy, zz, x1 и y1, которые представляют собой массивы из пяти чисел с плавающей запятой.
  6. Создается процедура show, которая рисует линии на графике.
  7. Задаются цвета для линий с помощью функции setcolor.
  8. Рисуются линии между точками на графике с помощью функции line.
  9. Задается начальная точка для линий с помощью функций x1[1], y1[1], x1[2], y1[2] и т.д.
  10. Запускается цикл while, который выполняется до тех пор, пока не будет нажата клавиша.
  11. Внутри цикла вычисляется значение a с помощью формулы pi/180*e, где e - текущий угол.
  12. Для каждой координаты (i,j) в массивах xx, yy, zz, x1 и y1 вычисляются значения с помощью формул xx[i], yy[i], zz[i], x1[i] и y1[i] соответственно.
  13. Значения x1[i] и y1[i] округляются до ближайшего целого числа с помощью функции round.
  14. Добавляется заголовок Show к каждой строке кода, чтобы показать, что это часть программы, которая должна быть отображена на экране.
  15. Запускается цикл delay, который задерживает выполнение программы на 100 миллисекунд.
  16. Сбрасывается устройство с помощью функции ClearDevice.
  17. Увеличивается значение e на единицу.
  18. Проверяется, была ли нажата клавиша с помощью функции keypressed.
  19. Если клавиша была нажата, то цикл while прерывается.
  20. Выводится сообщение Readln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

6   голосов , оценка 3.833 из 5
Похожие ответы