Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/75: Рейтинг темы: голосов - 75, средняя оценка - 4.76
0 / 0 / 1
Регистрация: 10.07.2012
Сообщений: 61

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

10.07.2012, 23:36. Показов 14385. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Начал читать книгу 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++ я только начал изучать и мой уровень знаний пока крайне низок...)
Заранее спасибо за ответ)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.07.2012, 23:36
Ответы с готовыми решениями:

Что означает запись return default(int)?
Подскажите пожалуйста, что означает запись return default(int); спасибо.

Что означает такая запись? - return [$elem1,$elem2,$elem3,$elem4];
Доброго времени суток всем! Извините, если повторяюсь, но увидел в одной программе такую запись: return ; Даже друг-программист...

Нюансы синтаксиса: что означает запись return класс (имя, имя) ?
Добрый день! Столкнулся в одном из кодов (приводится ниже, из книги Лафоре) с незнакомым мне синтаксисом. return time12(pm, hrs12,...

13
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
10.07.2012, 23:46
dvijok,

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

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

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


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

C++
1
float circleArea(float theRadius)
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
10.07.2012, 23:49
Запись в скобках - аргумент функции. Она принимает некое значение типа 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.
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
10.07.2012, 23:49
Коментарии (1) и (2) наверное по смыслу в книге разясняются
0
 Аватар для enk
47 / 46 / 26
Регистрация: 16.06.2012
Сообщений: 177
10.07.2012, 23:52
Цитата Сообщение от 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... tion_0.php
p.s. советую для начала взять книжку именно по C++ (Страуструп, Хортон например).
0
0 / 0 / 1
Регистрация: 10.07.2012
Сообщений: 61
11.07.2012, 13:23  [ТС]
Ну, это я вроде понял...
Но что тогда значит это:

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?
0
8 / 8 / 2
Регистрация: 10.07.2012
Сообщений: 38
11.07.2012, 13:43
dvijok, Советую книгу Керниган, Ричи. Язык C
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
11.07.2012, 13:55
а где и как продекларирована sum()?
0
0 / 0 / 1
Регистрация: 10.07.2012
Сообщений: 61
11.07.2012, 14:14  [ТС]
Книги я конечно почитаю, но все же прошу ответить на мой вопрос...
0
413 / 100 / 3
Регистрация: 07.09.2011
Сообщений: 532
Записей в блоге: 2
11.07.2012, 14:21
Нужно смотреть сигнатуру функции. Если формальный параметр указан с типом char* или string, то можно использовать строку. Если нужно число, то указывается соответствующий тип. С язык строго типизированный. Однако перегрузка функций может творить чудеса.
Я веду цикл уроков по С++ на своем блоге. Если нужно, скину в личку. В одном из уроков я как раз подробно разжевал использование функций. С учетом того, что даже мой двоюродный брат-тугодум все понял, то можно считать, что там написано все подробно.
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
11.07.2012, 14:28
Не путай определение функции и её вызов.

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

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.
0
0 / 0 / 1
Регистрация: 10.07.2012
Сообщений: 61
11.07.2012, 15:10  [ТС]
Цитата Сообщение от 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?
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
11.07.2012, 15:17
Функция circleArea вычисляет площадь круга, так? Она принимает параметр типа float (theRadius). То есть принимает радиус круга, делает с ним расчёты и возвращает площадь.

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

За этим здесь и нужен аргумент. Число 1.45F - просто для примера, могло бы быть и другое.
1
0 / 0 / 1
Регистрация: 10.07.2012
Сообщений: 61
11.07.2012, 16:46  [ТС]
Ну, вроде более-менее понял спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2012, 16:46
Помогаю со студенческими работами здесь

Что означает void в скобках у Main?
Здравствуйте. Можно как ребёнку объяснить мне в языке C, что означает, если у main() есть в скобках void, фраза: "у этой функции нет...

Что означает название переменной в круглых скобках?
Что означает название переменной в круглых скобках? В комментариях указан тип переменной и некоторые пояснения. auto c = 0; // int ...

Что означает число в круглых скобках после INT?
приветствую. естъ поле aaa, его тип естъ INT. что разница между етими: INT(3) и INT(8) если в поле aaa я могу записатъ и в первом и...

Что означает эта строка: return '\0'?
return '\0';

Что означает выражение стоящее после return?
Всем привет. Довольно часто в уроках по c++. Вижу после написания программы либо функциии. return переменная; Что это значит? ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 25.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 23.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru