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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.61
Stas12
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 102
#1

Программа проверки правильности скобок - C++

27.10.2011, 14:07. Просмотров 3296. Ответов 6
Метки нет (Все метки)

Написать программу которая определит правильно ли расставлены скобки (,) в выражении . Например (222-(2*Х+5))-3*у). Никак не могу понять((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2011, 14:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа проверки правильности скобок (C++):

Найти баг в простой функции проверки правильности скобок - C++
Привет! Проходил онлайн тест, нужно было в очень ограниченное время без IDE (форма фиксирует активность, копипаста из IDE не прокатит)...

Проверка правильности расстоновки скобок - C++
Дана страка. Проверить правильность расстановки скобок (в страке приутствуют только круглые скобки). Вот мой текст, программа не правильно...

Проверка правильности расстановки скобок в строке (рекурсия) - C++
Помогите написать рекурсивную функцию, проверяющую правильность расстановки скобок в строке. Правильные скобочные структуры: () ({}) ...

функция проверки правильности написания адреса почты - C++
Написать функцию проверки правильности написания адреса почты. Функция возвращает указатель на переданную в неё строку с адресом почты,...

Стековая реализация проверки правильности скобочной последовательности - C++
Надо проверить, верна ли скобочная последовательность. Решение с помощью стека. Программа ломается на самом простом тесте(лол) : (). Но я...

Добавить в программу функцию проверки правильности ввода даты - C++
Всем привет, есть программа на C++, которая подсчитывает количество дней, прошедших между двумя датами. Помощи прошу в том, чтобы...

6
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
27.10.2011, 14:31 #2
Цитата Сообщение от Stas12 Посмотреть сообщение
Никак не могу понять((
Самый простой вариант:
1) Заводишь переменную-счётчик, инициализируешь её 0.
2) Начинаешь анализировать строку слева направо:
2.1) если текущий символ "(" увеличиваешь счётчик на 1.
2.2) если текущий символ ")" уменьшаешь счётчик на 1, при этом, если счётчик примет отрицательное значение значит скобки сбалансированы неверно.
В конечном итоге, если счётчик будет равен 0 значит скобки расставлены правильно.
0
pincet
1245 / 817 / 90
Регистрация: 23.07.2010
Сообщений: 4,201
27.10.2011, 14:32 #3
-бежишь по строке вправо до первой ) (или до конца строки)
-заменяешь ее пробелом
-бежишь влево до (. если достиг начала или ")" - ошибка
-заменяешь на пробел
-начинаешь сначала, до тех пор, пока не достиг конца и не нашел не одной ")"
-бежишь влево, если не нашел ни одной "(" - все верно, иначе - ошибка
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.10.2011, 14:38 #4
http://www.cyberforum.ru/search.php?searchid=3677808 - на форуме уже много раз было

Вот, к примеру, на основе стеков:
1
stacytwo
Сообщений: n/a
27.10.2011, 19:45 #5
Вот у меня схожая проблема. Но задача(на Паскале): доставить недостающие скобки, и я не понимаю, как это сделать . Подскажите пожалуйста
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
28.10.2011, 09:06 #6
Цитата Сообщение от Stas12
Написать программу которая определит правильно ли расставлены скобки (,) в выражении . Например (222-(2*Х+5))-3*у). Никак не могу понять((
открывающие скобки кладёшь в стек
закрывающие скобки снимаешь со стека
если в конце стек не пуст, то скобки не сбалансированны
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
28.10.2011, 09:08 #7
Цитата Сообщение от stacytwo Посмотреть сообщение
Но задача(на Паскале): доставить недостающие скобки, и я не понимаю, как это сделать
А ты разделом не ошибся?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2011, 09:08
Привет! Вот еще темы с ответами:

функция проверки правильности написания адреса почты (под DevC++ - C++
Написать функцию проверки правильности написания адреса почты. Функция возвращает указатель на переданную в неё строку с адресом почты,...

Разработать функцию для проверки баланса парных скобок в строке - C++
Разработать и испытать функцию для проверки баланса парных скобок в строке, то есть количество открытых скобок должно совпадать с...

Составить программу проверки баланса скобок арифметического выражения, введенного с клавиатуры - C++
Помогите пожалуйста написать на C++ Составить программу проверки баланса скобок арифметического выражения, введенного с клавиатуры.

Не работает программа поиска несовпадения скобок со стеком, где ошибка*? - C++
Добрый день, задали задачу Есть строка символов, признаком конца, которой являет- ся ;. В строке могут быть фигурные, круглые, квадратные...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
28.10.2011, 09:08
Ответ Создать тему
Опции темы

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