Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота №5(Функції).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
59.73 Кб
Скачать

Приклади створювання проектів програм із застосуванням функцій користувача

Приклад 1 Обчислити значення виразу

Розв’язок. Усі три доданки заданої формули є схожі один з одним. Тому кожен з них можна записати за допомогою спільної формули: , де a – число, яке у першому доданку дорівнює 6, у другому – 13, а у третьому – 21.

Раціонально є створення функції, параметром якої буде дійсне число a і яка обчислюватиме значення цієї формули. У програмі функцію буде викликано тричі для кожного з доданків: 6, 13, 21.

Фрагмент програми в консольному режимі:

double f(double a)

{ return (sqrt(a)+a)/2; }

void main ()

{ double x=f(6)+f(13)+f(21);

cout<<x;

}

Фрагмент програми застосування функції та її виклику в основній програмі:

double f(double a)

{ return (sqrt(a)+a)/2; }

void __fastcall TForm1::Button1Click(TObject *Sender)

{ double x=f(6)+f(13)+f(21);

Edit1->Text=FormatFloat("0.00", x);

}

Приклад 2. Обчислити значення виразу

Розв’язок. У формулі чотири рази факторіал. Тому доречно обчислити значення факторіалу у функції і викликати його відповідно чотири рази для різних параметрів.

Фрагмент програми в консольному режимі:

long fact(int n)

{ long c=1;

for(int i=1; i<=n; i++) c*=i;

return c; }

void main()

{

double z=(2.0*fact(5)+3*fact(8))/(fact(6)+fact(4));

cout<<z;

}

Фрагмент програми застосування функції та її виклику в основній програмі:

long fact(int n)

{ long c=1;

for(int i=1; i<=n; i++) c*=i;

return c; }

void __fastcall TForm1::Button1Click(TObject *Sender)

{ double z=(2.0*fact(5)+3*fact(8))/(fact(6)+fact(4));

Edit1->Text=FloatToStr(z); }

Приклад 3 Знайти периметр трикутника, заданого координатами вершин.

Розв’язок. Для обчислення довжини сторони трикутника доцільно створити функцію і викликати її тричі для кожної зі сторін. Ця функція обчислюватиме довжини відрізку, заданого координатами точок, які він з’єднує, за формулою

Функція segment() має чотири параметри – координати обох кінців відрізка.

Результат функції – дійсне число (довжина відрізка).

Фрагмент програми в консольному режимі:

double segment(double x1,double y1,double x2,double y2)

{ return sqrt(pow(x2-x1,2)+pow(y2-y1,2));

}

void main()

{ double x1, y1, x2, y2, x3, y3, P;

cout<<"Перша вершина:\n";

cin>>x1; cin>>y1;

cout<<"Друга вершина:\n";

cin>>x2; cin>>y2;

cout<<"Третя вершина:\n";

cin>>x3; cin>>y3;

P=segment(x1,y1,x2,y2)+segment(x2,y2,x3,y3)+segment(x1,y1,x3,y3);

cout<<"Периметр дорівнює: "<<P<<endl;

}

Приклад 4 Написати три функції для обчислення периметра трикутника, чотирикутника й п'ятикутника відповідно.

Розв'язок. Завдання відрізняється від попереднього тим, що тип параметрів є однаковий, а кількість параметрів – різна. При викликанні функції обиратиметься той варіант, для якого збігається кількість фактичних і формальних параметрів.

Тексти функції та її виклику в основній програмі:

//Визначення всіх потрібних версій функції

//Версія функції для трикутника

int Perimetr(int Len1, int Len2, int Len3)

{ return Len1 + Len2 + Len3; }

//Версія функції для чотирикутника

int Perimetr(int Len1, intLen2, int Len3, int Len4)

{ return Len1 + Len2 + Len3 + Len4; }

//Версія функції для п 'ятикутника

int Perimetr(int Len1, int Len2, int Len3, int Len4, int Len5)

{ return Len1 + Len2 + Len3 + Len4 + Len5; }

int main()

{ int AB = 5, BC = 3, CA = 7;

int CD = 8, DA = 11, DE = 2, EA = 9;

cout << "Perimetr ABC = " << Perimetr(AB, BC, CA) << "\n";

cout << "Perimetr ABCD = " << Perimetr(AB,BC,CD,DA) << "\n";

cout << "Perimetr ABCDE = " << Perimetr(AB, BC, CD, DE, EA);

getch();

}