Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335

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

05.02.2020, 14:59. Показов 4243. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2020, 14:59
Ответы с готовыми решениями:

Передача значений переменных функциями
Подскажите пожалуйста, как реализовать эту функцию с помощью указателя (а не ссылки). int clearstr(student&amp; a) { delete a.pi; ...

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

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

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

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

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

Не по теме:

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



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

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

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

ВСЕ СПАСИБО!
0
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
05.02.2020, 16:15
Цитата Сообщение от Shut913 Посмотреть сообщение
перетаскиваешь в эту функцию из майна объявление переменных и диалог с пользователем
Не надо так делать
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
05.02.2020, 16:28
Цитата Сообщение от Argus19 Посмотреть сообщение
Так функция вызовется?
repchar("а", 4)
а проверить никак ? ответ - нет, тип параметра и тип аргумента (значения для параметра) должны совпадать
1
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
05.02.2020, 16:37
Цитата Сообщение от elenayagubova Посмотреть сообщение
Не надо так делать
Ахаха, да знаю я, что gui от расчетов следует отделять, но вопрос был "а можно ли?" Ну и соответственно ответ - да, можно, все можно, а вот нужно ли, пусть уже пользователь решает.
1
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
05.02.2020, 16:40
Цитата Сообщение от Shut913 Посмотреть сообщение
а вот нужно ли, пусть уже пользователь решает.
Судя по изначальному вопросу, пользователь не решит, а вот дурную привычку может и прихватить)
1
10 / 9 / 1
Регистрация: 25.12.2019
Сообщений: 335
05.02.2020, 16:47  [ТС]
Да нет народ! я тут вроде понял, в чем момент был:
- я не знал что в 2 разных функциях одна и та же переменная - не одна и таже!
- что в данной ситуации, лучше не создавать переменных с разным именем пусть даже они и разные по сути, а использовать уже именованные, то есть те, что были в определении функции, ну так просто удобнее и меньше путаницы... тем более, что результат работы одинаковый и багов не порождает...
0
60 / 45 / 15
Регистрация: 06.03.2018
Сообщений: 202
05.02.2020, 17:02
Цитата Сообщение от R_U_S_V Посмотреть сообщение
так просто удобнее и меньше путаницы...
Совершенно не очевидно.
1
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
05.02.2020, 17:21
Цитата Сообщение от Yetty Посмотреть сообщение
тип аргумента (значения для параметра) должны совпадать
Так? (строка заключается в двойные кавычки, символ в одинарные):
C++
1
repchar('а', 4)
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
05.02.2020, 17:39
Цитата Сообщение от Argus19 Посмотреть сообщение
Так?
repchar('а', 4)
добавить точку с запятой и будет так. это уже сообщалось выше:
Цитата Сообщение от elenayagubova Посмотреть сообщение
repchar('a', 5);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.02.2020, 17:39

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru