1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
||||||
1 | ||||||
Функции и их вызов. Подскажите03.11.2013, 19:21. Показов 1334. Ответов 29
Метки нет (Все метки)
Учусь в колледже и по программированию задали программу написать, котоаря бы брала четырёхзначные числа, делила бы их на две части (допустим 3025 делила бы на 30 и 25), складывала эти две полученные части и квадрат этой суммы давал бы это число т.е. (30+25)*(30+25)=3025 и программа должна была найти такие четырехзначные числа, квадрат суммы двух частей которых давал бы это число. Я взял похожий код из интернета, немного его переписал. Как бы всё понятно, кроме того - как эти функции подключены? Как мне самому подключить функции, если я напишу что-то подобное? у меня нет проблем написать сами функции самому, но вот вызвать их в мейне - проблема. Не понятные места помечаю комментарием
0
|
03.11.2013, 19:21 | |
Ответы с готовыми решениями:
29
Вызов функции внутри другой функции с передачей локальной переменной по ссылке Вызов функции из другой функции и обратно. Общие переменные функций Вызов родовой функции (нужно передать массив в качестве аргумента функции через указатель) Вызов функции из другой функции после нажатия на кнопку |
03.11.2013, 19:25 | 2 | ||||||||||
Deeve,
а вот эту строку
0
|
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
|
03.11.2013, 19:29 [ТС] | 3 |
И почему тут kv(SUM) ? Именно sum, а не A?
Добавлено через 1 минуту Про типы данных и константы с переменными я знаю, но мне интересно именно каким боком все эти функции пристыковываются к мейну и начинают с ним совместно работать? Я там в комментариях в строчках кода указал непонятные моменты. И как понять "Возвращает значение переменной?"
0
|
03.11.2013, 19:39 | 4 | ||||||||||
Deeve,
Добавлено через 2 минуты Deeve, возвращает в прямом смысле. Вызывая функцию, она вернет вам какое то значение (если она должна возвращать) Пример: int t = sqrt(9); Вы вызвали функцию извлечения корня, передали ей число. Она возвращает значение (в данном примере 3). Теперь t будет равно 3. Добавлено через 5 минут Deeve, да и как то странно он сделал, я бы наверно реализовал так...
1
|
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
|
03.11.2013, 19:55 [ТС] | 5 |
Хорошо, а как он заменяет sum буквой а? Ведь в первой функции a=a*a, где a это одна часть четырехзначного числа, а вторая а - это вторая часть, так откуда эти обе а берутся? Как sum превращается в a?
И вот я именно конкретно не понимаю как вызываются эти функции. Как-то написанно странно. Что значит return SUM (int a), что значит то, что в скобках? К чему это обращается или что подставляет? И откуда он берет имя функции сразу после return? Как бы ты свою функцию потом вызвал в мейне? Я вот не понимаю как вызывать? Не понимаю что к чему обращается и как это делать правильно..
0
|
03.11.2013, 20:01 | 6 | |||||
Deeve, свою функцию я бы вызвал так же, как у него:
Для наглядности приведу пример: у меня есть программа с 10 функциями. И в четырех из них есть передаваемое значение int temp. Так вот все эти четыре temp'а не имеют ничего общего между собой. Просто они так названы, что бы обозначить их вспомогательную роль
0
|
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
|
03.11.2013, 20:43 [ТС] | 7 |
Добавлено через 4 минуты Как в итоге a=*a получается из sum+=a%100 и a=a/100 ? Я понимаю, что sum = а%100, это a делим на 100 и то что за запятой - то и есть sum, а a/100 там просто делим на 100 - и целое число это и есть a. НО КАК "sum" превращается в a? Где это прописывается? И как они потом взаимодействуют с функцией kv? И как потом это взаимодействует с функцией мейн? ... Блин. Сложно.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
03.11.2013, 20:46 | 8 |
и долго будешь разбираться
здесь ошибка на ошибке плюс еще функция которая обозвана не так обзывается плюс имя функции равно имени переменной разбиратся с этим кодом себе дороже, проще новый написать Добавлено через 51 секунду спроси у автора который позабыл как функцию обозвал
0
|
03.11.2013, 20:50 | 9 | |||||
Deeve, омг. Вы по моему совсем не понимаете, как работают переменные.
смотрим:
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
03.11.2013, 20:51 | 10 |
не мучайся
попробуй описать словами алгоритм а потом поймешь код и так как разделить 4значное число на два двухзначных ААСС должно получится АА и СС чтобы получить число АА нужно разделить ААСС на 100 АА=ААСС/100 как получить число СС это остаток от деления на 100 числа ААСС СС =ААСС%100 так понятнее? а цикл в этой функции нафиг не нужен
0
|
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
|
03.11.2013, 20:54 [ТС] | 11 |
Так. Понял. Выполнение программы всегда начинается с функции main? Тогда выходит примерно такой вариант:
Main обращается к sum1, и тут же, отдельно sum1 обращается к kv sum1 работает совместно с kv, и как бы являются одним целым - sum1, к которой main и обращается. так? Может не совсем правильно написал. Тогда вопрос: int func (int a) int a, b, c; int - тип данных, целые числа func - имя функции, может быть любое (int a) - ЧТО ЭТО? int a, b, c; - локальные константы или переменные в данной функции. Так?
0
|
03.11.2013, 20:57 | 12 |
Deeve, int a это значение, которое вы даете функции. Зачастую функция создается, что бы обработать какие то данные. Вот именно эти данные вы передаете ей в скобках при вызове. Эти данные в самой функции тоже должны храниться в каких то переменных. А назвали ее а просто так
в вашем найденном коде из функции main вызывается sum1, потом из sum1 вызывается kv (сама sum1 приостанавливает работу), kv возвращает значение и sum1 продолжает работать. Потом и она возвращает значение в функцию main и main продолжает выполнение
0
|
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
||||||
03.11.2013, 20:59 [ТС] | 13 | |||||
Как без цикла она проверит все числа от 1000 до 9999?
Как разделить четырехзначное число я понимаю. СЛовами я любую задачу могу описать, но вот записать так, чтобы работало - не выходит.
Мейн имеет 2 константы - int a и int b, которые равны 3. Есть функция td. Только я не понимаю что в ней происходит. Что такое эти буквы а, но предположу, что вместо первых подставится a и b, а с типа будет равно td(a+b), но останестя тогда одна неизвестная и "c" с "td" будут постоянно меняться. Хз.
0
|
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
|
03.11.2013, 21:15 [ТС] | 16 |
А как бы вы эту программу написали? Можете свои варианты выложить?
То, что вы, Фолько, объяснили - очень тяжело сообразить. Видимо у меня где-то брешь в понимании самых простейших моментов. Я учусь не в России, и не на родном языке - много чего могу не уловить из обучения. Вот только узнал, что первой читается функция мейн. До этого было непонятно как программа считывает всё. Думал сверху вниз.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|||||||||||
03.11.2013, 21:16 | 17 | ||||||||||
переменные!!!!!
отличие в том что в переменных можно менять значения в константах нельзя из за того что ты обозвал переменные так коряво вот и возникают непонятки a в майне и a в td это РАЗНЫЕ переменные вот и описывай предлагаю такой подход пишешь листинг из одних коментариев например
0
|
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
|
03.11.2013, 21:17 [ТС] | 18 |
Разве не 56(4+3) т.е. 56*7 т.е. 392 ?
0
|
03.11.2013, 21:19 | 19 | |||||
Deeve, если что, мой ник читается Фолко, а не Фолько)
А решение я уже приводил:
0
|
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 20
|
|
03.11.2013, 21:20 [ТС] | 20 |
Мне большую сложность являет собой состыковка мейна с другими функциями. Что значат ретурны всякие, ещё и с названием функции, либо буквой какой-нибудь, а потом ещё и в скобках что-то написано. Это же важно всё, а я этого не могу понять.
0
|
03.11.2013, 21:20 | |
03.11.2013, 21:20 | |
Помогаю со студенческими работами здесь
20
Вызов массива, сформированной в одной функции с другой функции Вызов функции визуал бейсика из функции явы скрипта Вызов анимации в коде подскажите Не работает без указателя вызов функции в функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |