8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
1

Передача значений переменных в функцию()

05.02.2020, 14:59. Показов 2505. Ответов 32
Метки нет (Все метки)

int main()
Братья программисты! Вот занимаюсь немножко... возник вопрос, но но книжке его ведь не задашь)

Вот 2 фрагмента кода результат работы которых идентичен!
То есть мне не понятно, в чем практический смысл объявлять 2 дополнительные переменные char chin и int nin, когда все работает и без этого? Возможно это полезно в больших реальных программах? Но боюсь если мне здесь от них хочется уйти, там я вообще бы запутался...


C++
1
2
3
4
void repchar(char, int);       // объявляем функцию, с аргументами в скобках, в виде типов переменных!
 
int main()
{

Первый код (как в книжке - страница 176 ООП в С++ Лафоре)
C++
1
2
3
4
5
6
7
8
9
char chin;                     // объявляем переменную отвечающую за символ (передаем ее в функцию - repchar())
cout << " введите символ: ";
cin >> chin;
 
int nin;                       // объявляем переменную отвечающую за число (передаем ее в функцию - repchar())
cout << " введите число повторений символа: ";
cin >> nin;
 
repchar(chin, nin);            // вызываем функцию на выполнение

Второй код где я избавился от этих переменных
C++
1
2
3
4
5
6
7
8
9
char ch;                     // объявляем переменную отвечающую за символ (передаем ее в функцию - repchar())
cout << " введите символ: ";
cin >> ch;
 
int n;                       // объявляем переменную отвечающую за число (передаем ее в функцию - repchar())
cout << " введите число повторений символа: ";
cin >> n;
 
repchar(ch, n);            // вызываем функцию на выполнение

Сама функция
C++
1
2
3
4
5
6
7
8
9
10
system("pause>0");
return 0;
}
 
// определяем функцию - repchar()
void repchar(char ch, int n)
{
    for(int i=0; i<n; i++)     // счетчик от нуля до - n определяемого пользователем
    cout << ch;
}
Результат работы
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2020, 14:59
Ответы с готовыми решениями:

Передача значений переменных функциями
Подскажите пожалуйста, как реализовать эту функцию с помощью указателя (а не ссылки). int...

Передача переменных в функцию
#include &lt;iostream&gt; int fun(int x, int y, int z); int main() { int x, y, z;

Передача переменных в функцию
Какой из следующих вариантов передачи переменных в функцию лучше всего использовать? Так сказать...

Присвоение и передача значений static переменных в классе
Как правильно передать значения SalesPlan и NumOfSales в класс PlanCompletion? При использовании...

32
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
05.02.2020, 15:55 21
Цитата Сообщение от R_U_S_V Посмотреть сообщение
Да, вы правы!
Я перефразирую вопрос - почему я не могу записать эти значения СРАЗУ в ch и n, которые объявляются в определении функции - void repchar (char ch, int n) ? Это же просто...
Для чего нужны переменные "посредники" chin и nin?
А потом значения этих переменных всеравно копируются в ch и n
Путаница какая-то...
Представьте, что у вас на столе лежит ручка, это предмет, который уже имеет некое имя, но вам оно не нравится, и вы ручку решили назвать по-своему, допустим, "сфера", станет ли от этого ручка сферой?
-Нет.
1
8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
05.02.2020, 15:57  [ТС] 22
Нет, я никого не тролю и никогда подобным не занималься, мне много лет, я долго живу) и осваиваю язык и суть программирования в рамках своих ... способностей.

Дошло, что одна и та же переменная Х, но в 2-х функциях это разные переменные! НЕ ЗНАЛ) БОЛЬШОЕ СПАСИБО!
Теперь остается понять почему автор книги дал те переменные, вероятно для демонстрации того, что они всеравно обменяются значениями в рамках данной функции! В общем я еще почитаю на эту тему!
0
502 / 349 / 70
Регистрация: 24.09.2017
Сообщений: 2,015
Записей в блоге: 12
05.02.2020, 16:02 23
Так функция вызовется?
C++
1
repchar("а", 4)
0
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
05.02.2020, 16:11 24
Цитата Сообщение от R_U_S_V Посмотреть сообщение
Да, вы правы!
Я перефразирую вопрос - почему я не могу записать эти значения СРАЗУ в ch и n, которые объявляются в определении функции - void repchar (char ch, int n) ? Это же просто...

Для чего нужны переменные "посредники" chin и nin?
А потом значения этих переменных всеравно копируются в ch и n
Путаница какая-то...
Можешь, все можешь. Делаешь функцию репчик без получаемых аргументов, и перетаскиваешь в эту функцию из майна объявление переменных и диалог с пользователем - ввод данных, в этой же функции их обрабатываешь. Изи
1
8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
05.02.2020, 16:13  [ТС] 25
Цитата Сообщение от Mesteriis Посмотреть сообщение

Не по теме:

мля я под стол уполз



Так первое, еще раз другими словами.
Переменные в майне и в функции это разные переменные.

Объявление в реализации (или прототипе) необходимы что бы в описании функции вы могли с ними работать.

Если вы не будете объявлять переменные в майне то где будите хранить их до того момента как вы передадите их в функцию.
Есть вариант передачи указателей, но это вам рано если у вас возникают такие вопросы
Народ! Дошло, автор это сделал для демонстрации присваиивая значений в рамках алгоритма функции, ну то есть так это работает)
Да указатели мне рано конечно, я осознаю это)))

ВСЕ СПАСИБО!
0
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
05.02.2020, 16:15 26
Цитата Сообщение от Shut913 Посмотреть сообщение
перетаскиваешь в эту функцию из майна объявление переменных и диалог с пользователем
Не надо так делать
1
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
05.02.2020, 16:28 27
Цитата Сообщение от Argus19 Посмотреть сообщение
Так функция вызовется?
repchar("а", 4)
а проверить никак ? ответ - нет, тип параметра и тип аргумента (значения для параметра) должны совпадать
1
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
05.02.2020, 16:37 28
Цитата Сообщение от elenayagubova Посмотреть сообщение
Не надо так делать
Ахаха, да знаю я, что gui от расчетов следует отделять, но вопрос был "а можно ли?" Ну и соответственно ответ - да, можно, все можно, а вот нужно ли, пусть уже пользователь решает.
1
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
05.02.2020, 16:40 29
Цитата Сообщение от Shut913 Посмотреть сообщение
а вот нужно ли, пусть уже пользователь решает.
Судя по изначальному вопросу, пользователь не решит, а вот дурную привычку может и прихватить)
1
8 / 7 / 1
Регистрация: 25.12.2019
Сообщений: 321
05.02.2020, 16:47  [ТС] 30
Да нет народ! я тут вроде понял, в чем момент был:
- я не знал что в 2 разных функциях одна и та же переменная - не одна и таже!
- что в данной ситуации, лучше не создавать переменных с разным именем пусть даже они и разные по сути, а использовать уже именованные, то есть те, что были в определении функции, ну так просто удобнее и меньше путаницы... тем более, что результат работы одинаковый и багов не порождает...
0
57 / 42 / 15
Регистрация: 06.03.2018
Сообщений: 187
05.02.2020, 17:02 31
Цитата Сообщение от R_U_S_V Посмотреть сообщение
так просто удобнее и меньше путаницы...
Совершенно не очевидно.
1
502 / 349 / 70
Регистрация: 24.09.2017
Сообщений: 2,015
Записей в блоге: 12
05.02.2020, 17:21 32
Цитата Сообщение от Yetty Посмотреть сообщение
тип аргумента (значения для параметра) должны совпадать
Так? (строка заключается в двойные кавычки, символ в одинарные):
C++
1
repchar('а', 4)
1
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
05.02.2020, 17:39 33
Цитата Сообщение от Argus19 Посмотреть сообщение
Так?
repchar('а', 4)
добавить точку с запятой и будет так. это уже сообщалось выше:
Цитата Сообщение от elenayagubova Посмотреть сообщение
repchar('a', 5);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2020, 17:39
Помогаю со студенческими работами здесь

Передача значений переменных из неосновных функций друг в друга
Здравствуйте, есть 2 небольшие функции: void RC6_ENCRYPT(unsigned int* pt, unsigned int* ct) {...

Для чего используеться передача структурных переменных в функцию?
Вообщем прошу помощи. 1) Для чего используеться передача структурных переменных в функцию? Как...

Передача значений в функцию C++
Добрый вечер. Возникла такая проблема с лабой. Не могу корректно передать значение &quot;x&quot; к выводу в...

Передача значений из двумерного массива в функцию
Добрый день всем! Помогите девушке разобраться! Я пишу лабораторные по Си. Осталась последняя...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru