Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2013, 19:28   #1
lassska
 
Регистрация: 02.04.2013
Сообщений: 6
По умолчанию БНФ в С++

Дана формула :

<формула>::= <число>|<знак>(<формула>)
<знак>::=+|-
<число>::=<цифра>|<число><цифра>
<цифра>::=0|1|2|3|4|5|6|7|8|9

Проверить правильность синтаксиса.

помогите чем-нибудь.
lassska вне форума Ответить с цитированием
Старый 22.04.2013, 01:14   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

lassska

Дана формула :

<формула>::= <число>|<знак>(<формула>)
<знак>::=+|-
<число>::=<цифра>|<число><цифра>
<цифра>::=0|1|2|3|4|5|6|7|8|9

Проверить правильность синтаксиса.


начни с изучения с этой ссылки:

http://ru.wikipedia.org/wiki/%D0%A4%...83%D1%80%D0%B0
Rififi вне форума Ответить с цитированием
Старый 22.04.2013, 22:05   #3
lassska
 
Регистрация: 02.04.2013
Сообщений: 6
По умолчанию

Ну я поняла,что алфавит этой формулы такой:
либо числа(например- 12232, 5656,656 и тд...),
либо формула (например- +(45), -(+(7567)) и тд...).
Не могу проверку сделать на скобки норм, вот код (в QT)

Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include <string>
using namespace std;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
string s1;
s1=ui->lineEdit->text().toStdString();


enum s{zn1='-',zn2='+', sko='(',skz=')'} a,b,c,d;

a=sko;
b=skz;
c=zn1;
d=zn2;

string s4;
s4=a;
string s2;
s2=c;
string s3;
s3=d;
string s5;
s5=b;
if(s1==s2||s1==s3)
ui->plainTextEdit->insertPlainText(s1.c_str());
if(ui->lineEdit->text().toInt())
ui->plainTextEdit->insertPlainText(s1.c_str());
}
просто на числа и знак перед ними норм проверяет, со скобками запуталась((((
lassska вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БНФ, дерево левой рекурсии. Любопытный человек Общие вопросы по программированию, компьютерный форум 4 17.11.2012 07:29
Редакторы БНФ(РБНФ) грамматик Пепел Феникса Свободное общение 5 08.12.2011 17:21