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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2013, 18:38   #1
grandmixer
Пользователь
 
Аватар для grandmixer
 
Регистрация: 30.10.2012
Сообщений: 31
Вопрос Тип переменной в зависимости от условия

Дано задание и там есть такой кусочек:
Функция F должна принимать действительное значение, если выражение (A или B) и (A или C) не равны нулю, и целое в противном случае. Т.е. я должен определять тип переменной F во время программы в операторе условия? И как это сделать?
grandmixer вне форума Ответить с цитированием
Старый 29.04.2013, 18:54   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Код:
void F(const double arg); //<--- в зависимости от условия, пихай туда хоть целое, хоть вещественное
_Bers вне форума Ответить с цитированием
Старый 29.04.2013, 19:05   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Код:
#include <iostream>
int f(int a) { return a; }
float f(float a) { return a; }

void f(void* a, bool fl) {
	if (fl) std::cout << f(*(int*)a) << std::endl;
	else std::cout << f(*(float*)a) << std::endl;
}
 
int main() {
	int a = 12; 
	float b = 13.14f;
	f(&a, true);
	f(&a, false);
	f(&b, true);
	f(&b, false);
}
так например? но, мне кажется, это плохая идея.
rrrFer вне форума Ответить с цитированием
Старый 29.04.2013, 19:17   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Хотелось бы уточнить - целые и вещественные числа подразумеваются в математическом смысле или это именно требования к "типу значения"?

Если второе - лучше сделать класс для вашей "переменной", перегрузить математические функции что бы внешне ваша переменная вела себя так же как int или float, а все непотребство скрыть внутри класса.

Внутри самого класса определять, когда ваша переменная будет "целой" и когда "вещественной".
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 29.04.2013 в 19:28.
ROD вне форума Ответить с цитированием
Старый 29.04.2013, 19:56   #5
grandmixer
Пользователь
 
Аватар для grandmixer
 
Регистрация: 30.10.2012
Сообщений: 31
По умолчанию

ROD, скорее всего в математическом смысле - я прост выполняю задание по книге, и это задания для 1й главы а там еще до классов далеко
grandmixer вне форума Ответить с цитированием
Старый 29.04.2013, 20:28   #6
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Если в математическом смысле, то не насилуйте мозг и делайте все float`ом.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 29.04.2013, 20:42   #7
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

эм.. почему не сделать просто
Код:
...
if ((a || b) && (a || c))
{
   double f;
   ...
}
else
{
   int f;
   ...
}
...
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 30.04.2013, 02:38   #8
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Цитата:
эм.. почему не сделать просто
потому что
Цитата:
Функция F] должна принимать действительное значение если...и целое в противном случае
rrrFer вне форума Ответить с цитированием
Старый 30.04.2013, 12:52   #9
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
потому что
Не вижу противоречия.. особенно, если это задание из первой главы книги.
Здесь слово "функция" используется в смысле зависимости величины f от другой величины, а не в смысле конструкции языка. Так мне показалось, по крайней мере.
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 30.04.2013, 12:59   #10
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Т.е. я должен определять тип переменной F во время программы в операторе условия? И как это сделать?
Никак. C++ относится к языкам со статической типизацией, переменная с заданным именем в заданной области видимости имеет один конкретный тип, определяемый на стадии компиляции (то есть, ещё до запуска программы, когда у нас появится шанс вычислить не-константное выражение).

Задание целиком можете привести?
Abstraction вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинок в зависимости от условия PavelTitov Microsoft Office Excel 2 10.05.2012 15:39
Как просуммировать Edit'ы в зависимости от условия Gover Общие вопросы Delphi 5 24.07.2011 16:06
Найти значение переменной y в зависимости от значения переменной х Rishi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 11.05.2011 20:25
вставить рисунок в таблицу в зависимости от условия fateev_max Microsoft Office Excel 8 17.03.2010 20:30
Присваивание ячейке значения в зависимости от условия DimonPS Microsoft Office Excel 3 12.11.2009 14:01