73 / 73 / 13
Регистрация: 15.01.2013
Сообщений: 284
|
|
1 | |
Возврат значения функции26.04.2014, 22:38. Показов 45646. Ответов 26
Метки нет (Все метки)
Что такое возврат значения функции? я уже всю голову изломал, что и куда возвращается? в гугле нашёл мол возвращается результат (куда? в функцию? функция выполняет чтото, как она в себя может принимать результат) какая от этого практическая польза? ведь результат можно записать в любую переменную/переменные и потом использовать, а как это вернуть в функцию? почему вернуть, я что у ней чтото отнимал? Может мне кто-нибудь на пальцах объяснит что это такое, былбы рад увидеть примеры. Просто везде это описывается как чтото элементарное и само собой понятное, мне эта фраза абсолютно не ясна, не могу уловить логического смысла. Заранее благодарен.
0
|
26.04.2014, 22:38 | |
Ответы с готовыми решениями:
26
Возврат значения из функции Возврат копии значения из функции Возврат значения из полиморфной функции Неправильный возврат значения функции |
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
26.04.2014, 22:59 | 2 |
Функция получает на вход некие параметры, обрабатывает их как-то внутри и в ответ на свой вызов возвращает вызывающей стороне некоторое значение, результат своей работы.
0
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
|
26.04.2014, 23:00 | 3 |
MELkey, что-то я вас плохо понял.Вас интересует возвращаемое значение функции?
0
|
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
|
|
26.04.2014, 23:06 | 4 |
Допустим я твой начальник. Я даю тебе какую-нибудь информацию для работы. Ты моя функция. Я тебе передаю информацию(значение), ты мне отчет(возвращаемое значение). Вот и все. Только ты сам определяешь, что передавать, а что забирать из функции.
0
|
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
|
|
26.04.2014, 23:10 | 5 |
0
|
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
|
||||||
26.04.2014, 23:18 | 6 | |||||
Например,
1
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
27.04.2014, 00:44 | 7 |
Хотел было продолжить метафоры стеком, то перечитав стартовый топик, понял, что каша в голове ТС заварилась изрядная. Попытаюсь размешать.
возвращается результат (куда? в функцию? - нет, в функцию уже ничего не возвращается. Она свое дело сделала и ее уже нет (пока еще раз не позовешь). А дело ее - дать тебе результат. Вернуть. Тебе. В благодарность за то, что ты ее вызвал. Твое дело - этот результат тут же схватить - записать в любую переменную/переменные и потом использовать, а как это вернуть в функцию? - а зачем? Ей от тебя уже ничего не нужно. Кроме очередного приказа. почему вернуть, я что у ней чтото отнимал? - нет. Ты ей дал - команду и параметры. "Эй, жена, дай пожрать!" - это без параметров - получай бутерброд. "Милая, приготовь курочку, как ты умеешь" - это уже с параметром (остальные передаются по-умолчанию) Ну, дальше у кого на сколько фантазии хватит, а то меня занесет... Суть в том, что в этом патриархальном варианте вы своей "функции" совершенно ничего не должны. Единственная ваша забота - создать ее. И так, чтоб она работала правильно.
3
|
73 / 73 / 13
Регистрация: 15.01.2013
Сообщений: 284
|
|
27.04.2014, 07:46 [ТС] | 8 |
Ну про практическую пользу пока что остаётся только догадываться, потому что кроме кроме нагромаждений я мало что увидел)) Т.е. это удобно использовать только если в функции здоровенные вычисления? А зачем в return использовать детерминированные значения? что нам даёт return 0? Информацию для ОС о том что программа завершила свою работу нормально. Зачем информировать ОС о нормальной работе программы? если чтото ненормально, она сама ничего не сделает/выдаст ошибку/упадёт. Зачем в памяти/ в исходнике/ в моей голове использовать лишнее место. Я прекрасно понимаю, что всё это продумывалось не дуракими, а следовательно в этом есть какаято суть, даёт возможность облегчить жизнь программисту. Вот пока я не понял суть и полезность этого, мне трудно с этим разобраться. Пример:
Ученику физики рассказали про дефект масс, про ядерные реакции, а как работает ядерный реактор не рассказали.
0
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
|
27.04.2014, 09:16 | 10 |
Допустим есть часть кода которая будет выполнятся многократно с разными параметрами.Ты можешь копировать эти строчки постоянно,нагромождая код,а можешь создать функцию,которая позволит этого избежать.Есть задачи,которые решаются рекурсивно,и там без функции не обойтись.Кроме того,разбив программу на несколько функций,отвечающих за одну задачу тебе будет проще локализировать и исправить ошибку.
1
|
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
|
||||||
27.04.2014, 09:55 | 11 | |||||
Конечно, функции - это очень удобная вещь в плане того, что одно и то же действие ( сколь угодно большое) можно вызывать одной строчкой и при этом сколь угодно раз. Но реальная мощь функций, как мне кажется, открывается при изучении объектно-ориентированного программирования. Когда функция является методом класса или конструктором (любого типа) действительно осознаешь всю мощь функций.
Пока просто представьте функцию как некий макрос. Грубо говоря, ввел имя функции вместе с параметрами и все автоматически делается. Удобно же. Вот тут я сделал простой пример:
Лично я изучаю программирование на С++ по книге Лафоре(помимо лекций в институте). Всем советую!
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
27.04.2014, 10:31 | 12 |
Ну, во первых bat-, bash-скрипты умеют анализировать код возврата программы. А во-вторых уже и не требуется
Добавлено через 8 минут ИМХО, топик был создан не без лукавства. Просто ТС таким образом решил заставить нас еще больше полюбить функцию, и за одно понять, за что же мы ее так любим
0
|
Nick Alte
|
27.04.2014, 10:47
#13
|
0
|
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
|
|
27.04.2014, 11:11 | 15 |
Байт, позвольте уточнить - Реальная мощь функций открывается при изучении программирования на С++
Но в то же время функции есть и в других языка программирования, но не во всех есть объекты. Схема рушится! Добавлено через 5 минут Nick Alte, Я же сказал, что это для меня. Как МНЕ кажется, функции выполняющие роль конструкторов, деструкторов и методов класса намного более захватывающие, чем обычные вялые функции, которые выполняют определенную последовательность действий при вызове(да да, я знаю, что методы класса делают так же, но они методы класса! ). Лично я влюбился в функции после того как познакомился с объектами. Говорю это как человек, который все еще изучает программирование в институте(6 семестр).
1
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
27.04.2014, 11:13 | 16 |
ИМХО, лишнее. А Паскаль, он что, без функций? И что бы вы без функций на нем делали кроме "Хэллоу, Ворд" ? А Алгол, Фортран, ПЛ, Ассемблер, Лисп в конце концов!
Желающие могут продолжить список...
0
|
S_el
|
27.04.2014, 11:13
#17
|
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
27.04.2014, 11:29 | 18 |
Что ж, глупо спорить с влюбленными. Могу вам только пожелать счастья в личной жизни
Вы сами неявно создали метафору: функция - женщина Продолжим ее. Вы с юным пылом были очарованы первой попавшейся вам красоткой. Но уверяю вас, в мире их значительно больше! Говорю это, как человек, изучающий программирование несколько больше 6-ти семестров. А ваши эмоции делают вам честь. Чтобы достичь успехов в программировании (да и в любом деле), нужно вкладывать в дело не только серое вещество, но и сердце. Удачи!
2
|
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
27.04.2014, 12:01 | 19 |
Я намекал на то, что даже все эти прекрасные вещи - далеко не вся мощь функций. И чтобы открыть для себя их новые стороны, полезно познакомиться с функциональным программированием. Это и в C++ потом пригодится, при написании шаблонов и лямбд.
3
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
27.04.2014, 12:19 | 20 |
Не по теме: Резюмируем под музыку Имре Кальмана Добавлено через 3 минуты Не по теме: Nick Alte, Сначала не хотел портить вам такую круглую репу. Но потом подумал - все рано ее кто-нибудь испортит. Так пусть моя "спасибка" откроет новую тысячу (дай Бог, не последнюю!:)
0
|
27.04.2014, 12:19 | |
27.04.2014, 12:19 | |
Помогаю со студенческими работами здесь
20
Возврат значения через параметр функции Двумерные массивы и возврат значения из функции Повторный возврат рандомного значения ,без изменения значения Возврат 2 значений из функции с одним вызовом этой же функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |