Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л_8. (1 пара) Функции+.doc
Скачиваний:
8
Добавлен:
05.11.2018
Размер:
177.66 Кб
Скачать

Пример 3. Написать функцию swap с использованием ссылок.

# include <iostream.h>

# include <conio.h>

void swap ( int &a, int &b) // функция использует ссылки на переменные

{

int x;

x=a; a = b; b = x; // переменные a и b меняются местами

}

void main ( void )

{

int m = 10, n = 20, &x = m, &y = n; // x, y - ссылки на переменные m, n

swap ( x, y ); // в функцию передаются ссылки на переменные m и n

cout << " m = " << m << " n = " << n;

getch();}

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

Если в качестве параметра функции используется массив, есть лишь один способ – это передача его по ссылке. Имя массива является указателем на его первый элемент, поэтому при вызове функции в качестве ее параметра достаточно указать имя массива.

Пример 4. Получить массив ci = ai + bi. Написать функции ввода и вывода элементов массивов.

#include <iostream.h>

#include <iomanip.h>

#include <conio.h>

void vvod_mas ( int x[100], int n ); /* прототип функции vvod_mas

х – имя массива, 100 – максимальное количество элементов, n –количество элементов в массиве х; сама функция описана после главной функции */

void rezultat ( int x[100], int n ) // описание функции вывода

{

int i;

for ( i = 0; i < n; i++ )

cout << setw(5) << x [i] ;

}

void main(void)

{

int i, kol ;

int a[100], b[ 100 ], c[100];

cout << “Vvedite kolich elementov: “ ;

cin >> kol;

cout << “ Vvedite 1-y massiv: \n”;

vvod_mas (a, kol ); //вызов функции ввода для массива <а>

cout << “ \nVvedite 2-y massiv: \n” ;

vvod_mas(b , kol); //вызов функции ввода для массива <b>

for ( i = 0; i < kol; i++ )

c[i] = a[i] + b[i];

cout << “\nOtvet: \n”;

rezultat( c , kol ); //вызов функции вывода для массива <c>

getch();}

void vvod_mas( int x [100], int n ) // описание функции ввода

{

int i;

for ( i = 0; i < n; i++ )

{

cout << “Vvedite “ << i << “element: “;

cin >> x[i];

}

}

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

Варианты заданий к лабораторной работе № 8

Вариант 1. Даны действительные числа S, T. Получить

где .

Вариант 2. Даны действительные числа S, T. Получить

, где .

Вариант 3. Дано действительное число Y. Получить

, где

Вариант 4. Даны действительные числа A, B, C. Получить

.

Вариант 5. Даны действительные числа S, T. Получить

,

где .

Вариант 6. Даны действительные числа x, y, z. Получить

.

Вариант 7. Даны действительные числа S, T, A0, …, A12. Получить

, где

Вариант 8. Даны действительные числа A0,…A6. Получить для x=1, 3, 4 значения

, где

Вариант 9. Даны натуральные числа m, n, целые числа А1, ..., An ; B1, ..., Bm; C1, ..., C10. Получить:

.

Вариант 10. Даны натуральные числа k, n, m, действительные числа Х1,...,Xk, Y1, ...,Yn , Z1,...,Zm. Получить:

t=max(y1, …, yn)+max(z1, … zm)+1+(max(x1, … xk))2.

Вариант 11.Даны действительные числа S,T. Получить

H2(S,T) + MIN (H(S-T,T), H2(S-T, S+T), H(1,1) ), где

H(A,B)=

Вариант 12. Даны два действительных числа. Написать функцию, которая сравнивает их и меняет местами, если квадрат первого числа больше квадрата второго числа.

Вариант 13. Даны три действительных числа x, y, z. Получить , где .

Вариант 14. Даны действительные числа x, y, натуральное число b. Получить:

, где .

Вариант 15. Даны действительные числа x, y, z. Получить:

s = f(2x, y) + f(x, z-5) + f(xy,3 z), где .