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

Int fact(int n)// Функція, що обчислює n!

{

int p=1;

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

p=p*i;

return p;

}

Void dryk(int Cnm) /* Функція, що виводить на екран значення Cnm */

{

cout << "\nCnm= " << Cnm;

cout << "\n ";

}

Void main ( )

{

int n,m;

int Cnm;

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

cout << "\nВведіть n та m \n";

cin >>n;

cin >>m;

// Обчислення Cnm

Cnm=fact(n)/(fact(m)*fact(n-m));

dryk(Cnm);

}

Результат роботи програми:

В ведено значення n=5 та m=3

Примітка: зверніть увагу, що для виводу результату обчислення описана окрема функція dryk.

Приклад №2 (рекурсивне використання функції)

Програма знаходження з використанням рекурсії.

#include <iostream>

#include <windows.h>

#include<stdio.h>

using namespace std;

Int Factorial(int n) /*Рекурсивна функція,що обчислює n! */

{

int F;

if (N<=1) F=1; else F=Factorial(N-1)*N; /*Перевірка умови завершення рекурсивного процесу*/

return F;

}

Void main()

{

int k;

SetConsoleOutputCP(1251);

printf(" Введіть N \n" );

cin >>k;

printf("Факторіал(%i)=%i\n",k,Factorial(k));

}

Приклад №3 (використання адресації змінних та вказівників для повернення із функції значення двох змінних)

Програма знаходження за введеним із клавіатури радіусом об’єму кулі та площі її поверхні.

#include <iostream>

#include <math.h>

#include <windows.h>

using namespace std;

Void Vs(double &V, double &s, double r)

{

double Pi=3.1415;

V=4./3.*Pi*pow(r,3);

s=4.*Pi*pow(r,2);

}

Void main ( )

{ double v,s;

double r;

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

cout << "\nВведіть радіус \n";

cin >>r;

v=0;

s=0;

Vs(v,s,r);

cout << "\n Обєм=" << v<<"\t"<<"Площа поверхні="<<s;

cout << "\n ";

}

Результат роботи програми:

Введено значення r=2.0

Приклад №4 (використання вказівників для повернення із функції значення двох змінних)

Програма знаходження за введеним із клавіатури радіусом об’єму кулі та площі її поверхні.

#include <iostream>

#include <math.h>

#include <windows.h>

using namespace std;

Void Vs(double *V, double *s, double r)

{

double Pi=3.1415;

*v=4./3.*Pi*pow(r,3);

*s=4.*Pi*pow(r,2);

}

Void main ( )

{

double v,s;

double r;

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

cout << "\nВведіть радіус \n";

cin >>r;

v=0;

s=0;

Vs(&v,&s,r);

cout << "\n Обєм=" << v<<"\t"<<"Площа поверхні="<<s;

cout << "\n ";

}

Приклад №5 (використання перевантажених функцій та формальних параметрів по замовчуванню)

Обчислення степені дійсного числа a. Ціла степінь числа обчислює­ть­ся за допомогою рекурсії. Дійсна степінь числа (степінь задається у вигля­ді дробу k/m ) обчислюється за формулою

#include <iostream>

#include <math.h>

#include <windows.h>

using namespace std;

/*Обчислення цілої степені числа а за допомогою рекурсії*/

/* По замовчуванню число підноситься до другого степеня */

double stepin(float a, int n=2)

{

if (n==0) return(1.);

else

if (n<0) return(1./stepin(a,-n));

else

return(a*stepin(a,n-1));

}

//Обчислення значення числа а в степені k/m

float stepin( float a, int k, int m)

// степінь k/m.

{

if (a==0) return (0);

else

if (k==0) return(1);

else

if (a>0)

return(exp(float(k)/float(m)*log(a)));

else

if (m%2!=0)

return (-(exp(float(k)/float(m)*log(-a))));

if (m%2==0) cout<<"обчислити неможливо\n";

}