Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
tom
1 / 1 / 2
Регистрация: 08.11.2008
Сообщений: 68
#1

Баланс скобок - C++

27.03.2009, 12:31. Просмотров 1532. Ответов 8
Метки нет (Все метки)

проверить правильность расстановки скобок, используя контейнерные типы(стек)
http://www.cyberforum.ru/cpp-beginners/thread32600.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2009, 12:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Баланс скобок (C++):

Баланс скобок
Добавьте плиз условие чтоб )(-говорило что не баланс..я прост незнаю ...

Баланс скобок
Помогите пожалуйста!!! Собственно задание: Текст в файле содержит многократно...

Баланс скобок
Доброе утро, мне было задано написать программу о том, соответствует ли каждой...

Баланс круглых скобок
Проверить, соблюдается ли в тексте баланс круглых скобок. Для каждой...

Проверить баланс скобок
:)Здравствуйте. Помогите пожалуйста с задачей. Проверить имеется ли в...

8
Night_Light
17 / 17 / 2
Регистрация: 14.02.2009
Сообщений: 86
27.03.2009, 12:33 #2
Цитата Сообщение от tom Посмотреть сообщение
проверить правильность расстановки скобок, используя контейнерные типы(стек)
а в чём у тебя проблема? не знаешь как пользоваться стеком? )
0
tom
1 / 1 / 2
Регистрация: 08.11.2008
Сообщений: 68
27.03.2009, 12:40  [ТС] #3
да, с обычным стеком я знаю а с таким нет((
0
Night_Light
17 / 17 / 2
Регистрация: 14.02.2009
Сообщений: 86
27.03.2009, 12:50 #4
Цитата Сообщение от tom Посмотреть сообщение
да, с обычным стеком я знаю а с таким нет((
какой это "обычный стэк"? и чем он по твоемому отличается от контейнерного?)
0
CheshireCat
Эксперт С++
2907 / 1256 / 114
Регистрация: 27.05.2008
Сообщений: 3,450
27.03.2009, 12:52 #5
Дык, эта..... Встретил открывающую скобку - push ее в стек. Встретил закрывающую - проверяй, что в вершине стека? Если открывающая "симметричного" типа, то pop эту скобку; если нет (включая вариант "стек пуст") - вуаля! на выход, скобки расставлены неправильно и нечего дальше проверять.
В конце смотри - если стек пуст, то скобки расставлены правильно, иначе - неправильно.

"В таком вот аксепте." (с) М.П.Камноедов
0
YurA_280784
Заблокирован
27.03.2009, 13:09 #6
Ну дык если ты встречаешь 4-ю закрывающую скобку, а впереди у тебя 3 открывающих, значит по-любэ ошибка - заведи себе два счётчика на '(' и ')' -скобки и сравни эти счётчики в конце
Хотя даже если баланс скобок соблюдается это не свидетельствует о правильности ввода гляди
(((5*sin(x)+a) + 1)*6) + 15 или
(((5*sin()x + a) + 1)*6), так что делай выводы
0
tom
1 / 1 / 2
Регистрация: 08.11.2008
Сообщений: 68
29.03.2009, 20:01  [ТС] #7
Ну что-то у меня не работает, надо исправить ошибки
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
void main() {
    stack <int, vector <int> > s;
    char k;
    char * string;
    cout<<"Enter string: "<<endl;
    cin>>string;
    s.empty();
    for (int i=0; i!='\0'; i++){
        if ((string[i]=='(')||(string[i]=='[')||(string[i]=='{'))
            s.push(string[i]);
        else
            if ((string[i]==')')||(string[i]==']')||(string[i]=='}')){
                if (s.top==nil)
                    cout<<"Disbalans bolshe zakritix skobok"<<endl;}
            else
                s.pop(k);
        if (string[i]== ')' && ((k=='{') || (k=='[')))
            cout<<"Nesoootvetstvie tipa"<<endl;
        if (string[i]== '}' && ((k=='(') || (k=='[')))
            cout<<"Nesoootvetstvie tipa"<<endl;
        if (string[i]== ']' && ((k=='{') || (k=='(')))
            cout<<"Nesoootvetstvie tipa"<<endl;
        if (s.top == nil)
            cout<<"Balans"<<endl;
        else
            cout<<"Disbalans bolshe otkritix skobok"<<endl; 
        while (!s.empty()) do{
        s.pop(string[i]);
        cout<<string[i];
    }
0
tom
1 / 1 / 2
Регистрация: 08.11.2008
Сообщений: 68
31.03.2009, 16:18  [ТС] #8
Кто нибудь может глянуть плиззз мою программу)))
0
tom
1 / 1 / 2
Регистрация: 08.11.2008
Сообщений: 68
06.04.2009, 12:07  [ТС] #9
исправте пожалуйста!!
0
06.04.2009, 12:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2009, 12:07
Привет! Вот еще темы с решениями:

Баланс скобок в файле
#include&lt;fstream.h&gt; #include&lt;iostream.h&gt; #include&lt;string.h&gt;...

Баланс фигурных скобок в файле
Вообщем нужно прочитать текст (любая программа, в файле name.txt) из файла и...

Проверять строку на баланс скобок
Драствуйте. Условие такое - написать програмку которая будет проверять строку...

Проверить баланс скобок в тексте программы
Задача: Создать файл в котором есть программа бейсик. Проверить на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru