Нужно, после кнопки "построить" открывалась графическая форма ,где можно построить график. желательно с примером графика уже в коде.
Pascal |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
| uses FormsABC;//Включение форм
uses
System.Windows.Forms,
System.Drawing;
var//Включение форм
m0:= new Space (30);//отступ
m:= new TextLabel('Введите в поле высоту с которой бросают тело, если же тело бросают с земли оставьте поле "Введите начальную высоту: " нетронутым. ');//тест слева
m2:= new FlowBreak (15);//отступ
m3:= new TextLabel('Поле искомой величины оставить нетронутым для корректной работы программы.');//тест слева
m4:= new FlowBreak (15);//отступ
m5:= new TextLabel('РУКОВОДСВТВО ПО ИСПОЛЬЗОВАНИЮ ПО.');//тест слева
m6:= new FlowBreak (10);//отступ
m7:= new TextLabel ('Для нахождения угла к горизонту введите начальную скорость тела и время полета.');//тест слева
m8:=new FlowBreak(5);//отступ
m9:= new TextLabel ('Для нахождения времени полёта тела введите начальную скорость тела и угол к горизонту, под которым его бросают.');//тест слева
m10:= new FlowBreak(10);//отступ
m11:= new TextLabel ('Для нахождения начальной скорости тела введите время полёта тела и угол, под которым его бросают, к горизонту.');//тест слева
m54:= new FlowBreak(20);
a := new RealField('Введите начальную высоту: ');//тест слева
f1 := new FlowBreak;//отступ
b := new RealField('Введите угол к горизонту в градусах: ');//тест слева
f2 := new FlowBreak;//отступ
N := new RealField('Введите время полета:');//тест слева
f3 := new FlowBreak;//отступ
t1 := new RealField('Введите начальную скорость: ');//тест слева
f4 := new FlowBreak;//отступ
f5 := new FlowBreak(5);//отступ
s1 := new Space(5);//отступ
ok := new Button('Вычислить'); //создание кнопки
m67:= new FlowBreak(50);
m89:= new TextLabel('После нажатия на кнопку "Постороить" откроется графическая форма, где будет построен крафик траектории');
m55:= new FlowBreak(10);
m56:= new Space(5);
zx := new Button('Построить'); //кнопка открывающая грфическое окно
tb: TextBox; //подключение рабочей области справа.для вывода текста
procedure MyClick;//описание действия кнопки
begin
begin
var y0: real; //начальная координата
var g:=10;//ускорение свободного падения
y0:=a.Value;
if y0>0 then
tb.AddLine('Тело бросают с высоты: ') //первая строка вывода
else tb.AddLine('Тело бросают с земли. ');
var a0: real; //При незаданном угле к горизонту
a0:=b.Value;
if a0=0 then
begin
tb.AddLine('Цель программы: НАЙТИ УГОЛ К ГОРИЗОНТУ');//описание программы
tb.AddLine('Требование корректной для работы программы: Необходимо ввести начальную скорость и время полета тела'); //проверка
var t: real; //время полёта тела
t:=N.Value;
var v0: real; // начальная скорость
v0:= t1.Value; //присвоения значение скорости
var sin: real; //ввод синуса угла
sin:=((g*sqr(t))-(2*y0))/(2*v0*t); //фор-ла
var q:=arcsin(sin); //значение угла в радианах
var p:=((180*q) / pi); //перевод в градусы
tb.AddLine('## СЛЕДУЮЩЕЙ СТРОКОЙ ВЫЧИСЛЕН УГОЛ В ГРАДУСАХ: '); //словесное описание вывода
tb.AddLine (p.ToString); //вывод значения
var L:=round(v0*cos(q)*t); //расчет дальности
tb.AddLine('## СЛЕДУЮЩЕЙ СТРОКОЙ ВЫЧИСЛЕНА ДАЛЬНОСТЬ ПОЛЕТА В МЕТРАХ: '); //словесное описание вывода
tb.AddLine(round(L).ToString); //вывод
tb.AddLine(' '); //отступ
end;
var t7:real; //переменная для времени полета
t7:=N.Value; //присвоение значения
if t7=0 then
begin
tb.AddLine('Цель программы: НАЙТИ ВРЕМЯ ПОЛЁТА ТЕЛА.'); //описание программы
tb.AddLine('Требование для корректной работы программы: Необходимо ввести начальную скорость и угол к горизонту.'); //проверка
var v0: real; //начальная скорость
v0:=t1.Value; //присвоение значения начю скорости
var a3:real; //Угол к горизонту
a3:=b.Value; //начения для угла к горизонту
var rad: real; //Объявление переменной для угла
rad:=(a3*pi)/180; //Вычисление угла в радианах
var vremya: real; //объявление значения времени
vremya:=(2*v0*sin(rad))/g; //численное значение
tb.AddLine ('## СЛЕДУЮЩЕЙ СТРОКОЙ ВЫВОДИТСЯ ВРЕМЯ ПОЛЕТА ТЕЛА ПОД УГЛОМ К ГОРИЗОНТУ В СЕКУНДАХ: '); //словесное описание вывода
tb.AddLine (vremya.ToString); //вывод
tb.AddLine ('## СЛЕДУЮЩЕЙ СТРОКОЙ ВЫВОДИТСЯ ДАЛЬНОСТЬ ПОЛЁТА В МЕТРАХ: '); //словесное описание вывода
var L: real; //объявление длинны
L:=v0*cos(rad)*vremya; //расчёт длинны
tb.AddLine (round(L).ToString); //вывод длинны
tb.AddLine (' '); //отступ
end;
var v0: real; //начальная скорость
v0:=t1.Value; //присвоение значения скорости
if (v0=0) then
begin
tb.AddLine('Цель программы: НАЙТИ НАЧАЛЬНУЮ СКОРОСТЬ ТЕЛА'); //описание программы
tb.AddLine ('Требования для корректной работы программы: Необходимо ввести угол и время движения тела.'); //проверка
var alpha:real; //Угол к горизону
alpha:=b.Value; //Присвоение знчения
var rad: real; //переменная для радиан
rad:=(alpha*pi)/180; //перевод из градусов в радианы
var lol:real; //переменная для времени
lol:=N.Value; //присвоение значения
var scorost: real; //переменная скорости
scorost:=((g*sqr(lol)-2*y0)/(2*sin(rad)*lol)); //расчёт скорости
tb.AddLine('## СЛЕДУЮЩЕЙ СТРОКОЙ ВЫВОДИТСЯ НАЧАЛЬНАЯ СКОРОСТЬ ТЕЛА В М/С: '); //словесное описание вывода
tb.AddLine(scorost.ToString); //вывод
tb.AddLine ('## СЛЕДУЮЩЕЙ СТРОКОЙ ВЫВОДИТСЯ ДАЛЬНОСТЬ ПОЛЁТА В МЕТРАХ: '); //словесное описание вывода
var L:real; //объявление новой переменной
L:=scorost*cos(rad)*lol; //расчёт ее значения
tb.AddLine (round(L).ToString); //вывод
tb.AddLine(' ');//отступ
end;
end;
end;
procedure InitControls; //сборка рабочей области
begin
MainForm.Title := 'Ввод данных.'; //название формы
MainForm.SetSize(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); //размер
MainForm.CenterOnScreen; //местоположение
mainPanel.Dock := DockStyle.Left; //панель вода положение
mainPanel.Width := 300; //размер панели ввода
ok.Click += MyClick; //описание кнопки
ParentControl := MainForm; //область вывода
tb := new TextBox; //описание
tb.Dock := DockStyle.Fill; //по красоте
end;
begin
InitControls; //сборка
end. |
|