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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Меню и список http://www.cyberforum.ru/cpp-beginners/thread41194.html
Здравствуйте форумчане. Помоги пожалуйста в следующем вопросе: У меня есть 2связный список, написано меню. Но в моменте когда написано make a list и delete custom необходимо чтобы выводились: Введите элемент и номер. вот сам код: #ifndef __list_h #define __list_h #include <iostream>
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!!! Вот текст программы, которая выводит на экран набор треугольников и квадратов, которые произвольно двигаются и меняют размер только квадратов. Проблема в том, что необходимо исправить код, чтоб фигуры не исчезали за экран (т.е. 640х460) и были компактным набором, т.е. двигались неменяя своего положения относительно друг друга и стукаясь об стенку экрана меняли свое...
C++ Округление дробного числа до целого в большую сторону. http://www.cyberforum.ru/cpp-beginners/thread41139.html
Доброго дня. Я новичок в программирование на Visual C++. Проблема такая программа должна считать кол-во месяцев, если числа целые то программа шла дальше, если дробное то (например 3.33333) программа не округляет это число (в большую сторону) до 4. Перелопатил тонны литературы, но пропустил или не нашёл этого, большая просьба написать функцию которая могла бы это делать, или способ какой.
C++ Код из Delphi в C++ Нужно написать курсовую на C++. Сам я в программировании плохо шарю (не программист). Попросил у народу помощи, помогли. Но решение на Delphi: {$APPTYPE CONSOLE} type byteset=set of byte; var d:array of longint; procedure c; var a,b,i:longint; подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
25.10.2010, 22:34  [ТС]     Пишем свой интерпретатор языка BASIC
Действительно,о таком случае последовательного вызова я как-то даже и не подумал . Надо глянуть.
Видимо,там дело в том,что при построении дерева функции func1 func2 ещё не известна,нужно делать похожую вещь,как с метками,проверяя соответствие вызовов с определениями.
Странно,но у меня почему-то после удаления func2 выдаёт-таки ошибку: file:source_err.bas line:5 error: Undefined symbol: LOC на код:
код
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DIM SHARED glob AS INTEGER
LET glob = 10
 
SUB func1
  LET loc = loc + 1
  PRINT "func1: glob="; glob; "; loc="; loc
  LET glob = glob - 1
  IF glob > 0 THEN
    CALL func1
  END IF 
END SUB
 
CALL func1
 
PRINT "main end: glob="; glob; "; loc="; loc

Добавлено позже:
Я походу,так увлёкся функциями,что или сломал что-то,или до этого так и было : у меня ошибку на LOC выдавало потому,что интерпретатор запущен с опцией --noinit-errors,а по идее там должна быть инициализация нулём в выражении... и она даже есть,просто механизм функций всё поменял. Буду исправлять.

Про сборку:
Я пытался сделать,чтобы при отсутствии Qt собиралась только косольная программа,в итоге я так и не смог этого добиться,судя по твоим логам. Всё это я пытался проделать в Makefile.
Насчёт предупреждений,я как раз думал,как лучше сделать.До сих пор с сомнениях.
Дело в том,что в программе неудачно реализован "менеджмент" памяти.Есть шаблонная функция memalloc() которая принимает неинициализированный указатель,а возвращает инициализированный+подсчитывает количество выделенной памяти.Это,в свою очередь,вызывает кучу предупреждений о том что в функцию посылается неинициализированный указатель. Очень мозолит глаза Вот теперь не знаю,как же быть,прокручиваю все варианты(autoptr и другое пока использовать неохота).Думал сделать специальный интерфейс выделения памяти,но тоже получается не очень красиво:
C++
1
pool.alloc(memory::alloctype::STATEMENT)
Что-то типа того,но проблема в том,что при добавлении нового типа нужно будет залезть в enum,а также в функцию alloc,и ещё в том,что alloc будет типа void *.А если делать по функции на каждый тип,то будет много функций-тоже криво.Нужно добиться жёсткого конроля памяти,и в то же время не испортить то,что уже есть..
Это что, в бэйсике так придумано?
Я,честно говоря,точно не понял,как там на самом деле,ибо на разных ресурсах пишут по-разному. Но вроде qbasicstation авторитетный ресурс,и если я правильно понял английский текст,то так и сделал.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru