Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: Название темы должно адекватно отражать суть решаемой задачи/проблемы.
Старый 11.12.2012, 00:54   #1
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию Строки - Проверить, является ли эта последовательность правильным скобочным выражением

Здравствуйте, нужна Ваша помощь

Дана последовательность А. Проверить, является ли эта последовательность правильным скобочным выражением, Учесть расстановку круглых, квадратных и фигурных скобок
Катерина Рыжая вне форума Ответить с цитированием
Старый 11.12.2012, 08:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Чем помочь то?
написать полностью за Вас?! Так это Вам в раздел фриланса (там за деньги напишут всё)

Или Вы будете сами писать и Вам конкретная помощь?
Давайте Ваши наработки...

Поищите по форуму, такие задачи решались уже.
Если кратенько - очень удобно использовать стек (структура типа LIFO - "последним пришёл, первым вышел") - когда встречается открыающая скобка любого типа - помещаем её в стек. Когда встречается закрывающая скобка - то проверяем, какой символ на вершине стека, если открывающая скобка ТОГО же типа, значит символ из стека вынуть и идти дальше, если же открывающая скобка на вершине стека не совпадает по типу с закрывающей - стоп-машина. В данном месте ошибка: "Закрывающая скобка без открывающей", прерывание цикла.
если дошли до конца строки - проверяем, если что-то в стеке - если есть - стоп-машина, ошибка "Нет закрывающих скобок".
вот и всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.12.2012, 09:57   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
var st:string;
function IsTrue( s:string;c1,c2:char):boolean;
var i:integer;
k:integer;
f:boolean;
begin
k:=0;
f:=true;
for i:=1 to length(s) do
begin
if (s[i]=c2) and (k<=0) then begin
f:=false;break;
end
else
if s[i]=c1 then k:=k+1
else
if (s[i]=c2) and (k>0) then k:=k-1;
end;
if f then f:=k=0;
IsTrue:=f;
end;

begin
readln(st);
Writeln(IsTrue(st,'(',')'));
Writeln(IsTrue(st,'[',']'));
Writeln(IsTrue(st,'{','}'));
// либо
//Writeln(IsTrue(st,'(',')')and IsTrue(st,'[',']') and IsTrue(st,'{','}'));
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 11.12.2012 в 10:01.
Mad_Cat вне форума Ответить с цитированием
Старый 11.12.2012, 11:22   #4
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию

Спасибо! Только не поняла, что такое k
Катерина Рыжая вне форума Ответить с цитированием
Старый 11.12.2012, 11:23   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

k - аналог стека от Сержа) только ооочень простой аналог
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 11.12.2012, 12:39   #6
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию

Чтото вроде буфера что ли?)
Катерина Рыжая вне форума Ответить с цитированием
Старый 11.12.2012, 12:43   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Чтото вроде буфера
что то вроде счетчика-индикатора
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки.Проверить, является ли выражение палиндромом naty7773 Помощь студентам 3 08.06.2012 14:50
является ли последовательность периодической Алька2206 Помощь студентам 2 01.07.2011 08:59
является ли заданная последовательность возрастающей amikulia Помощь студентам 2 14.01.2011 16:19
последовательность символов является идентификатором [Паскаль] Алекс74 Помощь студентам 3 16.12.2010 13:27
Проверить является ли строка палиндромом. rrrl Microsoft Office Excel 2 30.05.2010 18:33