Сохраним отработанную программу (FILE\SAVE AS\*.bas).
Для построения графика нам потребуется соединить на плоскости уже имеющиеся шесть точек.
Откроем новую программу (FILE\NEW) и наберем следующий блок:
REM полет тела
REM построение координат
SCREEN 9:
x0 = 50
y0 = 300
x1 = 600
y1 = 100
REM координата Y
LINE (x0, y0)-(x0, y1), 12
LOCATE 18, 4: PRINT "10"
LOCATE 14, 4: PRINT "20"
LOCATE 10, 4: PRINT "30"
LINE (48, 245)-(52, 245), 11
LINE (48, 190)-(52, 190), 11
LINE (48, 135)-(52, 135), 11
REM координата X
LINE (x0, y0)-(x1, y0), 12
LOCATE 23, 19: PRINT "50"
LOCATE 23, 31: PRINT "100"
LOCATE 23, 44: PRINT "150"
LOCATE 23, 56: PRINT "200"
LOCATE 23, 69: PRINT "250"
LINE (150, 302)-(150, 298), 11
LINE (250, 302)-(250, 298), 11
LINE (350, 302)-(350, 298), 11
LINE (450, 302)-(450, 298), 11
LINE (550, 302)-(550, 298), 11
END
Ключевое слово (оператор) SCREEN 9 – обеспечивает перевод в графический режим работы программы. Для построения координат надо учитывать, что точка с координатами X=0, Y=0 лежит в верхнем левом углу экрана монитора. По-этому координаты X0, Y0 определяют начало координат, а X1, Y1- конец координат. Построение линии осуществляется оператором LINE- с указанием координат начала и конца линии и ее цвета (от 0 до 15). Строчка c ключевым словом LOCATE- означает расположить надпись в точке с указанными координатами. После запуска программы на экране появится сетка координат.
|
|
Объединим (EDIT\COPY, EDIT\PASTE) имеющийся блок с сохраненной программой, не значительно ее видоизменив.
REM полет тела
REM построение координат
SCREEN 9:
x0 = 50
y0 = 300
x1 = 600
y1 = 100
x2 = 50
y2 = 300
REM координата Y
LINE (x0, y0)-(x0, y1), 12
LOCATE 18, 4: PRINT "10"
LOCATE 14, 4: PRINT "20"
LOCATE 10, 4: PRINT "30"
LINE (48, 245)-(52, 245), 11
LINE (48, 190)-(52, 190), 11
LINE (48, 135)-(52, 135), 11
REM координата X
LINE (x0, y0)-(x1, y0), 12
LOCATE 23, 19: PRINT "50"
LOCATE 23, 31: PRINT "100"
LOCATE 23, 44: PRINT "150"
LOCATE 23, 56: PRINT "200"
LOCATE 23, 69: PRINT "250"
LINE (150, 302)-(150, 298), 11
LINE (250, 302)-(250, 298), 11
LINE (350, 302)-(350, 298), 11
LINE (450, 302)-(450, 298), 11
LINE (550, 302)-(550, 298), 11
REM полет
v = 50
g = 9.8
a = 30
f = a * 3.14 / 180
100 q = 1
t = t + q
s = v * t * COS(f) (2.1)
h = v * t * SIN(f) - (g * t ^ 2) / 2 (2.2)
LINE (x2, y2)-(x0 + s, y0 - h), 14
x2 = x0 + s
y2 = y0 - h
IF h < 0 THEN 200
GOTO 100
200 END
Веденные дополнительные значения X2, Y2 обеспечивают привязку координат к началу системы отчета. Программа выдаст график полета тела, который в данном случае не привязан к масштабу сетки координат. Устранить это неудобство можно в ведя множитель для Y координаты 5.5 (1:5,5), а для координаты X множитель 2 (1:2).
Заменив строчки 2.1 и 2.2 на выражения 2.3 и 2.4
s = v * t * COS(f) * 2 (2.3)
|
|
h = (v * t * SIN(f) - (g * t ^ 2) / 2) * 5.5 (2.4)
получим окончательную программу полета тела (Приложение 1). График полета представлен на рисунке 2.
Рис. 2
В данном случаи он не отражает истинной траектории полета тела, так как значение координат получены с шагом (дискретой) в 1 сек. Если значению q присвоить 0,5; 0,25; 0,1; и т.д., то график приблизится к идеальной кривой полета тела.
На кривизну графика так же влияет изменение скорости и начального угла полета тела.