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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 20:32   #1
NuMeR
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию задачка для программистов

есть код на паскале
Код:
for i:=1 to 6 do
begin
  case i of
    1,3,5:x:=1;
    2,4,6:x:=128;
  end;
  writeln(x);
end;
нужно представить его в виде
Код:
for i:=1 to 6 do
begin
  writeln(формула);
end;
где формула - выражение, состоящее из двух операций, так, чтобы результат выполнения был одинаковым.
NuMeR вне форума Ответить с цитированием
Старый 25.06.2009, 20:35   #2
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Код:
for i:=1 to 6 do
begin
  if (i mod 2 = 1) then x := 1
  else x := 128;
end;
?

или если вы говорите формула..
Код:
		writeln(128-i mod 2 * 127);
Uguu~

Последний раз редактировалось __STDC__; 25.06.2009 в 20:40.
__STDC__ вне форума Ответить с цитированием
Старый 25.06.2009, 20:38   #3
NuMeR
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

__STDC__, нужно чтобы код подходил под этот шаблон
for i:=1 to 6 do
begin
writeln(формула);
end;
т.е. нужно что-то вписать вместо "формула", никаких if case и т.д. использовать нельзя
NuMeR вне форума Ответить с цитированием
Старый 25.06.2009, 20:42   #4
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

выше посмотрите
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 25.06.2009, 20:43   #5
NuMeR
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
writeln(128-i mod 2 * 127);
в этой формуле 3 операции(-, mod, *) а нужно 2
NuMeR вне форума Ответить с цитированием
Старый 25.06.2009, 20:55   #6
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

значит так тоже не покатит))
Код:
		writeln(128 shr (i mod 2 * 7));
я не уверен что это принципиально возможно с двумя операциями...
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 25.06.2009, 21:00   #7
NuMeR
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

это возможно, решение у меня есть, его я нашел почти случайно и просто хочется понять каким образом до него можно дойти логически, поэтому и написал на форум
NuMeR вне форума Ответить с цитированием
Старый 25.06.2009, 21:01   #8
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Т.е. вам хочется чтобы другие до него дошли логически?
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 25.06.2009, 21:02   #9
NuMeR
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

или до него или до альтернативного, да и задачка мне показалась интересной
NuMeR вне форума Ответить с цитированием
Старый 25.06.2009, 21:43   #10
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

А такое вообще возможно? Такое возможно в си. Там есть тернарная операция ?:
Как вариант можно попробовать побитовыми операциями. Если есть гениальный ответ - выкладывайте, обсудим вместе.
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игры для программистов [Smarik] Gamedev - cоздание игр: Unity, OpenGL, DirectX 78 12.07.2010 03:42
Задачка для программистов meira87 Свободное общение 6 24.03.2009 20:43
Игры для программистов! Rembo Свободное общение 17 29.12.2007 09:22
ДЛЯ ПРОГРАММИСТОВ!!! VOLODIA Свободное общение 0 09.04.2007 23:01