Задача по программированию

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
Циник
Завсегдатай
Сообщения: 442
Зарегистрирован: 17 фев 2003, 17:17

Задача по программированию

Сообщение Циник »

Написать функцию Ф(х), которая меняет местами 2 и 3, то есть когда ей подаешь х=2, она возвращает 3, и наоборот.
Аватара пользователя
Lepsik
Житель
Сообщения: 522
Зарегистрирован: 17 фев 2003, 18:34
Откуда: Berlin
Контактная информация:

#define f(x) ((x==2)?3:2)

Сообщение Lepsik »

так пойдет ? :lol:
Аватара пользователя
Tania
Частый Гость
Сообщения: 15
Зарегистрирован: 17 фев 2003, 20:04

XORом его

Сообщение Tania »

Мне только сейчас лень думать, как это правильно записать с точки зрения синтаксиса.
Но в принципе должно работать: 10 xor 1 = 11. 11 xor 1 = 10. Вариант хорош тем, что можно не проверять, чему равно введенное число, а тупо xor-ить его с единицей.
Аватара пользователя
Marmot
Графоман
Сообщения: 38345
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

А если не 2 и не 3, тогда что?

Сообщение Marmot »

???
Аватара пользователя
Tania
Частый Гость
Сообщения: 15
Зарегистрирован: 17 фев 2003, 20:04

Тогда выбрасывается исключение, происходит GPF

Сообщение Tania »

и компьютер взрываетсявместе со всей локальной сетью.
Мне с вас смешно, товарищи - можно подумать, вы голливудских фильмов с участием компьютеров не смотрели...
Аватара пользователя
Marmot
Графоман
Сообщения: 38345
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Re: Тогда выбрасывается исключение, происходит GPF

Сообщение Marmot »

Tania писал(а):и компьютер взрываетсявместе со всей локальной сетью.
Мне с вас смешно, товарищи - можно подумать, вы голливудских фильмов с участием компьютеров не смотрели...
Ндаа, это дело (и компьютер взрывается вместе со всей локальной сетью) надо долго программировать, в функцию может и не поместится... :-)
Аватара пользователя
Циник
Завсегдатай
Сообщения: 442
Зарегистрирован: 17 фев 2003, 17:17

Сообщение Циник »

Лепсику: так не пойдет.

Тане: Мне синтаксис без разницы, можно хоть на пальцах объяснить. Но с ксором тоже не пойдет.

Мармоту: Хороший вопрос - половина ответа.

Опять Тане: Так ты объяснишь или как?

Всем: где полное, окончательное и бесповоротное решение? Не вижу пока.
Аватара пользователя
Tania
Частый Гость
Сообщения: 15
Зарегистрирован: 17 фев 2003, 20:04

Не пойдёт так не пойдёт

Сообщение Tania »

Моё дело предложить.
Тогда пыхтите сами, а я загляну через полчасика - проверю.
;-)
Аватара пользователя
Смайл
Пользователь
Сообщения: 135
Зарегистрирован: 18 фев 2003, 10:38

Re: Задача по программированию

Сообщение Смайл »

Циник писал(а):Написать функцию Ф(х), которая меняет местами 2 и 3, то есть когда ей подаешь х=2, она возвращает 3, и наоборот.
А когда и не 2 и не 3 тогда как?

Недетреминистски задачи ставишь, дорогой товарищ.

Поди T-SQL ваяешь?
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Re: Задача по программированию

Сообщение папа Карло »

Смайл писал(а):Поди T-SQL ваяешь?
за че ты меня так не любишь? :lol:
Аватара пользователя
Циник
Завсегдатай
Сообщения: 442
Зарегистрирован: 17 фев 2003, 17:17

Re: Задача по программированию

Сообщение Циник »

Смайл писал(а):
Циник писал(а):Написать функцию Ф(х), которая меняет местами 2 и 3, то есть когда ей подаешь х=2, она возвращает 3, и наоборот.
А когда и не 2 и не 3 тогда как?

Недетреминистски задачи ставишь, дорогой товарищ.
Так ведь жизнь - она, товарищ Смайл, сугубо недетерминистская. И задачи она ставит обычно такие же. Вот мне как раз и интересно, как население с такими жизненными формулировками справляется, как мыслительный процесс проистекает, каков результат получается.
Поди T-SQL ваяешь?
Спаси и сохрани, старик Бо.
Аватара пользователя
Tania
Частый Гость
Сообщения: 15
Зарегистрирован: 17 фев 2003, 20:04

Това-арищ Циник

Сообщение Tania »

А в чём, собственно, смысл задачи?
Почему в лоб (свитчем или иф-елс) нельзя?
Надо написать как можно меньшим числом операторов? Или наиболее оптимально? Или этот код должен быть палиндромным и при этом печатать сам себя?
Аватара пользователя
Циник
Завсегдатай
Сообщения: 442
Зарегистрирован: 17 фев 2003, 17:17

Re: Това-арищ Циник

Сообщение Циник »

Tania писал(а):А в чём, собственно, смысл задачи?
Почему в лоб (свитчем или иф-елс) нельзя?
Надо написать как можно меньшим числом операторов? Или наиболее оптимально? Или этот код должен быть палиндромным и при этом печатать сам себя?
Смысл задачи - написать такую функцию (см. выше). Можно просто описать алгоритм. Все. Если это так просто, почему не вижу до сих пор решения? Уже и подсказку дал...
Аватара пользователя
Marmot
Графоман
Сообщения: 38345
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Re: Това-арищ Циник

Сообщение Marmot »

1. Превращаешь число в строку
2. Заменяешь 2->3 / 3->2
3. Конвертишь обратно в число

Угадал? :-)
Аватара пользователя
fooit
Пользователь
Сообщения: 135
Зарегистрирован: 17 фев 2003, 19:09
Откуда: Toronto, ON
Контактная информация:

Swap что-ли?

Сообщение fooit »

void my_swap(int& x, int& y)
{
x=x-y;
y=x+y;
x=y-x;
}
Ответить