import math
x = float(input('Введите аргумент Х точки: '))
if -3 <= x < -1:
y = -x + 1
elif -1 <= x < 1:
y = 0
elif 1 <= x < 5:
y = math.sqrt(4 - (x-3)*(x-3))
elif 5 <= x < 7:
y = -(x/2)+2.5
else:
print('Х вне допустимого диапазона')
input()
exit()
print('Точка с координатами %2.2f ; %2.2f'%(x, y))
А это так, для интереса и наглядности:
import turtle, math
def line(x1,y1,x2,y2):
turtle.pu()
turtle.goto(x1,y1)
turtle.pd()
turtle.goto(x2,y2)
turtle.title('График функции')
turtle.setup(800,400)
turtle.setworldcoordinates(-4,-2,8,4)
turtle.hideturtle()
line(-4,0,8,0)
line(0,-2,0,4)
for x in range(-3,8):
line(x,-0.1, x, 0.1)
for y in range(-1, 4):
line(-0.1,y,0.1,y)
turtle.pensize(2)
line(-3,2,-1,0)
line(-1,0,1,0)
x = 1
while x < 5:
turtle.goto(x, math.sqrt(4 - (x-3)*(x-3)))
x += 0.01
line(5,0,7,-1)
turtle.pencolor('red')
y1 = '%2.2f'%y
print('y = %2.2f'%y)
turtle.goto(x,y)
turtle.dot(7, 'red')
turtle.pensize(1)
turtle.pencolor('green')
line(x,y,0,y)
line(x,y,x,0)
turtle.goto(0.5,3.5)
turtle.write('Точка ('+str(x)+'; '+y1+')', font=('Arial',10))
turtle.exitonclick()
Также известна формула для определения времени движения тела до его падения (т.е. возвращения на исходную высоту, которая совпадает с осью X):
Считаем, что в начальных условиях задается количество точек, в которых нужно найти значения пути пройденного в осях координат.
uses Crt;
const
g=9.81;
pi=3.14;
var
alpha,ar,v0,t,x,y,tmax,ht,v0x,v0y:real;
n:integer;
begin
ClrScr;
Write('Vvedite alpha, v0: ');
Read(alpha,v0);
Write('Chislo tochek= ');
Read(n);
ar:=pi*alpha/180;
v0x:=v0*cos(ar);
v0y:=v0*sin(ar);
tmax:=2*v0*sin(ar)/g;
ht:=tmax/n;
t:=ht;
while t<=tmax do
begin
x:=v0x*t; y:=v0y*t-g*sqr(t)/2;
Writeln('t=',t:6:3,' x=',x:8:3,' y=',y:8:3);
t:=t+ht
end;
ReadKey
end.
Тестовое решение:
Vvedite alpha, v0: 45 126.4
Chislo tochek= 10
t= 1.821 x= 162.864 y= 146.461
t= 3.643 x= 325.728 y= 260.375
t= 5.464 x= 488.592 y= 341.742
t= 7.286 x= 651.456 y= 390.562
t= 9.107 x= 814.320 y= 406.836
t=10.929 x= 977.184 y= 390.562
t=12.750 x=1140.048 y= 341.742
t=14.572 x=1302.912 y= 260.375
t=16.393 x=1465.776 y= 146.461
t=18.215 x=1628.640 y= 0.000
import math
x = float(input('Введите аргумент Х точки: '))
if -3 <= x < -1:
y = -x + 1
elif -1 <= x < 1:
y = 0
elif 1 <= x < 5:
y = math.sqrt(4 - (x-3)*(x-3))
elif 5 <= x < 7:
y = -(x/2)+2.5
else:
print('Х вне допустимого диапазона')
input()
exit()
print('Точка с координатами %2.2f ; %2.2f'%(x, y))
А это так, для интереса и наглядности:
import turtle, math
def line(x1,y1,x2,y2):
turtle.pu()
turtle.goto(x1,y1)
turtle.pd()
turtle.goto(x2,y2)
turtle.pu()
turtle.title('График функции')
turtle.setup(800,400)
turtle.setworldcoordinates(-4,-2,8,4)
turtle.hideturtle()
line(-4,0,8,0)
line(0,-2,0,4)
for x in range(-3,8):
line(x,-0.1, x, 0.1)
for y in range(-1, 4):
line(-0.1,y,0.1,y)
turtle.pensize(2)
line(-3,2,-1,0)
line(-1,0,1,0)
turtle.pd()
x = 1
while x < 5:
turtle.goto(x, math.sqrt(4 - (x-3)*(x-3)))
x += 0.01
line(5,0,7,-1)
x = float(input('Введите аргумент Х точки: '))
turtle.pencolor('red')
if -3 <= x < -1:
y = -x + 1
elif -1 <= x < 1:
y = 0
elif 1 <= x < 5:
y = math.sqrt(4 - (x-3)*(x-3))
elif 5 <= x < 7:
y = -(x/2)+2.5
else:
print('Х вне допустимого диапазона')
input()
exit()
y1 = '%2.2f'%y
print('y = %2.2f'%y)
turtle.pu()
turtle.goto(x,y)
turtle.dot(7, 'red')
turtle.pensize(1)
turtle.pencolor('green')
line(x,y,0,y)
line(x,y,x,0)
turtle.goto(0.5,3.5)
turtle.write('Точка ('+str(x)+'; '+y1+')', font=('Arial',10))
turtle.exitonclick()