IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   kak rospechatat 1.000.000 raz "WELCOME IMHO" ne ispolzya kakoi to vid loopa (http://www.imho.ws/showthread.php?t=79507)

catcanon 10.02.2005 13:13

kak rospechatat 1.000.000 raz "WELCOME IMHO" ne ispolzya kakoi to vid loopa
 
kak rospechatat 1.000.000 raz "WELCOME IMHO" ne ispolzya kakoi to vid loopa

ЕЖ 10.02.2005 13:21

А что ты имеешь ввиду под слово "вид" цикла. Можно например с помощью рекурсии, если конечно не считать это "видом" цикла.

crawler 10.02.2005 15:03

Это не в "программирование" а в "флейм". На чем распечатать, каким языком пользоваться? Возьми напиши от руки на листе, положи на копир и настучи 1.000.000 на количестве копий.

catcanon 10.02.2005 19:28

recursia это один подход, я его тоже придумал, надо не рекусрия и без for, goto, do-while, while etc.

Lord Skill 10.02.2005 22:18

рекурсию не ты придумал! :contract:
начем напечатать? на принтере? в файл?

Madness 10.02.2005 22:58

Примерно так:
Код:

count dd 0
text db "WELCOME IMHO",0

begin:
          cld
          mov ecx, end-begin
          mov edi, offset end
          mov esi, offset begin
          rep movsb
          inc [count]
          invoke SendDlgItemMessage, hwnddlg, ID_LISTBOX, LB_ADDSTRING, 0, offset text
          cmp eax, 1000000
          jne end
          ret
end:

dup db 1000000*(end-begin) (?)


catcanon 10.02.2005 23:03

to Lord-Skill - ne vazno na chem napechatat! :contract:
to Maddness - obasni chto tam napisano, ya xot i znal assembler no yze ne pomny 6 let nem ne pisal :beer:

Madness 10.02.2005 23:29

catcanon
1) копируется тело программы сразу после себя;
2) увеличиваем счетчик;
3) печать;
4) проверка на миллионную запись;
5) выполнение скопированного кода.
Типа цикл развернулся.

catcanon 11.02.2005 15:22

Madness
ето же наподобе цикла

ЕЖ 11.02.2005 15:29

catcanon
Чего ж ты хочешь? Не "на подобии цикла" может быть только тупой копи-паст милион раз строки вывода нужной тебе надписи.

Lord Skill 11.02.2005 17:01

ИМХО, кроми copy/paste нет другового варианта, все будет цыклом :idontnow:

catcanon 11.02.2005 17:23

ест есчо один способ. я его уже нашел, но предлагаю вам подумать. подсказка-прога займет ~20 строчек

етот вопрос у меня был на приеме на роботу. меня не взали :( . но все вопросы были на етом построени. фирма в израиле

Madness 11.02.2005 17:39

catcanon
Это не цикл :P
Если убрать ограничение на 1000000, то ни одного условного/безусловного перехода не будет, можно и проверку без сравнения сделать, но только
мастера дзена постигли данное шаманство, я к сожалению пока в астрал выхода не имею :(

>прога займет ~20 строчек
строчек чего? lol

catcanon 11.02.2005 17:59

Madness
ничего не понал что ти написал?

тут никакого цикла нету! 1.000.000 ето не усливие!

ето подсказка номер 2

Ghost 11.02.2005 18:10

catcanon
Получается: как распечатать 1000000 раз "привет имхо" не используя какой-то вид цикла, но "1000000 раз" не является условием, или, другими словами, печатайте сколько влезет, хоть 1 раз, но без циклов! Ты можешь четко сформулировать вопрос?

З.Ы. Чуть не забыл: вся эта байда должна обязательно занимать 20 строчек неизвестно чего и неизвестно каких... :idontnow:

catcanon 11.02.2005 18:16

Ghost
все началос с того что надо розпечатат 1.000.000 не исползыя цикл. первуй вариант рекурсия а второй???

я уже нашол вариант. и занимает всего ~20 строчек кода.

Ghost 11.02.2005 18:23

catcanon
Эээ, батенька... Так что Вам нужно распечатать? 1.000.000 или "привет имхо" такое количество раз? Имхо, алгоритм с повторяющимися действиями можно реализовать либо рекурсией, либо циклом (базовых алгоритмических конструкций, видишь ли, всего три: линейная, разветвляющаяся и циклическая).

З.Ы. Мляяя... 20 строчек кода какого? На асме, паскале, прологе, в машинных кодах? Или, быть может, в заклинаниях?

catcanon 11.02.2005 18:26

Ghost
если бы ето было так легкро, я бы вас не спрашивал?

Madness 11.02.2005 18:39

catcanon
Сформулируй ЧЕТКО и ПОНЯТНО свой вопрос или я сочту это все за флуд.

catcanon 11.02.2005 18:47

Очень быстро: 2^20 = 1048576
Поправка, если учитывать разложение 1000000 = 11110100001001000000
то получится следующий код из ~20 строк
Delphi:
N>var
N> s: string;
N>begin
N> s := 'Welcome'#10;
N> s := s + s;
N> s := s + s;
N> s := s + s;
N> s := s + s;
N> s := s + s;
N> s := s + s; write(s);
N> s := s + s;
N> s := s + s;
N> s := s + s; write(s);
N> s := s + s;
N> s := s + s;
N> s := s + s;
N> s := s + s;
N> s := s + s; write(s);
N> s := s + s;
N> s := s + s; write(s);
N> s := s + s; write(s);
N> s := s + s; write(s);
N> s := s + s; write(s);
N>end.
N>

В итоге ровно 1000000 строк Welcome

все просто гениално.
если человек не понимает то лучше сказат мне ето не нравитса.

Madness 11.02.2005 19:08

catcanon
Да, решение красивое.
А слабо в 1 строчку это записать? (это про твою "подсказку")

>если человек не понимает то лучше сказат мне ето не нравитса.
Корректнее вопросы задавать надо.

Ghost 11.02.2005 19:09

catcanon
Ух ты какой умный...Только вот учти, что с точки зрения ассемблера оператор "s := s + s;" будет представляться циклической конструкцией, что, по условию задачи, недопустимо. И, опять-так, в том же условии не сказано, на каком языке писать. В прологе, например, это можно было бы сделать и вовсе только с помощью рекурсии. Так что думай дальше.

З.Ы. И на будущее: формулируй свои вопросы четче.

catcanon 11.02.2005 19:33

я спрашивал решение, а не на каком язуке быдет написано. пример привел на delphi. можно есчо и basic спомнит или фортран или на лотус :beer:

ето не мое решение, сам не додымал. мне тозе он понравилса

BC Scout 11.02.2005 20:16

Если отвлечься от "двоичной подколки" то я бы написал windows service с таймером. По таймер эвенту печатал бы " Hello, IMHO" один раз, предварительно проверяя значение глобального счетчика. Если счетчик достиг нужного значения - печать скипается. Все, никакого цикла. :)

А вообще-то это старая хохма:

"Существует ровно 10 типов людей: те, кто понимает двоичное исчисление, и те, кто его не понимает." :) :)

topknot 11.02.2005 20:40

Изящное решение, показывает всю мощь факториала!

Gunslinger 12.02.2005 01:50

Цитата:

topknot:
Изящное решение, показывает всю мощь факториала!
Жаль только что это не факториал :)

Наверно надо было попросить написать блок-схему, которая не использовала бы цикла и по которой можна было б распечатать все это.

По крайней мере вопрос о языке програмирования бы отпал.


Часовой пояс GMT +4, время: 07:57.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.