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

Синтаксический анализатор. Формула - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти в матрице самую длинную цепочку подряд стоящих 0 по горизонтали или вертикали http://www.cyberforum.ru/cpp-beginners/thread877581.html
Матрица состоит из 0 и 1. Найти в ней самую длинную цепочку подряд стоящих 0 по горизонтали или вертикали. Для ориентации поиска использовать функцию. Заранее благодарна))
C++ Дано натуральное число N. Вычислить Помогите решить задачу до завтра, зачет по информатике)) . Дано натуральное число N. Вычислить s=\sum_{k=1}^{N}{(-1)}^{k+1}*\prod_{m=1}^{2k}cos(m+1/2k) http://www.cyberforum.ru/cpp-beginners/thread877571.html
Дано натуральное число N>2. Вычислить C++
Помогите решить задачу: Дано натуральное число N>2. Вычислить \sum_{k=2}^{N}\prod_{i=1}^{k-1}sin(\pi+i/k) Добавлено через 20 минут S=\sum_{k=2}^{N}\prod_{i=1}^{k-1}sin(\pi+i/k)
C++ Дано натуральное число N. Вычислить
Тут еще более или менее понятно, но все-таки хотелось бы сверить... 3.Дано натуральное число N. Вычислить S=\sum_{i=1}^{N}{i!/(N+i)!} Буду очень признателен...
C++ Дано натуральное число N. Вычислить http://www.cyberforum.ru/cpp-beginners/thread877549.html
Тут еще более или менее понятно, но все-таки хотелось бы сверить... 2.Дано натуральное число N. Вычислить S=\sum_{i=1}^{N}\sum_{k=0}^{i}{(i-k)/(i+k)} Буду очень признателен...
Visual C++ Как в MFC грамотно обработать деление на 0? Стыдновато за глупый вопрос, но сам пока не додумался. пишу несложную программу для работы с комплексными числами, возникла ситуация: надо как-то обработать деление на 0. Ввод, естественно, через edit-форму. В консоли все несложно было, а тут как - пока непонятно. Ввод комплексного числа выглядит примерно так: в одно окошко edit control поступает CString строка, и с помощью нехитрых 30 строк... подробнее

Показать сообщение отдельно
papik1234567890
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 14
24.05.2013, 22:59     Синтаксический анализатор. Формула
Нужно построить синтаксический анализатор для понятия формула. Программа выдает ошибки.
вот условие:
Синтаксический анализатор. Формула

и вот мой код:
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <string.h>
#include <Windows.h>
//
using namespace std;
//
char str[1000];
int pos=0;
//
bool formula();
bool zifra();
bool znak();
 
bool formula(){
    bool f1=formula();
    bool z = zifra();
    if(z)
        return true;
    pos++;
        if (f1)
            return true;
        
        else
            return false;
 
//
        
    bool zn=znak();
    if((str[pos]==f1) && (str[pos+1]==zn) && (str [pos+2]==f1)){
        int pos_origin=pos;
        pos+=2;
        if(!formula()){
            return false;
        }
 
        return true;
    }
 
    else
        return false;
 
}
//
bool zifra(){ // 
    int pos_origin;
 
    if ((str[pos]=='1')||(str[pos]=='2')||(str[pos]=='3')||(str[pos]=='4')||(str[pos]=='5')||(str[pos]=='6')||(str[pos]=='7')||(str[pos]=='8')||(str[pos]=='9')){
        pos++;
        return true;
        
    }
    
    else
        return false;
}
//
bool znak(){
    
    if ((str[pos+1]=='+')||(str[pos+1]=='-')||(str[pos+1]=='*')){
        pos++;
        return true;
    }
    else
        return false;
}
//
 
//
int main(){
    //
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    //
    cout<<"Введите формулу:"<<endl;
    cin>>str;
    bool frm=formula();
    if(frm)
        cout<<"Правильно!"<<endl;
    else 
        cout<<"Не верно!"<<endl;
    //
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru