Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

понедельничная задачка, для поступающих в первый класс   Найти похожие ветки 

 
Rule ©   (2006-09-11 17:41) [0]

вот загадали, ничего придумать не могу, мож вместе подумаем ?
Числу 120 соответствует 1, числу 366-2, числу 239-1, числу 521-0, числу 820-3, числу 469-????


 
Bless ©   (2006-09-11 17:42) [1]

На той неделе уже задавали :)


 
Eraser ©   (2006-09-11 17:42) [2]

> [0] Rule ©   (11.09.06 17:41)

боян!


 
StriderMan ©   (2006-09-11 17:43) [3]

тут уже все поступили. заочно.


 
Virgo_Style ©   (2006-09-11 17:43) [4]

давайте лучше подумаем, как давно эта тема тут пробегала... я думаю, дня два тому...
:-P


 
Rule ©   (2006-09-11 17:44) [5]

ооо, ну тогда сорри за баян :-)


 
Bless ©   (2006-09-11 17:47) [6]

http://delphimaster.net/view/15-1157541245/


 
Rouse_ ©   (2006-09-11 17:47) [7]

Хош задачку покруче задам? :)

Есть две переменные, к примеру X и Y
Необходимо написать программу выглядящую следующим образом:

1. Инициализация переменных
2. while Условие do begin ... end
3. вывод переменных.

После выполнения цикла переменные должны содержать следующие значения:
X = начальное значение X + начальное значение Y
Y = начальное значение X - начальное значение Y

Выход из цикла только по условию заданному в WHILE, никаких Breack, exit, и т.п.
Использовать третью переменную (в том числе значения на стеке и т.п.) нельзя.

Дерзайте :)))


 
Bless ©   (2006-09-11 17:47) [8]

Еще недалеко убежала, нашел на 8 странице :)


 
Rouse_ ©   (2006-09-11 17:52) [9]

Да, чуть не забыл, посе выхода из цикла значения уже должны быть в переменных, никаких поправок их значений быть не должно, только вывод результата :)


 
Rule ©   (2006-09-11 18:00) [10]

Rouse_ ©   (11.09.06 17:52) [9]
во блин только занончил над "мяу" и "иа" думать как ты мне про какието циклы тут :-)


 
StriderMan ©   (2006-09-11 18:00) [11]

народ, не пишите сразу ответ! дайте подумать немного :)


 
Bless ©   (2006-09-11 18:02) [12]

А без цикла можна?


 
Bless ©   (2006-09-11 18:05) [13]


> Использовать третью переменную (в том числе значения на
> стеке и т.п.) нельзя.


Т.е. конструкции типа x := x+2*y; запрещены?


 
StriderMan ©   (2006-09-11 18:06) [14]

а try..finally..end мона?


 
han_malign ©   (2006-09-11 18:09) [15]


> Т.е. конструкции типа x := x+2*y; запрещены?

- ну дык можно inc(y,y) - стек не используется...


 
Rule ©   (2006-09-11 18:13) [16]

да чегото я тоже не пойму зачем тут цикл, и без него двумя строками все получается ... мож я не прав
X := X+Y;
Y:= (X-y)-Y;


 
StriderMan ©   (2006-09-11 18:18) [17]


> Rule ©   (11.09.06 18:13) [16]

ясен пень что без цикла все просто. условие такое.


 
Алхимик ©   (2006-09-11 18:19) [18]

InitXY;
while abs(X) < (abs(X)+abs(Y)) do begin
X := X + Y;
Y := X - Y - Y;
end;
PrintXY;


 
Алхимик ©   (2006-09-11 18:21) [19]

Только с выходом за диапазон бяка будет...


 
Плохиш ©   (2006-09-11 18:22) [20]


> Алхимик ©   (11.09.06 18:19) [18]

Зациклились ;-)


 
Алхимик ©   (2006-09-11 19:00) [21]

InitXY;
while GlobalFindAtom("не знаю как задать условие, используя только X и Y") = 0 do begin
X := X + Y;
Y := X - Y - Y;
GlobalAddAtom("не знаю как задать условие, используя только X и Y") ;
end;
PrintXY;


 
Rule ©   (2006-09-11 19:07) [22]

ишо одна задачка
есть мост.  темный.  ночью.
мост выдерживает двоих
папа проходит мост за одну минуту
мама - 2
сын - 5
бабушка - 10
есть один фонарик
на всех

нада пройти меньше чем за 19 минут


 
Алхимик ©   (2006-09-11 19:12) [23]

Папа + бабуля - 10
Папа обратно - 11
Папа + сын - 16
Папа обратно - 17
Папа + мама  - ровно 19
Чтоб было меньше 19 минут папа подгоняет маму пендалями :)


 
Rule ©   (2006-09-11 19:13) [24]

Алхимик ©   (11.09.06 19:12) [23]
гыы, тогда лучше бабушку с сыном :-)


 
Rule ©   (2006-09-11 19:13) [25]

Алхимик ©   (11.09.06 19:12) [23]
мама и так шустрая :-)


 
StriderMan ©   (2006-09-11 19:15) [26]

посадить бабушку на папу. дальше понятно.


 
Алхимик ©   (2006-09-11 19:17) [27]

> [26] StriderMan ©   (11.09.06 19:15)
> посадить бабушку на папу. дальше понятно.

А бабушка - нелюбимая тёща под центнер веса. :)


 
Rule ©   (2006-09-11 19:19) [28]

Алхимик ©   (11.09.06 19:17) [27]
прекрасная возможность скинуть с моста :-)


 
StriderMan ©   (2006-09-11 19:19) [29]


> Алхимик ©   (11.09.06 19:17) [27]
> > [26] StriderMan ©   (11.09.06 19:15)
> > посадить бабушку на папу. дальше понятно.
>
> А бабушка - нелюбимая тёща под центнер веса. :)

тогда тещу на маму. ее мать - пусть сама и тащит


 
Rule ©   (2006-09-11 19:27) [30]

я знаю два варианта решения :-)


 
Алхимик ©   (2006-09-11 19:34) [31]

Папа + Мама  - 2
Папа обратно - 3
Бабуля + сын - 13
Мама обратно - 15
Папа + мама  - ровно 17


 
Rouse_ ©   (2006-09-11 21:15) [32]


> Т.е. конструкции типа x := x+2*y; запрещены?

Внутри цикла можно делать что угодно, хоть в степерь возводи :)
главное не использовать третью переменную, выделение памяти под значение или стек - это считай что переменная :)
GlobalFindAtom это тоже переменная, ты же используешь сторонее значение, а в задаче сказано ТОЛЬКО 2 переменных, цикл, после выходя из цикла результат :)


 
default ©   (2006-09-11 21:19) [33]

Rouse_ ©   (11.09.06 17:47) [7]
X := X1; Y := Y1;
while ((X <> X1 + Y1) or (Y <> X1 - Y1)) do begin
 X := X + Y;
 Y := X - 2*Y;
end;
WriteLine(X1); WriteLine(X2);


 
default ©   (2006-09-11 22:28) [34]

Алхимик ©   (11.09.06 19:00) [21]
именно только по типу [33] можно решить задачу(использую в условии инициализирующие значения X1 и Y1)
вот смотри
условие будем понимать как некоторую функцию от X и Y и возвращающую булево значение
F(X, Y)
мы хотим, чтобы первый раз условие было выполнено для любых значений переменных X и Y, читай F(X, Y)=true,
а на второй раз F(X+Y, X-Y)=false
но такая функция противоречива, ибо любые числа a и b можно представить ввиде
a=x+y;(0) b=x-y;
сделать это просто: a=x+y;-y=x-a; (1)
b=x-y=x+(1)=x+x-a=2x-a
то есть в последнем выражении для заданного "a" подбираем такое x чтобы получить заданное значение b
а потом чтобы получить "a" в выражении (0) подбираем нужное y
и функция "не может понять" когда ей выдавать true, а когда false
такая функция невозможна


 
default ©   (2006-09-11 22:44) [35]

+[34]
даже проще, предыдущее можно не читать
понятно, что только когда X=0 и Y=0
манипуляции  X := X + Y; Y := X - 2*Y; не изменят значений X и Y, они останутся нулями, то есть и сами манипуляции не обязательно проводить
то есть манипуляции во всех остальных случаях надо проводить
(то есть условие должно обращаться в истину)
отсюда видна бесперспективность найти условие возвращающее во второй раз ложь


 
Алхимик ©   (2006-09-11 23:48) [36]

> default

Получается что Розыч - редиска?


 
default ©   (2006-09-11 23:50) [37]

Алхимик ©   (11.09.06 23:48) [36]
думаю, подразумевалось решение навроде [33]
там в условии фигурируют значения инициализации X1 и Y1
потому, думаю, в условие задачи и введена стадия инициализации, чтобы воспользоваться в условии инициализирующими значениями
а так нафиг бы эта стадия нужна - ну лежать в переменных какие значения и лежат...


 
StriderMan ©   (2006-09-12 09:18) [38]

а если так?

try
 while true do
 begin
   X := X + Y;
   Y := X - Y - Y;
   X := X / 0;
 end;
except
end;


 
default ©   (2006-09-12 09:27) [39]

StriderMan ©   (12.09.06 09:18) [38]
вряд-ли
например, в TP исключений нет
задачка, думаю, не ориентирована исключительно на ЯВ, включающие обработку исключений


 
Rouse_ ©   (2006-09-12 12:36) [40]


> default ©   (11.09.06 21:19) [33]
> Rouse_ ©   (11.09.06 17:47) [7]
> X := X1; Y := Y1;
> while ((X <> X1 + Y1) or (Y <> X1 - Y1)) do begin
>  X := X + Y;
>  Y := X - 2*Y;
> end;
> WriteLine(X1); WriteLine(X2);

Ты используешь дополнительные переменные, что нельзя делать :)
А вообще ты прав, данная задача не имеет решения :)


 
StriderMan ©   (2006-09-12 12:55) [41]


> Rouse_ ©   (12.09.06 12:36) [40]
> данная задача не имеет решения :)



> Получается что Розыч - редиска


 
Rule ©   (2006-09-12 13:00) [42]

Алхимик ©   (11.09.06 19:34) [31]
а я за 14 решил :-)


 
Rule ©   (2006-09-12 13:02) [43]

Идут бабушка с внуком - 10 минут
К ним прибегает папа и отбирает фонарик - 11 минут
Папа бежит к маме - 12 мин
Папа с мамой бегут к внуку с тещей - 14 минут
З.Ы. Но папа должен быть смелый ))


 
Тугодум ©   (2006-09-12 13:02) [44]

вот загадали, ничего придумать не могу, мож вместе подумаем ?
Числу 120 соответствует 1, числу 366-2, числу 239-1, числу 521-0, числу 820-3, числу 469-????


У меня тоже 2 получилось. Но алгоритм другой - за четные (включая 0) добавляем единицу, за 0 и 5 - вычитаем, остальные игнорируем.


 
Тугодум ©   (2006-09-12 13:04) [45]

Тугодум ©   (12.09.06 13:02) [44]

Неверно.


 
Алхимик ©   (2006-09-12 13:08) [46]

> [43] Rule ©   (12.09.06 13:02)
> Идут бабушка с внуком - 10 минут
> К ним прибегает папа и отбирает фонарик - 11 минут
> Папа бежит к маме - 12 мин
> Папа с мамой бегут к внуку с тещей - 14 минут
> З.Ы. Но папа должен быть смелый ))

А я тогда за 10 минут решение знаю.
Все четверо крестятся и на "авось мост не разрушится" крадутся на другой берег со скоростью бабки.


 
StriderMan ©   (2006-09-12 13:11) [47]

Папа с бабкой идет на тот берег и оттуда светит. Мама со спиногрызом идут на свет.


 
Rule ©   (2006-09-12 13:14) [48]

Алхимик ©   (12.09.06 13:08) [46]
StriderMan ©   (12.09.06 13:11) [47]
условия задачки не выполняются :-), а у меня выполняются, там же не сказано, что минимум  два человека должно идти, там сказано что максимум 2 ...


 
StriderMan ©   (2006-09-12 13:15) [49]


> Rule ©   (12.09.06 13:14) [48]

там и не сказано что они с фонариком должны идти.


 
Rule ©   (2006-09-12 13:56) [50]

StriderMan ©   (12.09.06 13:15) [49]
там сказано - темно :-)



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.012 c
2-1157726008
gear
2006-09-08 18:33
2006.10.01
отловить выпадение Access Violation...


15-1157818823
ArtemESC
2006-09-09 20:20
2006.10.01
Английский lib.ru посоветуйте. (С английскими текстами)


1-1155883673
brother
2006-08-18 10:47
2006.10.01
TWebBrowser


15-1158068820
Александр Иванов
2006-09-12 17:47
2006.10.01
Tashkent Mastak Party


2-1158011922
AndrejG
2006-09-12 01:58
2006.10.01
Как подключить DLL к проекту?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский