Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб_3_метод_указания.doc
Скачиваний:
3
Добавлен:
09.11.2018
Размер:
393.73 Кб
Скачать

Функция вычисления хn через умножение

Функция stepen (x, n) используется для вычисления выражения b=2.7 k + (a+1) – k.

double stepen (double, unsigned); //прототип функции

int main ()

{

double a =7.1, b;

unsigned k=5;

b=stepen(2.7, k) +1/stepen(a+1, k); //вызов функции

cout << b << endl;

_getch();

return 0;

}

double stepen (double x, unsigned n) //определение функции

{

double y=1;

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

y=y*x;

return y;

}

Функция определения максимального и минимального из двух чисел

Функция maxmin, присваивающая параметру х большее из двух вещественных чисел, а параметру y – меньшее. С помощью данной функции необходимо перераспределить значения вещественных переменных а, b, c так, чтобы стало a >= b >= c.

void maxmin (double *, double *); //прототип функции

int main ()

{ double a, b, c;

cin >> a >> b >> c;

maxmin (&a, &b);

maxmin (&a, &c); //a получает максимальное значение

maxmin (&b, &c); //c получает максимальное значение

cout << a <<" " << b << " " << c << endl;

_getch();

return 0;

}

void maxmin (double *px, double *py) //определение функции

{double r;

if(*px <*py) { r =*px; *px=*py; *py=r;}

}

другой способ:

void maxmin (double &, double &); //прототип функции

int main ()

{ double a, b, c;

cin >> a >> b >> c;

maxmin (a ,b); maxmin (a, c); //a получает максимальное значение

maxmin (b, c); //c получает максимальное значение

cout << a <<" " << b << " " << c << endl;

_getch();

return 0;

}

void maxmin (double & x, double &y) //определение функции

{double r;

if(x < y) { r =x; x= y; y=r;}

}

Функция с параметром перечисляемого типа

Функция cont (s) определяет континент и используется для изменения значения логической переменной t на противоположное, если две страны находятся на разных континентах.

enum strana {Avstria, Egypet, Italia, Peru, Usa, Belarus};

enum continent {Amerika, Aphrika, Europe, Error};

continent cont (strana s); //прототип функции

int main ()

{strana x, y;

bool t=true;

int k1, k2;

cout << "bool=" << t << endl; //начальное значение t

cout << "Input strana (2): 0 – Avstria, 1 – Egypet, ...5 – Belarus\n";

cin >> k1 >> k2;

x= static_cast<strana> (k1);

y= static_cast<strana> (k2);

if ((cont(x)==3 )||( cont(y)==3)) {cout <<"strana : ?"; return 1 ;}

if (cont (x) !=cont (y)) t = ! t;

cout << "bool=" << t << endl ; //конечное значение t

_getch();

return 0 ;

}

continent cont (strana s) //определение функции

{continent con;

switch ( s) { case Avstria:

case Italia:

case Belarus: con = Europe; break;

case Egypet: con = Aphrika; break;

case Peru:

case Usa: con = Amerika; break;

default: con = Error;

}

return (con);

}

Функция, выделяющая целую и дробную части вещественного числа

int main()

{

void intfrac(float, float&, float&);

//прототип функции, передача параметров по ссылке

float number, intpart, fracpart;

//переменные intpart, fracpart можно не инициализировать,

//т.к. они предназначены для возврата значения из функции

do {

cout << "\nEnter a real number: \n ";

cin >> number; //ввод вещественного числа

intfrac (number, intpart, fracpart); //вызов функции, //неинициализированные переменные

// intpart, fracpart передаются для возврата результата

cout << "Integer part is " << intpart << endl;

cout << ", fraction part is " << fracpart << endl;

} while (number != 0.0); //завершение работы, если введено 0.0

_getch();

return 0;

}

//--------------------------------------------------------------

void intfrac(float n, float& intp, float& fracp) // определение функции

{

long temp = static_cast<long>(n); //приведение к типу long int для выделения целой части

intp = static_cast<float>(temp); //конвертирование обратно в тип float

fracp = n - intp; //нахождение дробной части числа

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]