- •«Национальный исследовательский
- •Т.Е. Мамонова Лабораторная работа № 8
- •220700 – «Автоматизация технологических процессов и производств».
- •Лабораторная работа № 8
- •Теоретическая часть
- •Пример 3. Написать функцию swap с использованием ссылок.
- •Варианты заданий к лабораторной работе № 8
- •Содержание отчета
- •Список литературы
- •220700 – «Автоматизация технологических процессов и производств». Отпечатано в Издательстве тпу в полном соответствии с качеством предоставляемого оригинал-макета
- •634034, Г. Томск, пр. Ленина, 30
Пример 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), где .