Компания ALT Linux
Опубликован: 07.03.2015 | Доступ: свободный | Студентов: 2136 / 487 | Длительность: 24:14:00
Лекция 4:

Использование функций при программировании на C++

4.3 Возврат результата с помощью оператора return

Возврат результата из функции в вызывающую её функцию осуществляется оператором return выражение;

Работает оператор следующим образом. Вычисляется значение выражения, указанного после return, и преобразуется к типу возвращаемого функцией значения. Выполнение функции завершается, а вычисленное значение передаётся в вызывающую функцию. Любые операторы, следующие в функции за оператором return, игнорируются. Программа продолжает свою работу с оператора, следующего за оператором вызова данной функции.

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

Также функция может содержать несколько операторов return, если это определено потребностями алгоритма. Например, в следующей программе функция equation вычисляет корни квадратного уравнения. Если a = 0 (уравнение не является квадратным), то в программу передаётся значение равное -1, если дискриминант отрицательный (уравнение не имеет действительных корней), то 1, а если положительный, то вычисляются корни уравнения и в программу передаётся 0.

#include <iostream>
#include <math.h>
using namespace std;
int equation ( float a, float b, float c, float * x1, float * x2 )
{ float D=b*b-4*a*c;
	if ( a==0) return -1;
	else if (D<0) return 1;
		else
		{
		*x1=(-b+sqrt (D) ) /2/ a;
		*x2=(-b-sqrt (D) ) /2/ a;
		return 0;
		}
}
int main ( )
{
	float A, B, C, X1, X2; int P;
	cout<<" Enter the coefficients of the equation :"<<endl;
	cout<<"A="; cin >>A;
	cout<<"B="; cin >>B;
	cout<<"C="; cin >>C;
	P=equation ( A, B, C, &X1, &X2);
	if (P==-1) cout<<" input Error "<<endl;
	else if (P==1) cout<<" No real roots "<<endl;
		else cout<<" X1="<<X1<<" X2="<<X2<<endl;
	return 0;
}
		
Сергей Радыгин
Сергей Радыгин

Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке?

Тип приложения - не Qt,

Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.

 

Юрий Герко
Юрий Герко

Кому удалось собрать пример из раздела 13.2 Компоновка (Layouts)? Если создавать проект по изложенному алгоритму, автоматически не создается  файл mainwindow.cpp. Если создавать этот файл вручную и добавлять в проект, сборка не получается - компилятор сообщает об отсутствии класса MainWindow. Как правильно выполнить пример?