Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Программируем функцию для вычисления коэффициентов разложения




 

float C_k_n (int n, int k)

{

float C;

 

C= (float) Factorial (n)/ (Factorial (k)*Factorial (n-k));

/ /Обратите внимание на приведение результата к типу float.

return C;

}

 

Программируем функцию для вычисления бинома.

Для возведения в степень используем библиотечную функцию pow ().Не забудьте включить файл прототипов функций математической библиотеки среды программирования.

 

#include <math.h>

// вычисляем бином Ньютона

float Binom (float a, float b, int n)

{

float summa;

 

summa =0.0;

for (int k = 0; k < n +1; k ++)

summa = summa+ pow (a, n-k)* C_k_n(n,k)*pow(b, k);

 

return summa;

}

 

Компилируем программу, для того чтобы убедиться, что ошибок нет.

 

9. Открываем h-файл модуля «Function»

 

 

и помещаем в него прототипы созданных нами функций

 

int Factorial (int n);

float C_k_n (int n, int k);

float Binom (float a, float b, int n);

 

10. Помещаем на форму компоненты «Panel» и «Memo»

и создаем обработчик события «Panel1Click»

 

11. Вставляем из модуля "Function.cpp" строку #include "Function.h в модуль «Main.cpp

 

Создаем программный код в обработчике события

void __fastcall TForm1::Panel1Click(TObject *Sender)

{

float B_N, a, b;

int n;

String S;

 

Memo1->Clear ();

a = StrToFloat (Edit1->Text);

b = StrToFloat (Edit2->Text);

n = StrToInt (Edit3->Text);

 

S.printf ("Проверка = %f", pow (a+b, n));

Memo1->Lines ->Add(S);

 

B_N = Binom (a, b, n);

S.printf ("Вычислили = %f", B_N);

Memo1->Lines ->Add(S);

 

return;

}

 

Компилируем программу и получаем такой результат

 

Усложним программу, добавив функцию для проверки правильности введенных данных в поля a, b, n.

Для этого из модуля main.сpp в модуль "Function.cpp" строку #include "Function.h"

 

 

 

Создаем такой код для проверки данных

 

int Test_value ()

{

try

{

StrToFloat (Form1-> Edit1->Text);

}

 

catch (...)

{

Form1->Edit1->Focused ();

ShowMessage ("Ошибка в данных");

return -1;

}

 

try

{

StrToFloat (Form1-> Edit2->Text);

}

 

catch (...)

{

Form1->Edit2->Focused ();

ShowMessage ("Ошибка в данных");

return -1;

}

 

try

{

StrToFloat (Form1-> Edit3->Text);

}

 

catch (...)

{

Form1->Edit3->Focused ();

ShowMessage ("Ошибка в данных");

return -1;

}

 

return 0;

}

 

Функция int Test_value () возвращает ноль при условии, что поля ввода не содержат посторонних символов. Если имеется ошибка ввода, то курсор устанавливается в поле ввода.

15.В файл "Function.h" добавляем прототип функции

 

int Test_value ();

 

16.В обработчик события «Panel1Click» вставляем строку

 

if (Test_value ()) return;

 

 

1. Для того чтобы нести программу на «продажу», не забудьте убрать «галку» в поле «Use dinamic RTL»

 

и в поле «Runtime packages«

 

Задание

1. Ответьте на вопрос, что в этой программе не учтено, и как можно ее улучшить?

2. Выведите на Memo коэффициенты разложения и убедитесь, что и Паскаль был прав с треугольником.

3. Разработайте программу, в которой нужно решить подобную задачу. Примеры из курса элементарной математики найти просто!

 





Поделиться с друзьями:


Дата добавления: 2016-03-28; Мы поможем в написании ваших работ!; просмотров: 310 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. © Аристотель
==> читать все изречения...

2217 - | 2173 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.