Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2021 / OIT_lek_sem_29_09_2021.docx
Скачиваний:
2
Добавлен:
14.12.2023
Размер:
36 Кб
Скачать

Void main() {

int a, b, c, d;

cout << "input a,b,c:";

cin >> a >> b >> c;

d = MAX(MAX(a, b), c);

cout << "\nmax(a,b,c)=" << d;

}// конец функции main

Вспомогательная функция MAX определяет максимальное значение из двух аргументов: int x, int y. Для возвращения результата типа int используется оператор return x; или return y;. Обращение к функции MAX оформляется в основной функции main оператором присваивания d=MAX(MAX(a, b), c);, в правой части которого указывается имя функции MAX с двумя целочисленными аргументами: первый ‒ вызов функции MAX(a, b) (с возвращаемым результатом типа int), второй ‒ c.

В С++ для функций предусмотрен инструмент прототип, который сообщает компилятору, как выглядит интерфейс функции, т.е. имя, тип возвращаемого значения, типы и порядок следования аргументов, которые ожидает функция. В связи с этим код программы для примера 12 изменится следующим образом (пример 13).

Пример 13.

#include "stdafx.h"

#include <iostream>

using namespace std;

// прототип вспомогательной функции MAX

int MAX(int, int);

// основная функция main

Void main() {

int a, b, c, d;

cout << "input a,b,c:";

cin >> a >> b >> c;

d = MAX(MAX(a, b), c);

cout << "\nmax(a,b,c)=" << d;

}// конец функции main

// описание функции MAX

int MAX(int x, int y) {

if (x > y) return x;

else return y;

}// конец описания функции MAX

Прототип вспомогательной функции int MAX(int, int); объявляется до основной функции, при этом для формальных параметров указывается только их тип. Описание обязательно заканчивается точкой с запятой. Текст функции MAX следует после главной main.

5.2. Передача аргументов в функцию

В примерах 12 и 13 аргументы a, b, c функции MAX после её исполнения не получали новых значений. В этом случае можно говорить о передаче переменных в функцию по значению. Когда по смыслу алгоритма требуется изменять значения переменных-аргументов, применяется способ передачи аргументов по ссылке. Рассмотрим функцию swop обмена значениями между переменными (примеры 14 и 15).

Пример 14.

#include "stdafx.h"

#include <iostream>

using namespace std;

// описание вспомогательной функции swop

void swop(int &x, int &y) {

int t = x;

x = y;

y = t;

}// конец описания функции swop

// основная функция main

int main() {

int i = 5, j = -77;

cout << "\n before: i=" << i << " j=" << j;

swop(i, j);

cout << "\n after: i=" << i << " j=" << j;

return 0;

}// конец функции main

Результат исполнения программы следующий:

before: i=5 j= -77

after: i= -77 j=5

На передачу по ссылке указывает знак & (амперсанд). Переменные i и j, изменённые в процессе выполнения функции swop, сохраняют эти новые значения для дальнейшего использования в программе.

Пример 15.

#include "stdafx.h"

#include <iostream>

using namespace std;

// описание вспомогательной функции swop

void swop(int &x, int &y) {

int t = x;

x = y;

y = t;

}// конец описания функции swop

// основная функция main

Соседние файлы в папке Лекции 2021