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

Проверка на расстановку скобок - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Непонятен текст задания http://www.cyberforum.ru/cpp-beginners/thread950775.html
Вот задание: b) Создать абстрактный тип данных (структура) - вектор, который имеет указатель на float и число элементов. Определить функции: инициализации, удаления вектора, установки/ изменения размера, доступа к элементам вектора, вычисления суммы элементов вектора. Для примера, в функции main, организовать поэлементное умножение двух векторов. Не понимаю на счет числа элементов Так как...
C++ Указатели (нужно передать массив в качестве параметра в функцию) Добрый день! имеется массив array его нужно передать в качестве параметра в функцию, принимающую в качестве аргумента LPVOID: function(LPVOID arr), я делаю так: function(&array), в большинстве случаев все работает, но иногда вылетает - пытаюсь понять, связано ли это с неправильной передачей аргумента, ?или все-таки нужно передавать function(array) без &, массив сам по себе это указатель на... http://www.cyberforum.ru/cpp-beginners/thread950771.html
C++ В чем разница?
Скажите в чем разница между двумя кусками кода: std::string a; while ((std::cin>>a)!="Quit") { std::cout<<a; }
Работа с классами C++
Привет!!! Есть задачка: "Определите класс Oper, содержащий идентификатор типа ld (string или C-строка) и операцию (указатель на функцию или функциональный объект). Определите класс Cat_object, который содержит список элементов типа Oper и void*. Снабдите Cat_object операциями add_oper(Oper), которая добавляет Oper к списку; remove_oper(id), которая удаляет Oper, идентифицируемую с помощью Id...
C++ Stack со сменой представления http://www.cyberforum.ru/cpp-beginners/thread950742.html
Здорова господа!!! Есть задачка: "Напишите класс Stack, для которого можно сменить представление на стадии выполнения программы. Подсказка: "Любую проблему можно решить введя еще один уровень косвенности" " Тут не понятно что нам нужно сделать. Рассмотрим просто теоретически, допустим есть у нас класс Stack и нам что нужно от него по создавать производные классы допустим А и допустим B....
C++ Нужен кусок кода Привет всем, даже не знаю сюда ли обратился.....В общем нужен код который выполняется с момента нажатия в браузере например мозиллы CTRL+U. Где мне его взять? Если у кого есть напишите пожалуйста! Думаю я что там не так уж и много написано ). Ну или просто подскажите как выудить исходный код страницы, как это делается? подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,316
09.09.2013, 16:10     Проверка на расстановку скобок
Нет. Вот смотри, если руководствоваться изложенными правилами:
Парсер разбирает строку следующим образом:
1) - встретилась открывающая скобочка - записать ее в соответствующий стек.
2) - встретилась закрывающая скобочка - проверить есть ли в соответствующем стеке предыдущая открывающая скобочка. Если есть, то вычесть одну. Если нет, то ошибка разбора.
У нас есть стеки s1, s2, s3, s4. Анализируем строку: ([)]
Берем первую скобку: ( - она открывающая. По п.1 помещаем ее в стек - например, s1.
Берем вторую скобку: [ - она тоже открывающая, помещаем ее в стек s2.
Итого: s1 содержит (, s2 содержит [, стеки s3 и s4 пока пусты.
Разбираем строку дальше: третья скобка ) - закрывающая. По правилу п.2 выбираем открывающую скобку из стека s1 - открывающая скобочка там как раз есть.
Разбираем следующую скобку: ] - закрывающая, поэтому выбираем открывающую скобочку из стека s2 - она там как раз есть.
Строка закончена.
Все стеки у нас пусты. Вывод: скобки расставлены правильно.

А на самом деле это не так!
 
Текущее время: 23:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru