Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 08.02.2010
Сообщений: 22
1

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

08.02.2010, 20:24. Показов 4447. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
уже вторую неделю мучаюсь и не могу понять что да как...

суть такова:
вводится стока состоящая из скобок (возможны и другие символы) (скобки ставятся рандомно, без какой-либо последовательности), задача состоит в том чтобы определить правильно ли были расставлены скобки то есть если скобка была открыта, она должна быть закрыта. метод решения не имеет значения.


пример: ([]){}[]({[]}) - правильно
{])[(][{]()){] - неправильно

вот так вот...

просьба помочь хоть как-то, от просто совета как можно было бы решить до самого решения. сам блок задачи мне нафиг не нужен, нужна только функция которая это делает...

если у кого-то есть идеи как это можно устроить, напишите сюда, пожалуйста...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2010, 20:24
Ответы с готовыми решениями:

Проверить правильность расстановки скобок
Дано арифметическое выражение, содержащее три вида скобок "(","[","{". Проверить правильность...

Проверить правильность расстановки скобок.
Дана строка символов, содержащая круглые скобки.Проверить правильность расстановки скобок.

Необходимо проверить расстановок скобок на правильность написания
Необходимо проверить расстановок скобок.На правильность написания и исправить. Правильно (), Не...

Проверить правильность расстановки операторных скобок 'begin' и 'end'
Доброго времени суток )))) Помогите пожалуйста : проверка правильности расстановки операторных...

5
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.02.2010, 20:44 2
Попробуйте так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
d:=length(s);
m:=0;
k:=0;
n:=0;
for i:=1 to d do
 begin
  if s[i]='(' then m:=m+1;
  if s[i]=')' then m:=m-1;
  if s[i]='{' then n:=n+1;
  if s[i]='}' then n:=n-1;
  if s[i]='[' then k:=k+1;
  if s[i]=']' then k:=k-1;
  if (m<0) or (n<0) or (k<0) then
    begin
     write('NO');
     exit;
    end;
 end;
if (m=0) and (n=0) and (k=0) then
write('Yes')
else write('No');
1
1 / 1 / 0
Регистрация: 08.02.2010
Сообщений: 22
08.02.2010, 21:17  [ТС] 3
огромное спасибо тебе, человек...))
всё оказалось куда проще чем я думал...))
а я тут творил непонятно что и непонятно сколько занимал код...

осталось немножко подогнать под ту тему что надо))) но основа уже есть.
еще раз огромное спасибо!
0
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
09.02.2010, 01:59 4
KpoccoB0K, если немного подумать, то можно написать рекурсивную функцию для проверки правильности расставления скобок, за основу взять код ув. Puporev'a и убрать цикл, будет приятно смотреться, да и Вам лишняя практика не помешает.
0
1 / 1 / 0
Регистрация: 08.02.2010
Сообщений: 22
09.02.2010, 11:26  [ТС] 5
lexus_ilia, я не особый любитель рекурсивных функций... если возможно использование цикла, то я не побрезгую)) знаю что у рекурсии есть преимущества, и что циклы для лентяев, но по мне цикл просто удобней в использовании, если объем кода небольшой...
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
09.02.2010, 11:48 6
Цитата Сообщение от KpoccoB0K
знаю что у рекурсии есть преимущества
Единственное преимущество рекурсии - это изящность кода.
Цитата Сообщение от KpoccoB0K
я не особый любитель рекурсивных функций
Не нравится не используйте. Но как правильно написал Илья, тут дело не в том любите ли Вы рекурсивные функции или нет, тут дело в практике, которая никому не помешает.
0
09.02.2010, 11:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2010, 11:48
Помогаю со студенческими работами здесь

В некотором тексте проверьте правильность расположения круглых, квадратных и фигурных скобок
В некотором тексте проверьте правильность расположения круглых, квадратных и фигурных скобок. ...

Дан массив строк. Напишите программу, проверяющую правильность вложения операторных скобок begin . end — каждому begin должен соответствовать end
Дан массив строк, представляющий собой фрагмент программы на языке Pascal. Напишите программу,...

Проверить правильность расстановки скобок трех типов в выражении
Проверить правильность расстановки скобок трех типов (круглых, квадратных и фигурных) в выражении....

Правильность расстановки скобок
В строке записано математическое выражение с круглыми скобками. Проверить правильность расстановки...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru