§ 7. Понятие вспомогательного алгоритма
7.2. Функции, возвращающие числовой результат
Большинство функций из библиотеки cmath, которые использовались ранее, возвращают в качестве результата число. Для того чтобы функция могла возвращать значение, используется оператор return, после которого указывается возвращаемое значение. Возвращаемым значением может быть константа (значение 0 у функции main), переменная (в примере 7.2 это функции plos_treug и kol_cifr) или выражение (функция pi()в примере 7.2). Тип возвращаемого значения должен совпадать с типом результата в описании функции[1]. Пример 7.4. Для функции «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mstyle mathsize=¨16px¨»«mrow»«mi»f«/mi»«mo»(«/mo»«mi»x«/mi»«mo»)«/mo»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfrac»«msqrt»«mfenced open=¨|¨ close=¨|¨»«mrow»«mi»x«/mi»«mo»§#160;«/mo»«mo»-«/mo»«mo»§#160;«/mo»«mn»2«/mn»«/mrow»«/mfenced»«/msqrt»«mrow»«msup»«mi»x«/mi»«mn»2«/mn»«/msup»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«mn»3«/mn»«/mrow»«/mfrac»«/mrow»«/mstyle»«/math» вычислить и вывести: «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»f«/mi»«mfenced»«mrow»«mo»§#8211;«/mo»«mn»2«/mn»«mo».«/mo»«mn»4«/mn»«/mrow»«/mfenced»«mo»,«/mo»«mo»§#160;«/mo»«mo»§#160;«/mo»«mi»f«/mi»«mo»(«/mo»«mi»y«/mi»«mo»)«/mo»«mo»,«/mo»«mo»§#160;«/mo»«mo»§#160;«/mo»«mi»f«/mi»«mo»(«/mo»«mi»f«/mi»«mo»(«/mo»«mn»3«/mn»«mo».«/mo»«mn»7«/mn»«mo»§#160;«/mo»«mo»*«/mo»«mo»§#160;«/mo»«mi»z«/mi»«mo»)«/mo»«mo»)«/mo»«/math». Значения переменных y и z вводятся. Этапы выполнения задания I. Исходные данные: числа y, z. II. Результат: f1, f2, f3 — значения функции для указанных значений аргументов. III. Алгоритм решения задачи. 1. Ввод исходных данных. VI. Описание переменных: y, z, f1, f2, f3 – double. Рассмотрим, как выполняется программа. При вызове функции значение фактического параметра передается формальному и происходит вычисление с этим значением. В первом случае фактическим параметром является константа –2.4. Поэтому переменная x получит значение –2.4, переменная «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»t«/mi»«mn»1«/mn»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«msqrt»«mfenced open=¨|¨ close=¨|¨»«mrow»«mo»§#8211;«/mo»«mn»2«/mn»«mo».«/mo»«mn»4«/mn»«mo»§#160;«/mo»«mo»§#8211;«/mo»«mo»§#160;«/mo»«mn»2«/mn»«/mrow»«/mfenced»«/msqrt»«mo»§#160;«/mo»«mo»§#8776;«/mo»«mo»§#160;«/mo»«mn»2«/mn»«mo».«/mo»«mn»097«/mn»«mo»,«/mo»«/math» переменная «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»t«/mi»«mn»2«/mn»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«msup»«mi»x«/mi»«mn»2«/mn»«/msup»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«mn»3«/mn»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mn»8«/mn»«mo».«/mo»«mn»76«/mn»«mo».«/mo»«/math» Функция вернет значение «math style=¨font-family:Arial¨ xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mfrac»«mrow»«mn»2«/mn»«mo».«/mo»«mn»097«/mn»«/mrow»«mrow»«mn»8«/mn»«mo».«/mo»«mn»76«/mn»«/mrow»«/mfrac»«mo»§#160;«/mo»«mo»§#8776;«/mo»«mo»§#160;«/mo»«mn»0«/mn»«mo».«/mo»«mn»239«/mn»«mo»,«/mo»«/math» которое и будет присвоено переменной f. Во втором случае переменной x будет передано значение переменной y, которое ввели с клавиатуры, и затем будут выполнены вычисления. В третьем случае вызов функции осуществляется дважды: сначала для значения 3.7 * z, а затем аргументом функции станет значение f(3.7 * z). Пример 7.5. Даны три числа. Найти попарные произведения этих чисел. Написать программу, которая вычислит минимальное и максимальное из этих значений. Этапы выполнения задания I. Исходные данные: числа x, y, z. II. Результат: minpr, maxpr (минимальное и максимальное произведения). III. Алгоритм решения задачи. 1. Ввод исходных данных. IV.Описание переменных: все переменные в программе имеют тип int. Пример 7.6. Выпуклый четырехугольник задан координатами своих вершин. Написать программу, которая найдет периметр и площадь четырехугольника. Вычисление длины отрезка и площади треугольника оформить в виде подпрограмм. Этапы выполнения задания I. Исходные данные: x1, y1, x2, y2, x3, y3, x4, y4 (координаты вершин). II. Результат: P и S — периметр и площадь четырехугольника. III. Алгоритм решения задачи. 1. Ввод исходных данных.
[1] При несовпадении типов происходит попытка преобразования типов. Если это невозможно, то компилятор выдаст ошибку. |
Значение 0, которое возвращает функция main, говорит об отсутствии ошибок при выполнении программы. Это означает, что все команды, которые находятся в программе до этой строки, выполнились успешно. Команда return 0; может быть использована для прерывания работы функции. Никакие команды не могут быть выполнены после нее. Об успешном выполнении программы свидетельствует сообщение «Process terminated with status 0» в окне Build log. Если работа программы была прервана (например, пользователь закрыл консольное окно до того, как программа закончила работу), то в этом окне будет сообщение об ошибке: «Process terminated with status −1073741510» Пример 7.4. V. Программа:
VI. Тестирование. VII. Анализ результата. Проверить правильность вычислений можно с помощью калькулятора. Пример 7.5. V. Программа:
VI. Тестирование. Пример 7.6. V. Программа:
VI. Тестирование. VII. Анализ результата. Обратите внимание на имена переменных в программе. Фактические и формальные параметры принято называть разными именами. |