Вопрос задан 26.06.2026 в 08:41. Предмет Информатика. Спрашивает Мейрамбек Аман.

Паскаль!!! Нужно написать модель солнечной системы с 3 планетами (Меркурий, Венера, Земля) и 1 спутник (Луна). Чем дальше планеты от солнца, тем медленнее они крутятся. Есть код на одну планету, нужно дописать остальное в похожем стиле.
uses crt, graphABC ;
var
x , y , x0 , y0 , rvod , xe , ye , rel , dy , re , i : integer ;
Begin
x := 640 ; // ширина окна
y := 480 ; // высота окна
setwindowsize ( x , y ) ; // устанавливаем размер окна
x0 :=x div 2 ; // центр Х
y0 := y div 2 ; // центр у
rvod :=70 ; // радиус солнца
rel := 10 ; // радиус венеры .
dy :=100 ;
re :=y0 - dy ; // радиус вращения венеры
i :=360 ;
repeat
clearwindow ;
if i=360 then i:= 1 else inc ( i ) ;
setpencolor ( clorange ) ; // цвет пера
circle ( x0 , y0 , rvod ) ; // солнце
floodfill ( x0 , y0 , clyellow ) ; // заливка фигуры ( солнце )
xe := x0 + round ( re*cos( i*pi / 180 ) ) ;
ye := y0 + round ( re*sin (i*pi / 180 ) ) ;
circle ( xe , ye , rel ) ; // (венера)
delay ( 10 ) ;
until keypressed
End.

Перейти к ответам

Ответы на вопрос

Отвечает Дятлова Настя.

Можно сделать так: у каждой планеты свой радиус орбиты и своя скорость. Чем дальше планета от Солнца, тем меньше скорость изменения угла.

Код на PascalABC.NET:

uses crt, graphABC;

var
x, y, x0, y0: integer;
rSun: integer;
rMercury, rVenus, rEarth, rMoon: integer;
orbMercury, orbVenus, orbEarth, orbMoon: integer;
xm, ym, xv, yv, xe, ye, xl, yl: integer;
i: integer;

begin
x := 640;
y := 480;
setwindowsize(x, y);

x0 := x div 2;
y0 := y div 2;

rSun := 35;

rMercury := 5;
rVenus := 8;
rEarth := 9;
rMoon := 3;

orbMercury := 70;
orbVenus := 120;
orbEarth := 180;
orbMoon := 20;

i := 0;

repeat
clearwindow;

inc(i);

setpencolor(clOrange);
circle(x0, y0, rSun);
floodfill(x0, y0, clYellow);

xm := x0 + round(orbMercury * cos(4 * i * pi / 180));
ym := y0 + round(orbMercury * sin(4 * i * pi / 180));
setpencolor(clGray);
circle(xm, ym, rMercury);
floodfill(xm, ym, clGray);

xv := x0 + round(orbVenus * cos(2 * i * pi / 180));
yv := y0 + round(orbVenus * sin(2 * i * pi / 180));
setpencolor(clBrown);
circle(xv, yv, rVenus);
floodfill(xv, yv, clBrown);

xe := x0 + round(orbEarth * cos(i * pi / 180));
ye := y0 + round(orbEarth * sin(i * pi / 180));
setpencolor(clBlue);
circle(xe, ye, rEarth);
floodfill(xe, ye, clBlue);

xl := xe + round(orbMoon * cos(6 * i * pi / 180));
yl := ye + round(orbMoon * sin(6 * i * pi / 180));
setpencolor(clLightGray);
circle(xl, yl, rMoon);
floodfill(xl, yl, clLightGray);

delay(20);
until keypressed;
end.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос