Здравствуйте, Stanky, Вы писали:
>> Во-первых, здесь реализован цикл с декрементом счётчика (а в задании >> есть ограничение на циклы) >> S>Не понял, можно разъяснить?
Очень просто. Давай вместо push/ret напишем человеческое goto. Получится цикл.
>> Во-вторых, это всего лишь вариация на тему setjmp/longjmp — всего лишь >> вычурная форма goto (а на него тоже есть ограничения) >> S>Тогда получается, что кроме goto в процах вообще ничего нет!!! S>Ведь та же рекурсия (вызов функции) организуется через команду call, а это тотже goto (jmp) только в стек записывается адрес возврата!!!
Это лишь один из способов организовать рекурсию.
Языки обработки символов списков (тот же Лисп) могут делать это по-другому.
Например, выполнять подстановку тела функции в выражение, и последовательно интерпретировать.
Перекуём баги на фичи!
Re[6]: kak mozno napechata 100000 raz "welcome" ne ispolzya
> Очень просто. Давай вместо push/ret напишем человеческое goto. >
Ну без команд перехода не обойтись вообще, так как даже if, switch/case, вызов функций, прерываний и т. д. их использует!!!
Так что получается, что задача просто нерешаемая!!!
Posted via RSDN NNTP Server 1.9
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[3]: kak mozno napechata 100000 raz "welcome" ne ispolzya
Здравствуйте, kosfr, Вы писали:
K>byl ya na sobesedovanii na raboty c++/C#. K>zadali vopros: kak napisat ne vazno na kakomyazuke 1.000.000 raz "Welcome" ne ispolzya: goto, for, while, do-while etc. parvui sposob recyrsia, a vtoroi????
Print RepeatString(1000000, "Welcome")
Re[7]: kak mozno napechata 100000 raz "welcome" ne ispolzya
Здравствуйте, Stanky, Вы писали:
S>Ну без команд перехода не обойтись вообще, так как даже if, switch/case, вызов функций, прерываний и т. д. их использует!!! S>Так что получается, что задача просто нерешаемая!!!
Шаблонное программирование — может развернуть всё в один длинный-предлинный код (100000 раз повторит printf("welcome")). Потому что инлайн.
Разумеется, будем считать вызов printf атомарным. А почему бы и нет? Может, это инструкция для DMA-контроллера?..
Перекуём баги на фичи!
Re[2]: kak mozno napechata 100000 raz "welcome" ne ispolzya
От:
Аноним
Дата:
25.01.05 17:06
Оценка:
a ya nashol reshenia poproshche
nujno obedinit 1000000 kompiuterov v set i potom v command prompte napechatat net send all welcome
i vsio
Re[3]: kak mozno napechata 100000 raz "welcome" ne ispolzya
Здравствуйте, kosfr, Вы писали:
K>byl ya na sobesedovanii na raboty c++/C#. K>zadali vopros: kak napisat ne vazno na kakomyazuke 1.000.000 raz "Welcome" ne ispolzya: goto, for, while, do-while etc. parvui sposob recyrsia, a vtoroi????
Скомпилировать
template<int count>
class WW {
public:
static void DoIt()
{
int Welcome;
WW<count - 1>::DoIt();
}
};
template<>
class WW<0> {
public:
static void DoIt() {}
};
static int f()
{
WW<1000 * 1000>::DoIt();
}
Правлда я рискнул попробовать только 100 раз напечатать
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: kak mozno napechata 100000 raz "welcome" ne ispolzya
Здравствуйте, Кодт, Вы писали:
К>Конечно! Между тем, есть действенный вариант с шаблонами. См. выше по ветке...
Конечно есть, правда это не совсем соответсвует заданию, что типа не рекурсия
Но зато прикольно, что можно печатать не в stdout, скажем, а влог компиляции )
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: kak mozno napechata 100000 raz "welcome" ne ispolzya
А что за компилятор и какое число повторов ставил?
На самом деле, если кто-то не заметил, эта штука печатает Welcome не при работе, а при компиляции
В предупреждениеях о неиспользуемой переменной Welcome
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: kak mozno napechata 100000 raz "welcome" ne ispolzya
Здравствуйте, Erop, Вы писали:
E>А что за компилятор
Visual C++ 7.1
E>и какое число повторов ставил?
1000000, как в примере
E>На самом деле, если кто-то не заметил, эта штука печатает Welcome не при работе, а при компиляции E>В предупреждениеях о неиспользуемой переменной Welcome
Ну это я понял, просто интересно было посмотреть, что скажет компилятор.
Сообщения о не используемой переменной я задавил int Welcome = 0, а то компиляция длится д-о-о-о-о-о-о-о-лго.