Форум программистов, компьютерный форум CyberForum.ru

Что означает запись в скобках и что возвращает return - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.68
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
10.07.2012, 23:36     Что означает запись в скобках и что возвращает return #1
Всем привет!
Начал читать книгу BecomeAnXcoder и тут появился вопрос.
В пример приведен такой код
C++
1
2
3
4
5
6
circleArea(float theRadius) //(1)
{
float theArea;
theArea = 3.14159 * theRadius * theRadius;
return theArea; //(2)
}
Вопрос такой, что означает запись в скобках (1) и куда и что возвращает параметр return (2)?

P.S Прошу не грузить терминами, т.к C++ я только начал изучать и мой уровень знаний пока крайне низок...)
Заранее спасибо за ответ)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2012, 23:36     Что означает запись в скобках и что возвращает return
Посмотрите здесь:

C++ что означает такая запись c*=a%10
C++ Подскажите, что означает следующая запись
C++ Что означает запись ?
C++ C++ текстовые файлы (что означает запись !=NULL ?)
Что означает запись int **a C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
10.07.2012, 23:46     Что означает запись в скобках и что возвращает return #2
dvijok,

1) ты передаешь туда некое значение, с которым внутри функции что-то происходит
2) параметр 2 возвращает значение туда, откуда вызвали

например float abc = circleArea(2.5);

в данном случае значение вернется в переменную abc.


зы:
у этой функции должен быть возвращаемый тип:

C++
1
float circleArea(float theRadius)
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
10.07.2012, 23:49     Что означает запись в скобках и что возвращает return #3
Запись в скобках - аргумент функции. Она принимает некое значение типа float (вещественное число), в данном случае - радиус круга, и выдаёт в ответ его площадь, тоже число типа float. В этой строке допущена грубая ошибка, не указан тип значения, возвращаемого функцией, должно быть так:
C++
1
float CircleArea (float theRadius)
. Значение, указанное в операторе return, будет возвращено в результате вызова функции:
C++
1
2
float area;
area = CircleArea(2.5); // в переменную area занесено значение площади круга с радиусом 2.5
Здесь происходит вызов функции с подстановкой числа 2.5 в качестве значения theRadius, и получившееся в итоге в переменной theArea число передаётся с помощью оператора return в место вызова. То есть, вызов функции порождает некоторое ответное значение, которое мы уже можем использовать как захотим. Здесь мы захотели поместить его в переменную area.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
10.07.2012, 23:49     Что означает запись в скобках и что возвращает return #4
Коментарии (1) и (2) наверное по смыслу в книге разясняются
enk
 Аватар для enk
45 / 44 / 7
Регистрация: 16.06.2012
Сообщений: 177
10.07.2012, 23:52     Что означает запись в скобках и что возвращает return #5
Цитата Сообщение от dvijok Посмотреть сообщение
Всем привет!
Начал читать книгу BecomeAnXcoder и тут появился вопрос.
В пример приведен такой код
C++
1
2
3
4
5
6
circleArea(float theRadius) //(1)
{
float theArea;
theArea = 3.14159 * theRadius * theRadius;
return theArea; //(2)
}
Вопрос такой, что означает запись в скобках (1) и куда и что возвращает параметр return (2)?

P.S Прошу не грузить терминами, т.к C++ я только начал изучать и мой уровень знаний пока крайне низок...)
Заранее спасибо за ответ)
1) Это означает, что функция может принимать только один аргумент. Тип этого значения - float.
2) return возвращает значение переменной theArea туда, где была вызвана функция.
пример:
C++
1
2
float x = 10.5;
float y = circleArea(float);
Переменной y присвоится значение, которое вернула функция (в данном случае 346,3602975).

Подробнее - http://shatalov.su/ru/articles/cpp_p...function_0.php
p.s. советую для начала взять книжку именно по C++ (Страуструп, Хортон например).
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
11.07.2012, 13:23  [ТС]     Что означает запись в скобках и что возвращает return #6
Ну, это я вроде понял...
Но что тогда значит это:

C++
1
2
3
4
5
6
7
8
int x = 5;
int y = 4;
int z;
 
sum(0,1);     // 1
sum(x,2);     // 7
sum(x,y);     // 9
z = sum(x,y); // z = 9
В этом случае в sum складываются два числа в скобках?
А в случаях когда в скобках идут не цифры, а слова (без int, float и пр.)?
_____________________________________
Добавлено через 2 минуты
[QUOTE=enk;3256421]
C++
1
2
float x = 10.5;
float y = circleArea(float);
Переменной y присвоится значение, которое вернула функция (в данном случае 346,3602975).
Не понял, откуда взялось число 346,3602975? И почему функция вернула значение без оператора return?
Lel'ka
8 / 8 / 2
Регистрация: 10.07.2012
Сообщений: 38
11.07.2012, 13:43     Что означает запись в скобках и что возвращает return #7
dvijok, Советую книгу Керниган, Ричи. Язык C
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
11.07.2012, 13:55     Что означает запись в скобках и что возвращает return #8
а где и как продекларирована sum()?
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
11.07.2012, 14:14  [ТС]     Что означает запись в скобках и что возвращает return #9
Книги я конечно почитаю, но все же прошу ответить на мой вопрос...
Vega251
288 / 91 / 3
Регистрация: 07.09.2011
Сообщений: 473
Записей в блоге: 2
11.07.2012, 14:21     Что означает запись в скобках и что возвращает return #10
Нужно смотреть сигнатуру функции. Если формальный параметр указан с типом char* или string, то можно использовать строку. Если нужно число, то указывается соответствующий тип. С язык строго типизированный. Однако перегрузка функций может творить чудеса.
Я веду цикл уроков по С++ на своем блоге. Если нужно, скину в личку. В одном из уроков я как раз подробно разжевал использование функций. С учетом того, что даже мой двоюродный брат-тугодум все понял, то можно считать, что там написано все подробно.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
11.07.2012, 14:28     Что означает запись в скобках и что возвращает return #11
Не путай определение функции и её вызов.

Сначала функция должна быть объявлена (указывается её имя, тип возвращаемого значения, в скобках - количество и тип формальных параметров):

C++
1
float circleArea(float theRadius);
А также определена, то есть, указано то, что конкретно будет делать функция.
C++
1
2
3
4
5
6
float circleArea(float theRadius)
{
    float theArea;
    theArea = 3.14159 * theRadius * theRadius;
    return theArea;
}
Функция должна быть обязательно объявлена до её вызова (определение может идти после). Потом её можно вызывать, например, из другой функции:

C++
1
2
3
4
5
int main()
{
    float x = circleArea(1.45F); // вызов
    // ....
}
Здесь ты вызываешь функцию с аргументом 1.45F, например. Результат (то, что вернул return) присваивается переменной x.
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
11.07.2012, 15:10  [ТС]     Что означает запись в скобках и что возвращает return #12
Цитата Сообщение от Vega251 Посмотреть сообщение
Нужно смотреть сигнатуру функции. Если формальный параметр указан с типом char* или string, то можно использовать строку. Если нужно число, то указывается соответствующий тип. С язык строго типизированный. Однако перегрузка функций может творить чудеса.
Я веду цикл уроков по С++ на своем блоге. Если нужно, скину в личку. В одном из уроков я как раз подробно разжевал использование функций. С учетом того, что даже мой двоюродный брат-тугодум все понял, то можно считать, что там написано все подробно.
Да, отправьте, пожалуйста)

Добавлено через 35 минут
Цитата Сообщение от Schizorb Посмотреть сообщение
Не путай определение функции и её вызов.

Сначала функция должна быть объявлена (указывается её имя, тип возвращаемого значения, в скобках - количество и тип формальных параметров):

C++
1
float circleArea(float theRadius);
А также определена, то есть, указано то, что конкретно будет делать функция.
C++
1
2
3
4
5
6
float circleArea(float theRadius)
{
    float theArea;
    theArea = 3.14159 * theRadius * theRadius;
    return theArea;
}
Функция должна быть обязательно объявлена до её вызова (определение может идти после). Потом её можно вызывать, например, из другой функции:

C++
1
2
3
4
5
int main()
{
    float x = circleArea(1.45F); // вызов
    // ....
}
Здесь ты вызываешь функцию с аргументом 1.45F, например. Результат (то, что вернул return) присваивается переменной x.
Не понял, зачем конкретно здесь нужен аргмент 1.45F?
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
11.07.2012, 15:17     Что означает запись в скобках и что возвращает return #13
Функция circleArea вычисляет площадь круга, так? Она принимает параметр типа float (theRadius). То есть принимает радиус круга, делает с ним расчёты и возвращает площадь.

Вызов функции мы делаем, подставляя конкретный аргумент. Т.е. circleArea(1) - вычислит площадь круга с радиусом 1, circleArea(23.7) - с радиусом 23.7.

За этим здесь и нужен аргумент. Число 1.45F - просто для примера, могло бы быть и другое.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2012, 16:46     Что означает запись в скобках и что возвращает return
Еще ссылки по теме:

C++ Что означает данная запись
C++ Что означает запись ++arr1[arr2[i]]
Что означает запись? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dvijok
0 / 0 / 0
Регистрация: 10.07.2012
Сообщений: 61
11.07.2012, 16:46  [ТС]     Что означает запись в скобках и что возвращает return #14
Ну, вроде более-менее понял спасибо)
Yandex
Объявления
11.07.2012, 16:46     Что означает запись в скобках и что возвращает return
Ответ Создать тему
Опции темы

Текущее время: 18:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru