Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Программированию на С++.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
795.65 Кб
Скачать

Возвращение функцией значения

Когда выполнение функции завершается, она может возвратить значение программе, которая её вызвала. Если тип возвращаемого функцией значения не void, то она может входить в состав выражений или, в частном случае, располагаться в правой части оператора присваивания.

Рассмотрим пример, который демонстрирует применение функции, получающей значение веса в фунтах и возвращающей эквивалентное значение веса в килограммах.

#include <iostream>

#include <conio>

using namespace std;

float perevod(float f); // прототип функции

int main() {

float funt, kg;

cout << "\nVvedite ves v funtah: ";

cin >> funt;

kg = perevod(funt);

cout << "Ves v kilogrammah = " << kg << endl;

getch(); return 0;

}

//---------------функция переводит фунты в килограммы

float perevod(float f) {

float kilograms = 0.453592 * f; // можно просто return (0.453592 * f);

return kilograms;

}

Как видно из данного примера, тип возвращаемого значения указывается перед именем функции при объявлении и определении функции. В момент возвращения, с помощью оператора return, функцией значения происходит копирование значения переменной kilograms в переменную kg.

Количество аргументов у функции может быть сколь угодно большим, но возвращаемое значение всегда только одно. Эта особенность функций является препятствием в тех случаях, когда необходимо вернуть программе несколько значений, однако есть способы, позволяющие возвращать несколько значений при помощи функций.

Д/З

№1

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

Ответ

#include <iostream>

#include <conio>

using namespace std;

int sum(int s1, int s2);

int main() {

int a, b;

cout << "Vvedite 1-oe slagaemoe: "; cin >> a;

cout << "Vvedite 2-oe slagaemoe: "; cin >> b;

cout << endl;

cout << a << " + " << b << " = " << sum(a, b);

getch(); return 0;

}

int sum(int s1, int s2) {

return (s1 + s2);

}

Д/З №2

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

Ответ

#include <iostream>

#include <conio>

using namespace std;

float delenie(float d1, float d2); // или float delenie(float& d1, float& d2)

int main() {

float a, b;

cout << "\nVvedite delimoe: "; cin >> a;

cout << "Vvedite delitel: "; cin >> b;

cout << endl << a << " / " << b << " = " << delenie(a, b);

getch(); return 0;

}

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

float delenie(float d1, float d2) { // или float delenie(float& d1, float& d2)

float result;

if(d2 == 0) {

cout << "\nERROR: delenie na nol!";

result = -0;

}

else {

result = d1/d2;

}

return result;

}