uses graphABC;
var xx: integer;
procedure Obl(x,y:integer);
begin
setpenwidth(1);
setpencolor(clwhite);
setbrushcolor(clwhite);
circle(x,y,40);
circle(x+30,y,30);
circle(x-40,y,30);
end;
procedure Kor (x: integer);
setpencolor(clbrown);
setbrushcolor(clbrown);
setpenwidth(3);
rectangle(x+50,250,x+150,270);
line(x+149,268,x+180,250);
line(x+180,250,x+149,250);
floodfill(x+155,255,clbrown);
line(x+100,245,x+180,245);
line(x+180,245,x+100,150);
line(x+100,150,x+100,245);
line(x+90,245,x+50,245);
line(x+50,245,x+90,170);
line(x+90,170,x+90,245);
floodfill(x+105,240,clwhite);
floodfill(x+85,235,clwhite);
setwindowsize(700,500);
lockdrawing;
xx:=-100;
repeat
clearwindow;
setpencolor(clblue);
setbrushcolor(clblue);
rectangle(0,0,700,250);
setpenwidth(5);
setpencolor(clskyblue);
arc(350,-1350,1700,180,0);
floodfill(350,300,clskyblue);
setpencolor(claqua);
arc(350,-1050,1500,180,0);
floodfill(350,400,claqua);
floodfill(350,470,clCream);
Obl(300,90);
Obl(450,150);
Obl(150,110);
setpencolor(clyellow);
setbrushcolor(clyellow);
circle(600,100,50);
Kor (xx);
sleep(1);
xx:=xx+1;
redraw;
until xx>1000;
end.
Объяснение:
получится кораблик:)
Если дан не радиус, вычислим радиус, а из него и всё остальное. Формулы для вычисления радиуса:
Обратные формулы:
Код (Python 3):
from math import sqrt, pi
id = int(input())
if id == 1:
R = float(input())
elif id == 2:
R = float(input()) / 2
elif id == 3:
R = float(input()) / 2 / pi
else:
R = sqrt(float(input()) / pi)
D = 2 * R
L = 2 * pi * R
S = pi * R**2
print(D, L, S)
print(R, L, S)
print(R, D, S)
print(R, D, L)
Пример ввода:
2
4
Пример вывода:
2.0 12.566370614359172 12.566370614359172
uses graphABC;
var xx: integer;
procedure Obl(x,y:integer);
begin
setpenwidth(1);
setpencolor(clwhite);
setbrushcolor(clwhite);
circle(x,y,40);
circle(x+30,y,30);
circle(x-40,y,30);
end;
procedure Kor (x: integer);
begin
setpencolor(clbrown);
setbrushcolor(clbrown);
setpenwidth(3);
rectangle(x+50,250,x+150,270);
line(x+149,268,x+180,250);
line(x+180,250,x+149,250);
floodfill(x+155,255,clbrown);
setpencolor(clwhite);
line(x+100,245,x+180,245);
line(x+180,245,x+100,150);
line(x+100,150,x+100,245);
line(x+90,245,x+50,245);
line(x+50,245,x+90,170);
line(x+90,170,x+90,245);
floodfill(x+105,240,clwhite);
floodfill(x+85,235,clwhite);
end;
begin
setwindowsize(700,500);
lockdrawing;
xx:=-100;
repeat
clearwindow;
setpencolor(clblue);
setbrushcolor(clblue);
rectangle(0,0,700,250);
setpenwidth(5);
setpencolor(clskyblue);
arc(350,-1350,1700,180,0);
floodfill(350,300,clskyblue);
setpencolor(claqua);
arc(350,-1050,1500,180,0);
floodfill(350,400,claqua);
floodfill(350,470,clCream);
Obl(300,90);
Obl(450,150);
Obl(150,110);
setpencolor(clyellow);
setbrushcolor(clyellow);
circle(600,100,50);
Kor (xx);
sleep(1);
xx:=xx+1;
redraw;
until xx>1000;
end.
Объяснение:
получится кораблик:)
Если дан не радиус, вычислим радиус, а из него и всё остальное. Формулы для вычисления радиуса:
Обратные формулы:
Код (Python 3):
from math import sqrt, pi
id = int(input())
if id == 1:
R = float(input())
elif id == 2:
R = float(input()) / 2
elif id == 3:
R = float(input()) / 2 / pi
else:
R = sqrt(float(input()) / pi)
D = 2 * R
L = 2 * pi * R
S = pi * R**2
if id == 1:
print(D, L, S)
elif id == 2:
print(R, L, S)
elif id == 3:
print(R, D, S)
else:
print(R, D, L)
Пример ввода:
2
4
Пример вывода:
2.0 12.566370614359172 12.566370614359172