Задачка для крутых программеров ;)

ZXNet эхоконференция «real.speccy»

От Vitalic Svetashov Кому All 18.09.1999

Hello, Speccyland !

Предистория:

Сын начал знакомиться с программированием. Hа 48-ом бейсике.
Естественно, начал играться с PLOT и DRAW. И доигрался... :)

А теперь - внимание, вопрос!
Объяснитие, что нарисует программа (не набирая ее):

10 PLOT 60,90
20 DRAW 100,10,9999

??

А теперь наберите, запустите и объясните еще раз. ;-))

Для историков: эффект обнаружен Денисом Светашовым. :))

Удачи!
Vitalic.


От Vyacheslav Mednonogov Кому All 20.09.1999

Get Msg, Vitalic!

18 Sep 99 22:09, Vitalic Svetashov cooбщил Speccyland People про {Задачка для
крутых программеров ;)}:

VS> 10 PLOT 60,90
VS> 20 DRAW 100,10,9999
VS> А теперь наберите, запустите и объясните еще раз. ;-))

А чего непонятного - DRAW рисует 9999 линий длиной 100 пикселей с поворотом
10 радиан.


[I ZX] С горячим приветом, Слава!

[Hам солнца не надо - нам партия светит, нам хлеба не надо - работу давай!]


От Vitalic Svetashov Кому All 21.09.1999

VM> А чего непонятного - DRAW рисует 9999 линий длиной 100 пикселей с
VM> поворотом 10 радиан.

Ух ты!
Выходит, третий параметр в DRAW - _количество_ рисуемых _линий_ ?
Откуда такая инфа?
До сих пор я пребывал в счастливом заблуждении, что DRAW c тремя
параметрами рисует _одну_ _дугу_ и 3-й параметр - ее угол.
Разочаруй меня конкретной ссылкой. ;)

Кстати, можно пойти противоположным путем:
Я спрашиваю, что нарисует та же прога, но вместо 9999 -> 9998
Ты, видимо, отвечаешь - 9998 линий длиной 100п с поворотом 10 рад.
Запускаем - объясняем. Давай? ;)

Удачи!
Vitalic.

... *Вот так-то!* Hадпись на кладбище.

От Igor Krauklis Кому All 22.09.1999

Рулез! Очень, надо сказать, красиво.


VS> Для историков: эффект обнаружен Денисом Светашовым. :))

...так и запишем...


С уважением, Игорь.

[ZX] [Post] [ВЕЛОСПОРТ] [КИHО]


-=- e-mail: Igor_Krauk...@zxnet.spb.ru

От Vyacheslav Mednonogov Кому All 23.09.1999

VS> Выходит, третий параметр в DRAW - _количество_ рисуемых _линий_ ?
VS> Откуда такая инфа?
VS> До сих пор я пребывал в счастливом заблуждении, что DRAW c тремя
VS> параметрами рисует _одну_ _дугу_ и 3-й параметр - ее угол.
VS> Разочаруй меня конкретной ссылкой. ;)

Дизассемблируй код интерпретации команды DRAW в ПЗУ и посмотри сам. Там
прекрасно видно, что иногда DRAW рисует линии, иногда дуги, иногда звёзды,
иногда спирали, а иногда - трёхмерные кубы. К сожалению, последние две
возможности, из-за многочисленных ошибок ПЗУ, реализованы неверно. Hиже
приводится необходимый список исправлений ПЗУ 82-ого года:

#1054 <-#00
#1056 <-#c9
#1077 <-#c3
#2871 <-#dd
#3f88 <-#bc

VS> Кстати, можно пойти противоположным путем:
VS> Я спрашиваю, что нарисует та же прога, но вместо 9999 -> 9998
VS> Ты, видимо, отвечаешь - 9998 линий длиной 100п с поворотом 10 рад.
VS> Запускаем - объясняем. Давай? ;)

Слыхал про такую вещь, как погрешность вычислений? - вот её то мы и
наблюдаем :(

От Vitalic Svetashov Кому All 23.09.1999

VM> Дизассемблируй код интерпретации команды DRAW в ПЗУ и посмотри
VM> сам. Там прекрасно видно, что иногда DRAW рисует линии, иногда дуги,
VM> иногда звёзды, иногда спирали, а иногда - трёхмерные кубы.
Слава, во-первых я говорил о другом. Есть язык - Бейсик 48К, есть
оператор DRAW. Покажи мне описание этого языка, где написано, что
DRAW "иногда рисует..." - далее по тексту. И что значит "_иногда_
звезды, иногда ... :)" - оператор должен выполнять _всегда_ свою
функцию. Причем здесь дизассемблер ПЗУ? Кстати, о нем. Hа досуге
я, конечно, там покопаюсь. Хотя, при всей неоспоримости твоего
авторитета, трудно представить, что из какого бы ни было ассемблерного
текста "прекрасно видно", что он "иногда рисует трехмерные кубы"

VM> К сожалению, последние две возможности, из-за многочисленных ошибок ПЗУ,
VM> реализованы неверно.
То есть подразумевается, что все это не глюк, а заложенные фичи, причем
рисование звезд даже реализовано верно? Умоляю, приведи формат
оператора DRAW для случаев звезд, спиралей и трехмерных кубов.
Желательно, конечно, со ссылкой на первоисточник.
Давно не знала спектрумовская сцена таких откровений. :)
VM> Hиже приводится необходимый список исправлений
VM> ПЗУ 82-ого года:
Сенкс. Теперь я смогу рисовать звезды да спирали одним оператором?

От Vyacheslav Mednonogov Кому All 24.09.1999

Get Msg, Vitalic!

23 Sep 99 23:31, Vitalic Svetashov cooбщил Vyacheslav Mednonogov про {Задачка
для крутых программеров ;)}:

VS>>> До сих пор я пребывал в счастливом заблуждении, что DRAW c тремя

/skip//skip//skip//skip//skip//skip//skip//skip//skip/

VS> PS Кстати, что такое "линия длиной в 100 пикселов" (из предыдущего
VS> письма, горизонтальные и вертикальные не в счет)?

Расслабься, надо хоть немного развивать в себе чувство юмора :))

p.s. и кстати, не вздумай перешивать ПЗУ - it was a joke too ;)

От Vova Hex Кому All 25.09.1999

VS>> предыдущего письма, горизонтальные и вертикальные не в счет)?

VM> Расслабься, надо хоть немного развивать в себе чувство юмора :))

VM> p.s. и кстати, не вздумай перешивать ПЗУ - it was a joke too ;)

та пзу вместо звёзд две медные ноги рисует :)


∙∙∙ hex;music.fanatic [metallica] [madonna] [depeche mode]
... forever trusting who we are.. no, nothing else matters.. (c) metallica

От Vitalic Svetashov Кому All 04.10.1999

IK> ...так и запишем...
Hее... Выяснилось, что это было до нас, в 14-ом веке. :)

Удачи!
Vitalic.

... Капуста - завсегда закуска: и подать не стыдно, и съедят - не жалко