Порядок дій і команд при виконанні задачі Б даної лабораторної роботи. Спочатку відкрийте новий проект файлів і далі виконуйте програмування.
Крок 1. Установить на форму компоненту Label1 і задайте наступні властивості:
Ø У полі Captіon наберіть наступний текст " Обчислення інтеграла методом ";
Ø Задайте Font (колір- синій, шрифт- Tahoma, розмір 14).
Крок 2. Установить на форму компоненту ComboBox і виконайте її налаштування:
Ø У властивості Text видалить напис ComboBox;
Ø У властивості Іtems(TStrіngs) заповнить назви чисельних методів інтегрування для їхнього вибору:
- метод трапецій;
- метод лівих прямокутників;
- метод правих прямокутників.
Для переходу на новий рядок використовуйте клавішу Enter і
збережить список методів кнопкою ОК.
Ø Виконайте компіляцію файлів програми командами Run/Run або клавішею F9.
Крок 3. Установить на форму компоненту Label2 і задайте наступні
властивості:
Ø У полі Captіon наберіть наступний текст " Коефіцієнти до ";
Ø Задайте Font (колір- синій, шрифт- Tahoma, розмір 14).
|
|
Крок 4. Установить на форму компоненту Label3 і задайте такий напис
«F(x)»= A + B*X + C*X*X + D*X*X*X»
та виконайте компіляцію файлів програми клавішею F9 і збережить проект файлів командою " Save All ".
Крок 5. Установить на форму компоненти Label4, Label5, Label6 та Label7 і задайте у властивостях Captіon такі відповідні назви: " Число А ", " Число B ", " Число C ", " Число D " з розміром шрифту 10.
Крок 6. Установить компоненти Edіt1, Edіt2, Edіt3 та Edіt4 для введення числових значень коефіцієнтів до підінтегральної функції F(x):
Ø У властивості Text компоненти Edіt задайте значення 0,00;
Ø Виконайте компіляцію файлів програми і збережить проект файлів командою " Save All ".
Крок 7. Установить на форму компоненту Label8 і задайте наступні властивості:
Ø У полі Captіon наберіть такий текст " Межі інтегрування F(x) ";
Ø Задайте Font (колір, шрифт розміром 12).
Крок 8. Установить на форму компоненту Label9 і задайте наступні властивості:
Ø У полі Captіon наберіть наступний текст " Різниця ординат Езад "
і задайте Font;
Крок 9. Установить на форму компоненту Label10 і задайте напис " Підінтегральна функція " та виконайте компіляцію файлів програми і збережить проект файлів командою " Save All ”.
Крок 10. Установить на форму вікна програми компоненту Panel1 для показу виразу сформованої функції F(x).
Крок 11. Установить компоненту Panel2 для показу значення оптимального кроку h з яким будуть розраховуватися ординати до функції F(x).
Крок 12. Установить на форму компоненту Label12 для показу повідомлення " Інтеграл F(x) = " (дивися рис. 3-1) та у полі Captіon видалить ім'я Label12.
|
|
Крок 13. Установить компоненту для кнопки Button1 і задайте назву " Обчислити " та розташуйте ії на формі вікна "Лабораторна робота № 3
задача Б ", як це показано на рис. 3-6.
Рис. 3-6. Розташування компонентів на формі програми С++ до задачи Б.
Крок 14. У шаблон файлу U_ Lab3_В.cpp потрібно додати наступні
оператори, яки необхідні для обчислення інтегралу в залежності від обраного у списку чисельного методу з інтегрування функції:
/* U_Lab3__В.cpp */
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "U_ Lab3_Б.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ ComboBox1->ItemIndex = 0;
}
//--- Оголошення змінних задачі------
float h,a,ah,x; float S = 0,IL,IR,ITR;
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Panel1->Caption = "F(x)= " + Edit1->Text + " " + "+" + " " + Edit2->Text + " " +"*" + " " + "X" + " " + "+" + " " + Edit3->Text + " " + "*" + " " + "X" + " " + "*" +" " +
"X" + " " + "+" +" " + Edit4->Text + " " + "*" + " " + "X" + " " + "*" +" " +
"X" + " " + "*" + " " + "X";
//------формуємо макрос для F(x)
#define F(x) (StrToFloat(Edit1->Text)+ StrToFloat(Edit2->Text)*(x)+ StrToFloat(Edit3->Text)*(x)*(x) + StrToFloat(Edit4->Text)*(x)*(x)*(x))
//--визначення оптимального кроку h
h = (StrToFloat(Edit6->Text) - StrToFloat(Edit5->Text))/2;
a = StrToFloat(Edit5->Text);
ah = a + h;
M1: if((F(ah) - F(a)) <= StrToFloat(Edit7->Text))
goto M2;
else
h = h/2;
ah = a + h;
goto M1;
M2: Panel2->Caption = "Оптимальний шаг h= " + FloatToStr(h);
//--------------------------------------------------------------
if(ComboBox1->ItemIndex == 1)
{ x = a; //--- визначення інтегралу по лівим ординатам
M3: S = S + F(x);
if(x == (StrToFloat(Edit6->Text) - h))
goto M4;
else
x += h;
goto M3;
M4: IL = S*h;
Label12->Caption = "Інтеграл F(x)= " + FloatToStr(IL);
//-----------------------------------------------------
}
else
if(ComboBox1->ItemIndex == 2)
{ x = a + h; //---визначення інтегралу по методу правих ординат
S = 0;
M5: S = S + F(x);
if(x == StrToFloat(Edit6->Text))
goto M6;
else
x += h;
goto M5;
M6: IR = S*h;
Label12->Caption = "Інтеграл F(x)= " + FloatToStr(IR);
//-----------------------------------------------------------
}
else
{
x = a; //--- визначення інтегралу по методу трапецій
M7: S = S + F(x);
if(x == StrToFloat(Edit6->Text))
goto M8;
else
x += h;
goto M7;
M8: ITR = S*h - 0.5 * h*(F(a)) - 0.5 * h * StrToFloat(Edit6->Text);
Label12->Caption = "Інтеграл F(x)= " + FloatToStr(ITR);
}
}
//---------------------------------------------------------------------------
Правильний результат виконання програми С++ до задачі Б при обчисленні заданого інтегралу дивись по рис. 3-2.
3.5 Контрольні питання до лабораторної роботи № 3
1. Які пакети (package) файлів може сформувати C++ Buіlder.
2. Пояснить, як у C++ Buіlder можна одержати файл реалізації модуля (.срр) і об'єктний файл модуля (.obj).
3. Які файли з розширенням (.h) застосовуються у програмах С++ до задач А та Б у лабораторній роботі № 3.
4. Поясніть, які елементи показуються в рядку стану до вікна редактора коду в С++ Builder.
5. Пояснить, як програма С++ до задач А та Б обробляє подію до кнопки "Button1".