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

Синтаксический анализатор понятия "скобки" (рекурсия) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ квадратная матрица http://www.cyberforum.ru/cpp-beginners/thread361048.html
помогите решить задачу на турбо си,очень надо( Получить целочисленную квадратную матрицу порядка 7, элементами которой являются числа 1,2,...,49, расположенные в ней по спирали
C++ помогите решить циклом!!! Имеется кусок ткани длиной М метров. От него последовательно отрезаются куски разной длины. Все данные по использованию ткани заносятся в компьютер. Компьютер должен выдать сообщение о том, что материала не хватает, если будет затребован кусок ткани, большей длины, чем имеется. http://www.cyberforum.ru/cpp-beginners/thread361047.html
C++ Описать структуру с именем AEROFLOT
Вариант 4 1. Описать структуру с именем АЕRОFLОТ, содержащую следующие поля: • NAZN - название пункта назначения рейса; • NUMR - номер рейса; • ТIР - тип самолета. 2. Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив AIRPORT, состоящий из семи элементов типа АЕRОFLОТ; записи должны быть упорядочены по возрастанию номера рейса; • вывод на экран номеров...
Плавятся мозги от непонятной задачи C++
Кто может, помогите написать программу, которая меняет местами последний (младший) и предпоследний байты переменной i типа int.
C++ Елочка из звездочек http://www.cyberforum.ru/cpp-beginners/thread361013.html
Понимаю, что это довольно легко, но у меня не получается. задача состоит в том, чтобы сделать елочку. входные данные: n-число треугольников, допустим 3 выходные данные: * *** * *** ***** *
C++ Заменить все положительные элементы целочисленного массива на значение минимального пожалуйста, помогите решить задачку на турбо си. заменить все положительные|отрицательные элементы целочисленного массива размера 10 на значение минимального|максимального. подробнее

Показать сообщение отдельно
Тома1993
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
07.10.2011, 00:48  [ТС]     Синтаксический анализатор понятия "скобки" (рекурсия)
Почти доделала программу, думаю, функции правильные, но с выводом возникли проблемы
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
#include <sstream>
#include <string>
#include <iomanip>
using namespace std;
 
bool Brackets ( istream &is );
 
bool Square ( istream &is );
 
bool Round ( istream &is );
 
int main()
 
{
      string str;
      
      cout << "Welcome to program Syntax Analysis of Bracket!" << endl;
      
      cout << "Input your string: " << endl;
      
      cin >> str; 
 
      stringstream is(str);
      
      Brackets(is);
      if (!Brackets(is))
            cout << "This isn't a brackets" << endl; //Brackets = false
      if (is.peek() >= 0) //есть что-то лишнее в строке
            cout << "This isn't a brackets" << endl;
 
      /*if ( Brackets ( is ) == true )
      {
         if ( Round ( is ) == true )
         cout << "This is round brackets" << endl;
         
         if ( Square ( is ) == true )
         cout << "This is square brackets" << endl;
 
         if ( (Round (is) != true) && (Square(is) != true) )
         {
            if ( is.peek() == 'A' )
                cout << "This is round brackets" << endl;
            else
                cout << "This is square brackets" << endl;
         }
      }
    */
      
      system ("pause");
      return 0;     
}
 
bool Brackets( istream &is )
    {
            
                if (is.peek() == '(')
                    return Round( is );
                else if (is.peek() == '[')
                    return Square( is );
                else if ((is.peek() == 'A') || (is.peek() == 'B'))
                     return true;
                else
                    return false;
    }
     
bool Round( istream &is )
    {
         
              if (is.peek() == 'A')
              {
                    is.get();
                    return true;
                    
              }
     
            if (is.get() != '(')  return false;
            if (is.get() != '(')  return false;
            if (!Round( is ))     return false;
            if (is.get() != ')')  return false;
            if (is.get() != '[')  return false;
            if (!Square( is ))    return false;
            if (is.get() != ']')  return false;
            if (is.get() != ')')  return false;
         
  }
     
bool Square( istream &is )
    {
            
                 if (is.peek() == 'B')
                 {
                    is.get();
                    return true;
 
                 }
     
                    if (is.get() != '[') return false;
                    if (is.get()!= '[')  return false;
                    if (!Square( is ))   return false;
                    if (is.get() != ']') return false;
                    if (is.get() != '(') return false;
                    if (!Round( is ))    return false;
                    if (is.get() != ')') return false;
                    if (is.get() != ']') return false;
        
    }
 
Текущее время: 02:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru