Информатика 10-11. Книга 2. Практика алгоритмизации и программирования. Шауцукова Л.З. - 91 стр.

UptoLike

Составители: 

For i := 1 to NWords-1 do {лексикографическое упорядочение
слов}
For j := i+1 to NWords do
If Words[i]>Words[j] then
begin
Tmp := Words[i]; Words[i]:=Words[j]; Words[j]:=Tmp
end;
WriteLn; WriteLn('О т в е т');
WriteLn('Лексикографически упорядоченный массив слов:');
For i := 1 to NWords do Write(Words[i], ' ');
WriteLn; ReadLn
END.
Пример 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;
  For i := 1 to NWords-1 do {лексикографическое упорядочение
слов}
    For j := i+1 to NWords do
      If Words[i]>Words[j] then
        begin
           Tmp := Words[i]; Words[i]:=Words[j]; Words[j]:=Tmp
        end;
  WriteLn; WriteLn('О т в е т');
  WriteLn('Лексикографически упорядоченный массив слов:');
  For i := 1 to NWords do Write(Words[i], ' ');
  WriteLn; ReadLn
END.


 Пример 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;