Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.075 c
2-1157697536
Grid
2006-09-08 10:38
2006.10.01
Dbgrid


2-1157962037
IGray
2006-09-11 12:07
2006.10.01
Я рехнулся или Delphi?


3-1154225520
Antoxa2005
2006-07-30 06:12
2006.10.01
Подскажите, а можно ли использовать транзакции при работе ч-зODBC


2-1158044547
nstur
2006-09-12 11:02
2006.10.01
Как убрать программу с панели задач


1-1155712822
Dell3r
2006-08-16 11:20
2006.10.01
Доступ к закладкам в .rtf