Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2015, 22:25   #1
leopold13777
 
Регистрация: 07.03.2015
Сообщений: 5
Печаль вопрос по С++

Доброго времени суток. Задам пару очень глупых, но для меня просто непонятных вопросов.
Начну с азов. Кто может по пальцам объяснить значение слова "возвращает"?
"// возвращаем значение суммы
return accumulator;"
Второй вопрос: есть ли книги по С++ в которых действие программ описывается с помощью блок-схем (или хотя бы, есть примеры).
Просто начинаю теряться в изучении С++, когда дело доходит до циклов и массивов, не понимаю алгоритма.
p.s. не кидайте тапками, я понимаю что вопросы реально глупые
leopold13777 вне форума Ответить с цитированием
Старый 20.03.2015, 22:39   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Программу исполняет центральный процессор CPU по инструкциям, называемым машинными кодами. Возвращаемое помещается в регистр процессора eax при архитектуре x86. Это регистр для хранения арифметических данных. Функция имеет отдельное место расположения в памяти, которое определяется тем, как файл был скомпонован(link) компоновщиком(linker). Исполняемый файл это образ программы в памяти, в котором она загружается и исполняется. У процессора есть регистр eip, который указывает на текущую инструкцию. Программа это последовательность инструкций в секции .code, последовательность локация для хранения данных .data и т.д. 1 бит в компьютере это наличие электрического тока в цепи в данной локации.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 20.03.2015, 22:52   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Если в двух словах.
Почему говорят функция возвращает, а не функция вычисляет ?
Потому что функция - это фрагмент программы, куда программа как бы ныряет, что-то там делает, а потом возвращается обратно, но не с пустыми руками, а с новым значением переменной, чьё имя стоит после return (return - возвращение по анг.)
type_Oleg вне форума Ответить с цитированием
Старый 20.03.2015, 23:35   #4
leopold13777
 
Регистрация: 07.03.2015
Сообщений: 5
По умолчанию

Т.е. выглядит это так:
Программа запускается - наталкивается на функцию - получает из неё все значения (допустим это цикл) - продолжает выполнение уже с определенными данными, которые в дальнейшем использует полученными из функции?
leopold13777 вне форума Ответить с цитированием
Старый 21.03.2015, 00:03   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от leopold13777 Посмотреть сообщение
...Программа запускается - наталкивается на функцию - получает из неё все значения ...
Да, примерно так. Только программа не получает от кого-то . Она сама .
Программа выполняется или программа идет - значит процессор получает поочередно команды и выполняет их. Команды записаны обычно последовательно.
Например выполняет команды из ячеек 100, 101,102, 103 .. А в 103 - команда вызова функции по имени ffun. А команды этой ffun записаны например с ячейки 900. И значит, после 103 выполняются 900, 901, 902 .... и т.д пока в 929-й например не встретится команда return. Значит после 929 будет выполняться 104, 105, и т.

Кстати вызываться функция может многократно.
Кроме того функция может вызываться из функции. Например, где-нибудь в ячейке 912 - вызов другой функции fufufufun.

PS Кстати, в этом примере в ячейке 929 - команда не возврат в 104 , а просто возврат. Потому что функция ffun не знает откуда её вызвали - из 103-й ячейки или из другой. Этим функция и отличается от простых переходов goto.
Куда возвращаться - это процессор узнает из стека.
Но, для изучения Си это неважно. Это для ассемблера.

Последний раз редактировалось type_Oleg; 21.03.2015 в 00:26.
type_Oleg вне форума Ответить с цитированием
Старый 21.03.2015, 00:44   #6
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

leopold13777, начните писать программы, но не используйте функций. Потом вы сами убедитесь насколько они необходимы и удобны. Например, вы пишите программу и вдруг видите, что некоторые куски кода одинаковы. Вот их можно убрать в отдельную функцию, тогда программа станет короче, её будет легче читать
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос Rooc Свободное общение 5 10.10.2010 12:14
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
вопрос simpz Общие вопросы C/C++ 2 09.01.2009 20:12
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10