Форум программистов, компьютерный форум CyberForum.ru

Реализация while в своем компиляторе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ http://www.cyberforum.ru/cpp-beginners/thread793027.html
Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++
C++ Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++ Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++ http://www.cyberforum.ru/cpp-beginners/thread793026.html
Цикл: Найти и напечатать все простые числа, меньше 100 C++
Надо написать программу, которая находит и печатает все простые числа меньше 100, дайте, пожалуйста, пример, от которого можно отталкиваться. Заранее спасибо.
Определить число в последовательности цифр C++
Определить, есть ли в последовательности цифр число, например 13. Я рассуждал это так: Нужно взять в числе первую цифру и сравнить ее со следующей цифрой, если нет взять вторую и сравнивать со следующей, и так далее пока не будет достигнута условие.
C++ Двусвязный список http://www.cyberforum.ru/cpp-beginners/thread792977.html
Вот решил написать двусвязный список. Написаны только две функции решил попробовать работает или нет, оказалось, что нет. Компилятор почему-то здесь выдает ошибку, но я не понимаю почему. p->next = p1; list.h #ifndef list_h #define list_h class list { public: list(){head = new (node); head->next = NULL;}
C++ Почему поток записи в файл wofstream ничего не пишет? VisualStudio2012, Win7x64Prof Если запись в файл производить в той же функции, где созданы объекты потоков, то запись происходит нормально. Но если потоки создать отдельно, а потом передавать их в качестве параметров в функцию, то запись не производится, а после метода close() устанавливается флаг ошибки. int Fill(std::wofstream *const pfw_S, std::wofstream *const pfw_P) { //создадим... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
28.02.2013, 11:13     Реализация while в своем компиляторе
blueberry_acc, не вдаваясь в подробности вашего кода, в общем случае (в качестве примера возьмём трёхадресный код) цикл while можно реализовать так:
Код
while (<condition>) <body>
транслируется в
Код
label L1;
<boolean-value> := <translated-condition>;
ifFalse <boolean-value> goto L2;
<translated-body>;
goto L1;
label L2;
Здесь <translated-condition> - последовательность команд трёхадресного кода, вычисление которой в итоге даёт некоторое <boolean-value>, которое можно использовать в качестве аргумента команды ifFalse goto - переход по лжи. <translated-body>, соответственно, последовательность трёхадресных команд, результат вычисления хоторых эквивалентен вычислению кода на исходном ЯП.
 
Текущее время: 17:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru