Програмування задачі Б

 

Порядок дій і команд при виконанні задачі Б даної лабораторної роботи. Спочатку відкрийте новий проект файлів і далі виконуйте програмування.

Крок 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".

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: