Главная страница
    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);

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



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

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

Наверх




Память: 0.54 MB
Время: 0.02 c
2-1158164788
SergP
2006-09-13 20:26
2006.10.01
присвоить значение некоторым полям записи...


2-1157719417
arhis
2006-09-08 16:43
2006.10.01
Автоматическое закрыте формы


1-1155800887
dm37
2006-08-17 11:48
2006.10.01
легенда Chart


2-1158207408
O.O
2006-09-14 08:16
2006.10.01
Погасить message


1-1155793236
DelphiLexx
2006-08-17 09:40
2006.10.01
Быстро определить последние размещенный контрол





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский