Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.96/225: Рейтинг темы: голосов - 225, средняя оценка - 4.96
73 / 73 / 14
Регистрация: 15.01.2013
Сообщений: 284

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

26.04.2014, 22:38. Показов 46537. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что такое возврат значения функции? я уже всю голову изломал, что и куда возвращается? в гугле нашёл мол возвращается результат (куда? в функцию? функция выполняет чтото, как она в себя может принимать результат) какая от этого практическая польза? ведь результат можно записать в любую переменную/переменные и потом использовать, а как это вернуть в функцию? почему вернуть, я что у ней чтото отнимал? Может мне кто-нибудь на пальцах объяснит что это такое, былбы рад увидеть примеры. Просто везде это описывается как чтото элементарное и само собой понятное, мне эта фраза абсолютно не ясна, не могу уловить логического смысла. Заранее благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2014, 22:38
Ответы с готовыми решениями:

Возврат значения из функции
Добрый вечер. Вопрос следующий , как возвратить из функции create последнее значение ЛС , чтоб в дальнейшем использовать в main. ...

Возврат копии значения из функции
Сегодня нашел информацию о том, что можно сохранять ссылку на временный объект, например #include <iostream> int foo() { ...

Возврат значения из полиморфной функции
Доброго времени суток всем. Ребят не знаю как правильно сформулировать свой вопрос. Суть вот в чем: В базовом классе Cell определена...

26
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
26.04.2014, 22:59
Функция получает на вход некие параметры, обрабатывает их как-то внутри и в ответ на свой вызов возвращает вызывающей стороне некоторое значение, результат своей работы.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
26.04.2014, 23:00
MELkey, что-то я вас плохо понял.Вас интересует возвращаемое значение функции?
0
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
26.04.2014, 23:06
Допустим я твой начальник. Я даю тебе какую-нибудь информацию для работы. Ты моя функция. Я тебе передаю информацию(значение), ты мне отчет(возвращаемое значение). Вот и все. Только ты сам определяешь, что передавать, а что забирать из функции.
0
 Аватар для cooller
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
26.04.2014, 23:10
Цитата Сообщение от Nick Alte Посмотреть сообщение
Функция получает на вход некие параметры
ну ведь может и не получать
0
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
26.04.2014, 23:18
Например,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int sum (int a) // int вначале означает тип возвращаемого параметра
{
int b;
b = a +5;
return b; // можно просто return a + 5;
}
 
//Наша функция прибавляет к любому целочисленному числу цифру 5, посмотрим как это работает:
 
int main()
{
int x = 4;
int y = sum(x);
 
cout << y << endl; // y = 9, т.к. 4 + 5 = 9, функция работает корректно
 
return 0;
}
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
27.04.2014, 00:44
Цитата Сообщение от MELkey Посмотреть сообщение
Что такое возврат значения функции? я уже всю голову изломал, что и куда возвращается? в гугле нашёл мол возвращается результат (куда? в функцию? функция выполняет чтото, как она в себя может принимать результат) какая от этого практическая польза? ведь результат можно записать в любую переменную/переменные и потом использовать, а как это вернуть в функцию? почему вернуть, я что у ней чтото отнимал?
Хотел было продолжить метафоры стеком, то перечитав стартовый топик, понял, что каша в голове ТС заварилась изрядная. Попытаюсь размешать.
возвращается результат (куда? в функцию? - нет, в функцию уже ничего не возвращается. Она свое дело сделала и ее уже нет (пока еще раз не позовешь). А дело ее - дать тебе результат. Вернуть. Тебе. В благодарность за то, что ты ее вызвал. Твое дело - этот результат тут же схватить - записать в любую переменную/переменные и потом использовать,
а как это вернуть в функцию? - а зачем? Ей от тебя уже ничего не нужно. Кроме очередного приказа.
почему вернуть, я что у ней чтото отнимал? - нет. Ты ей дал - команду и параметры. "Эй, жена, дай пожрать!" - это без параметров - получай бутерброд. "Милая, приготовь курочку, как ты умеешь" - это уже с параметром (остальные передаются по-умолчанию)
Ну, дальше у кого на сколько фантазии хватит, а то меня занесет...
Суть в том, что в этом патриархальном варианте вы своей "функции" совершенно ничего не должны. Единственная ваша забота - создать ее. И так, чтоб она работала правильно.
3
73 / 73 / 14
Регистрация: 15.01.2013
Сообщений: 284
27.04.2014, 07:46  [ТС]
Ну про практическую пользу пока что остаётся только догадываться, потому что кроме кроме нагромаждений я мало что увидел)) Т.е. это удобно использовать только если в функции здоровенные вычисления? А зачем в return использовать детерминированные значения? что нам даёт return 0? Информацию для ОС о том что программа завершила свою работу нормально. Зачем информировать ОС о нормальной работе программы? если чтото ненормально, она сама ничего не сделает/выдаст ошибку/упадёт. Зачем в памяти/ в исходнике/ в моей голове использовать лишнее место. Я прекрасно понимаю, что всё это продумывалось не дуракими, а следовательно в этом есть какаято суть, даёт возможность облегчить жизнь программисту. Вот пока я не понял суть и полезность этого, мне трудно с этим разобраться. Пример:
Ученику физики рассказали про дефект масс, про ядерные реакции, а как работает ядерный реактор не рассказали.
0
Заблокирован
27.04.2014, 09:03
MELkey, допустим вы хотите реализовать какую-то программу, и в ней встречается много повторяющегося кода, отличающегося одним-двумя параметрами. Вместо того, что копировать и вставлять используют функции.
Да и вообще это очень удобная вещь
1
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
27.04.2014, 09:16
Цитата Сообщение от MELkey Посмотреть сообщение
Ну про практическую пользу пока что остаётся только догадываться, потому что кроме кроме нагромаждений я мало что увидел
Допустим есть часть кода которая будет выполнятся многократно с разными параметрами.Ты можешь копировать эти строчки постоянно,нагромождая код,а можешь создать функцию,которая позволит этого избежать.Есть задачи,которые решаются рекурсивно,и там без функции не обойтись.Кроме того,разбив программу на несколько функций,отвечающих за одну задачу тебе будет проще локализировать и исправить ошибку.
1
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
27.04.2014, 09:55
Конечно, функции - это очень удобная вещь в плане того, что одно и то же действие ( сколь угодно большое) можно вызывать одной строчкой и при этом сколь угодно раз. Но реальная мощь функций, как мне кажется, открывается при изучении объектно-ориентированного программирования. Когда функция является методом класса или конструктором (любого типа) действительно осознаешь всю мощь функций.
Пока просто представьте функцию как некий макрос. Грубо говоря, ввел имя функции вместе с параметрами и все автоматически делается. Удобно же.

Вот тут я сделал простой пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
 
 
//Функция считает скорость
void speed(double S, double t) // void перед именем функции означает отсутствие возвращаемого параметра
{                                              //По этой причине у нас отстутствует return в теле функции
    
    double sp = S/t;
    cout << "Our speed is  " << sp << endl;
    cout << "I can write everything and I don't care becouse I can show this message by one command" << endl;
}
 
//------------------------------------------------------------------------------------------------------------------
int main()
{
 
//Допустим нам надо получить четыре значения скорости
 
//Это можно сделать следдующим образом:
    double SP1 = 0;
    SP1 = 5.0/4.0;
    cout << "Our speed is  " << SP1 << endl;
    cout << "I can write everything and I don't care becouse I can show this message by one command" << endl;
 
    double SP2 = 4.0/3.0;
    cout << "Our speed is  " << SP2 << endl;
    cout << "I can write everything and I don't care becouse I can show this message by one command" << endl;
 
 
    double SP3 = 8.0/2.0;
    cout << "Our speed is  " << SP3 << endl;
    cout << "I can write everything and I don't care becouse I can show this message by one command" << endl;
 
    double SP4 = 3.0/1.0;
    cout << "Our speed is  " << SP4 << endl;
    cout << "I can write everything and I don't care becouse I can show this message by one command" << endl;
 
    cout << endl << endl;
 
    //Фуг! Это было мучительно и долго. Если бы возле меня была девушка, то она бы уже уснула! 
    //Попробуем задействовать нашу функцию!
 
    speed(5,4);   speed(4,3);  speed(8,2);  speed(3,1); // Всего одна строчка!
 
    //21 век - век автоматизации. Не надо выполнять большие действия с большими затратами времени.
    //Надо стараться все автоматизировать так, чтобы можно было нажать на кнопку и забыть.
 
    //Надеюсь все было понятно.
 
    return 0;
}

Лично я изучаю программирование на С++ по книге Лафоре(помимо лекций в институте). Всем советую!
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
27.04.2014, 10:31
Цитата Сообщение от MELkey Посмотреть сообщение
Зачем информировать ОС о нормальной работе программы? если чтото ненормально, она сама ничего не сделает/выдаст ошибку/упадёт.
Ну, во первых bat-, bash-скрипты умеют анализировать код возврата программы. А во-вторых уже и не требуется

Добавлено через 8 минут
ИМХО, топик был создан не без лукавства. Просто ТС таким образом решил заставить нас еще больше полюбить функцию, и за одно понять, за что же мы ее так любим
0
27.04.2014, 10:47

Не по теме:

Цитата Сообщение от Faoxis Посмотреть сообщение
Но реальная мощь функций, как мне кажется, открывается при изучении объектно-ориентированного программирования.
Реальная мощь функций открывается при изучении функционального программирования. Искренне ваш, К.О.

0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
27.04.2014, 10:51
Nick Alte, Faoxis, позвольте мне обобщить ваши высказывания и свести их воедино
Реальная мощь функций открывается при изучении программирования.
0
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
27.04.2014, 11:11
Байт, позвольте уточнить - Реальная мощь функций открывается при изучении программирования на С++
Но в то же время функции есть и в других языка программирования, но не во всех есть объекты. Схема рушится!

Добавлено через 5 минут
Nick Alte, Я же сказал, что это для меня. Как МНЕ кажется, функции выполняющие роль конструкторов, деструкторов и методов класса намного более захватывающие, чем обычные вялые функции, которые выполняют определенную последовательность действий при вызове(да да, я знаю, что методы класса делают так же, но они методы класса! ). Лично я влюбился в функции после того как познакомился с объектами. Говорю это как человек, который все еще изучает программирование в институте(6 семестр).
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
27.04.2014, 11:13
Цитата Сообщение от Faoxis Посмотреть сообщение
на С++
ИМХО, лишнее. А Паскаль, он что, без функций? И что бы вы без функций на нем делали кроме "Хэллоу, Ворд" ? А Алгол, Фортран, ПЛ, Ассемблер, Лисп в конце концов!
Желающие могут продолжить список...
0
27.04.2014, 11:13

Не по теме:

Цитата Сообщение от Faoxis Посмотреть сообщение
Реальная мощь функций открывается при изучении программирования на С++
А если на C? :)

0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
27.04.2014, 11:29
Цитата Сообщение от Faoxis Посмотреть сообщение
Лично я влюбился в функции
Что ж, глупо спорить с влюбленными. Могу вам только пожелать счастья в личной жизни
Вы сами неявно создали метафору: функция - женщина Продолжим ее.
Вы с юным пылом были очарованы первой попавшейся вам красоткой. Но уверяю вас, в мире их значительно больше! Говорю это, как человек, изучающий программирование несколько больше 6-ти семестров.
А ваши эмоции делают вам честь. Чтобы достичь успехов в программировании (да и в любом деле), нужно вкладывать в дело не только серое вещество, но и сердце.
Удачи!
2
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
27.04.2014, 12:01
Цитата Сообщение от Faoxis Посмотреть сообщение
Я же сказал, что это для меня.
Я намекал на то, что даже все эти прекрасные вещи - далеко не вся мощь функций. И чтобы открыть для себя их новые стороны, полезно познакомиться с функциональным программированием. Это и в C++ потом пригодится, при написании шаблонов и лямбд.
3
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
27.04.2014, 12:19

Не по теме:

Резюмируем под музыку Имре Кальмана
Без функций жить нельзя на свете - нет! :curtsy:



Добавлено через 3 минуты

Не по теме:

Nick Alte, Сначала не хотел портить вам такую круглую репу. Но потом подумал - все рано ее кто-нибудь испортит. Так пусть моя "спасибка" откроет новую тысячу (дай Бог, не последнюю!:)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2014, 12:19
Помогаю со студенческими работами здесь

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

Возврат значения через параметр функции
Пишу функцию,которая должна создавать динамическую матрицу,а затем возвращать ее через параметр. Правильно ли я понимаю,что для этого надо...

Двумерные массивы и возврат значения из функции
Доброго времени суток уважаемые фуромчане! Решил обратиться к более опытным людям ибо сам допереть не могу:) Ситуация вот в чём.Нужно...

Повторный возврат рандомного значения ,без изменения значения
Добрый день. Пишу простую консольную игру Кости. Есть 4-е функции прорисовки костей (2-е на кости игрока и 2-е на кости ПК). Каждая...

Возврат 2 значений из функции с одним вызовом этой же функции
Вообщем где то в какой то игре была хукнута одна функция int function(int arg1,int arg2,int arg3); суть в чем int...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru