Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практичні по ТП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4 Мб
Скачать
☆

Ход работы

  1. Загрузите среду визуального программирования C++ Builder.

  2. Создайте форму, показанную на рис. 1.

  3. Введите описания классов и функций, которые будут использоваться в этой задаче.

  4. Для этого откройте окно текста программы и после строки TForm1 *Form1;вставьте программный код описания классов и функций, представленный в „Теоретических сведениях и анализе задачи" этой лабораторной. Сохраните проект и текст программы.

Полет ракеты

Математическая модель

Время

f(x)

Результаты вычислений

время

путь

скорость

ускорение

Точность

десятичных знаков

Полет ракеты

Математическая модель

x

f(x)

Результаты вычислений

время

путь

скорость

ускорение

Точность

десятичных знаков

Edit1

Edit2

Edit3

Edit4

2

Вычислить

Выход

5,88+1,25/0,13698*3

8,3*x*x*x-12/x/x+0,13

33,2563

305280,0719

4

Вычислить

Выход

Edit3

Edit3

27538,8724

1656,1617

4.Введите математические выражения у поля Edit1 и Edit2 и очистите поля результатов Edit3, Ed'rt4, Edrt5 и Ed6. Запрограммируйте кнопку "Выход". Обратите внимание на то, что в выражениях допускаются лишь операции "+", "-", "*", "/", действительные числа и переменная x, заданная маленькой латинской буквой. В выражении для x не используйте переменную x. Тестовый пример и результаты вычислений показанные на рис.2.

5.Запрограммируйте кнопку "Вычислить" таким образом:

void fastcall TForm1::Button1Click(TObject *Sender)

{

Telement*x =form(Edit1->Text);

Telement* f = form(Edit2->Text);

Telement* f1 = f -> differ();

Telement* f2 = f1 -> differ();

double X = x -> rezult();

f -> set_var( X);

f1 -> set_var( X );

f2 -> set_var( X);

intprecision = 15;

int digits = StrToFloat(ComboBox1->Text);

Edit3 -> Text = FloatToStrF(x -> rezult(), ffFixed, precision, digjts);

Edit4 -> Text = FloatToStrF(f -> rezult(), ffFixed, precision, digits);

Edit5 -> Text = FloatToStrF(f1 -> rezult(), ffFixed, precision, digits);

Edit6 -> Text = FloatToStrF(f2 -> rezult(), ffFixed, precision, digits);

}

6. Запрограммируйте функцию, которая будет выполняться после изменения числа y поле ComboBox1.

Для этого запрограммируйте событие Change объекта ComboBox1 так, чтобы при этом выполнялись действия для кнопки "Вычислить" (функция Button1Click):

void fastcall TForm1::ComboBox1Change(TObject *Sender)

{

Button1Click(Button1);

}

  1. Сохраните программу и убедитесь в ее работоспособности. Задания

  1. Вычислите значение третьей производной. Для этого введите в форму дополнительное поле для вывода третьей производной и измените программный код функции ButtoniClick.

  2. Введите дополнительную зависимость положения ракеты от еще одного параметра, - расстояния к Земле. Для этого используйте еще одну переменную (например, у) и измените программный код функции form().

  3. Обеспечьте вычисление тригонометрических функций sin(), cos() и нахождения их производных построенным интерпретатором математических выражений. Для этого постройте соответствующие производные классы Sin и Cos и заменит реализацию функции form().

  4. Получите аналитический вид производной математического выражения произвольного порядка. Для этого создайте функцию, обратную по своим действиям к функции form(), которая бы за древовидным графом выражения строила само выражение.

54