Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Каким поисковиком вы пользуетесь ?

Google.ru
Google.com
Rambler
Mail.ru
WebAlta
Яндекс
Апорт
Yahoo
Gogo.ru
Другим


Результаты
Другие опросы

Всего голосов: 1717
Комментарии: 4


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Практикум — Глава 7. Алгоритмы обработки символьной информации
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 7.5. Проверить, имеется ли в линейной записи заданной математической формулы баланс открывающих и закрывающих скобок.

Система тестов

Номер  теста Проверяемый  случай Данные Результат
1 При просмотре линейной записи слева направо первой встречается закрывающая скобка ''a)b+1('' ''Нет баланса''
2 Первой встречается открывающая скобка, но число открывающих и закрывающих скобок не совпадает ''(a+b))'' ''Нет баланса''
3 Есть баланс скобок ''(a+b/(c*d))'' ''Есть баланс''

Демонстрация

Школьный АЯ

алг Баланс скобок(арг лит S, рез лит Otvet)
нач цел Dlina, Flag, i
  i:=1; Flag:=0; Dlina:=длин(S)
  нц пока (Flag>=0) и (i<=Dlina)
     если S[i] = "("
       то Flag:=Flag+1
     все
     если S[i] = ")"
       то Flag:=Flag-1
     все
     i:=i+1
  кц
  если Flag=0
     то Otvet := "Есть баланс"
     иначе Otvet := "Нет баланса"
  все
кон
 
Turbo Pascal
Program Balance;
  Uses Crt;
  Var S              : String;
      Dlina, Flag, i : Integer;
BEGIN ClrScr;
  GotoXY(15, 5);
  Write('Введите линейную запись математической формулы :'); 
  GotoXY(32,7); ReadLn(S);
  i:=1; Flag:=0; Dlina:=Length(S);
  While (Flag>=0) and (i<=Dlina) do
    begin
      If S[i] = '(' then Flag:=Flag + 1;
      If S[i] = ')' then Flag:=Flag - 1;
      i:=i+1
    end;
  GotoXY(32, 9); WriteLn('О т в е т');
  GotoXY(15,11);
  If Flag=0 then Write('Есть баланс ') else Write('Нет баланса ');
  WriteLn('открывающих и закрывающих скобок');
  ReadLn
END.
 
QBasic
CLS
INPUT "Введите линейную запись математической формулы :", S$
i = 1 : Flag = 0 : Dlina = LEN(S$)
WHILE Flag >= 0 AND i <= Dlina
  IF MID$(S$, i, 1) = "(" THEN Flag = Flag + 1
  IF MID$(S$, i, 1) = ")" THEN Flag = Flag - 1
  i = i + 1
WEND
PRINT : PRINT "О т в е т"
IF Flag = 0 THEN PRINT "Есть баланс "; ELSE PRINT "Нет баланса ";
PRINT "открывающих и закрывающих скобок"
END

[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать