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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2016, 14:51   #1
unprox
Новичок
Джуниор
 
Регистрация: 29.01.2016
Сообщений: 2
Восклицание Логическая интересная задача

Здравствуйте, не могу решить задачу.
Дан код, в котором можно изменять лишь отдельные фрагменты отмеченные: [], то есть условие цикла While и тело цикла.
Задача поменять местами значения переменных a, b. Язык программирования - условный. Если объявлять отдельные переменные в теле цикла, то после каждой итерации они исчезают. Нельзя использовать break и другие операторы выхода из цикла.
Вопрос можно ли вообще решить эту задачу? Я не вижу решения, но ведь тогда нужно объяснить почему?

real a,b;
input(a, b);

while ([ ]){
[

]
}
print(a,b)
}

Последний раз редактировалось unprox; 29.01.2016 в 16:29.
unprox вне форума Ответить с цитированием
Старый 29.01.2016, 14:55   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Дык че сложного-то?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 29.01.2016, 16:22   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Дык че сложного-то?
сложность в том, что написать в условии цикла
Код:
while [ .. <вот тут что написать> .. ] 
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.01.2016, 16:26   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ни чего там не напишешь. Задача то как стоит - оценить состояние значений a и b не зная их исходного состояния
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.01.2016, 18:59   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Я не вижу решения, но ведь тогда нужно объяснить почему?
Потому что нет возможности определить изменилось ли состояние а и б после итерации.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 29.01.2016, 19:40   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
while ( 1 ) {
  b = a + b;
  a = b - a;
  b = b - a;
  break;
}
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 29.01.2016, 19:56   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
break;
Так и дурак сможет
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 29.01.2016, 19:58   #8
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Код:
while ( 1 ) {
  b = a + b;
  a = b - a;
  b = b - a;
  break;
}
Нихт...
Цитата:
Нельзя использовать break и другие операторы выхода из цикла.
Iron Monk вне форума Ответить с цитированием
Старый 29.01.2016, 20:01   #9
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Так и дурак сможет
Дурак и смог) Как-то не дочитал)

п.с. надо учитывать погрешность операций с плавающей запятой? (ну реал, все такое)
Alar, верни репу!

Последний раз редактировалось Naive; 29.01.2016 в 20:04.
Naive вне форума Ответить с цитированием
Старый 29.01.2016, 20:01   #10
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Код:
tmp == a;
While b != tmp

Последний раз редактировалось Iron Monk; 29.01.2016 в 20:04.
Iron Monk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Логическая задача Павел Шилин Помощь студентам 1 24.10.2012 21:58
Логическая задача Эльдар 18 Помощь студентам 4 10.06.2011 17:30
Логическая задача FCShadow Помощь студентам 3 23.12.2010 17:54
логическая задача. Karlsson))) Паскаль, Turbo Pascal, PascalABC.NET 1 19.12.2010 10:34
Логическая задача Senator Помощь студентам 1 06.06.2008 04:01