Форум программистов, компьютерный форум 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
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
20.08.2009, 01:36  [ТС]     Пишем свой интерпретатор языка BASIC
Вот это новость! Как теперь это исправить,я даже не знаю )) Наверное я зря убрал динамическую память,помнится тогда всё работало (ну вроде )

Добавлено через 12 минут 55 секунд
Скорее всего это связано с тем,что передаваемое значение-это не просто значение,а объект.Видимо,объект по значению целиком не передаётся,если он не в динамической памяти,ведь это некая составная единица,и похоже,что так делать с объектами нельзя.То есть получается,что все промежуточные значения теперь теряются при передаче из функции,я попробую переделать.Но имеет ли смысл,вроде решено делать промежуточный код ?

Добавлено через 1 час 1 минуту 0 секунд
А может,ты прав,я заметил,что у меня выражение вроде как по другому сворачивается,но как теперь переделать-ума не приложу.

Деревья как отдельное понятие не нужны,но ведь надо же куда-то свалить все эти структуры?

Добавлено через 13 минут 30 секунд
Вот поменял немного-вроде теперь ок
C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    static Value syntax_parserPrimary()
    {
#if DEBUG && SYNTAX_PARSER_DEBUG
        debugger_Print(SYNTAX_PARSER_PRIMARY);
#endif
        switch (parser_GetToken())
        {
            case TOKEN_CONST_INT: {
                Value int_x(::parser_CurTokenStr, INT);
                return int_x;
            }
            case TOKEN_CONST_FLOAT: {
                Value float_x(::parser_CurTokenStr, FLOAT);
                return float_x;
            }
            case TOKEN_CONST_STRING: {
                Value string_x(::parser_CurTokenStr, STRING);
                return string_x;
            }
            case TOKEN_IDENT: {
                return syntax_parserIdentRValue();
            }
            case TOKEN_DELIM_MINUS: {
                return -syntax_parserPrimary();
            }
            case TOKEN_BINARY_NOT: {
                return ~syntax_parserBinaryExpr();
            }
            case TOKEN_LEFT_PARENTH: {
                Value lvalue;
                lvalue = syntax_parserBinaryExpr();
 
                if (::parser_CurToken != TOKEN_RIGHT_PARENTH)
                   error(RIGHTP_EXPECTED);
                return lvalue;
                }
            default:
                error(WRONG_EXPRESSION);
        }
        // This is bad
        //это просто чтобе не получать предупр.компилятора
        Value null_x("0",INT);
        return null_x;
    }
/* ************************************************************************** */
    static Value syntax_parserTerm ()
    {
#if DEBUG && SYNTAX_PARSER_DEBUG
        debugger_Print(SYNTAX_PARSER_TERM);
#endif
        // Начальное значение.
        Value lvalue;
        lvalue = syntax_parserPrimary();
 
        while (true){
            switch (parser_GetToken())
            {
                case TOKEN_DELIM_MULTIPLY:
                    lvalue = lvalue * syntax_parserPrimary();
                break;
                case TOKEN_DELIM_DIVIDE:
                     lvalue = lvalue / syntax_parserPrimary();
                break;
                default: return lvalue;
            }
        }
        return lvalue;
    }
Тесты прогнал-работает.
 
Текущее время: 14:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru