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

Пишем свой интерпретатор языка BASIC - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Меню и список http://www.cyberforum.ru/cpp-beginners/thread41194.html
Здравствуйте форумчане. Помоги пожалуйста в следующем вопросе: У меня есть 2связный список, написано меню. Но в моменте когда написано make a list и delete custom необходимо чтобы выводились:...
C++ Здравствуйте! Не могу поместить class в один файл с программой. file.hpp #include "Cat.hpp" // здесь классы "2)" Cat::Cat(int initialAge) { itsAge = initialAge; } Cat::~Cat() { http://www.cyberforum.ru/cpp-beginners/thread41186.html
Массивы строк C++
Привет всем! Задан массив строк. Как узнать который символ встечаетса найбольшое количество раз в етом массиве?
C++ вывод на экран набор треугольников и квадратов, которые произвольно двигаются и меняют размер
Please, help me!!! Вот текст программы, которая выводит на экран набор треугольников и квадратов, которые произвольно двигаются и меняют размер только квадратов. Проблема в том, что необходимо...
C++ Округление дробного числа до целого в большую сторону. http://www.cyberforum.ru/cpp-beginners/thread41139.html
Доброго дня. Я новичок в программирование на Visual C++. Проблема такая программа должна считать кол-во месяцев, если числа целые то программа шла дальше, если дробное то (например 3.33333) ...
C++ Код из Delphi в C++ Нужно написать курсовую на C++. Сам я в программировании плохо шарю (не программист). Попросил у народу помощи, помогли. Но решение на Delphi: {$APPTYPE CONSOLE} type byteset=set of byte; ... подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
24.10.2010, 23:19  [ТС]
Заработал некий кастрированный вариант SUB с рекурсией, начиная с версии 0.84 .До переполнения стека я не дождался,как-нибудь попробую,к тому же,там через метки перехода сделано,а все данные в динамической памяти,так что,наверное,долго ждать нужно. Для теста можно использовать исходник ниже (или запустить главный исходник из каталога tests - /tests/sources/source.bas):

QBASIC source
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  LET b$ = "bbb"
  PRINT "Original b$ before function call: ",b$:PRINT
  
  DIM SHARED count AS INTEGER
  LET count = 0
 
   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
   SUB myfunc 
   
      PRINT
      
      LET b$ = "Let there be recursion."
      PRINT "b$ inside function call: ", b$:PRINT
      
      PRINT
      LET count = count + 1
      IF count < 10 THEN
       CALL myfunc
      END IF 
      
   END SUB
   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
   CALL myfunc
   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
   PRINT "b$ after funtion call: ",b$:PRINT


Конечно,данный вариант рекурсии имеет мало смысла, но по крайней мере,механизм рекурсии сам по себе вроде работает.
Если кто найдёт баги,ломающие интерпретатор (с помощью QBASIC-исходника имеется ввиду) - пишите.
Осталось добавить работу с параметрами,и FUNCTION,возвращающую значение.
Теперь потихоньку разгебу бардак с памятью (мне опять нетерпелось сделать поскорее,чтобы увидеть результат рекурсии). Фуккции,конечно,внесли много запутанности в логику работы,в логику кода вообще,так как изначально было не понятно,как всё это реализовывать.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru