Предмет: Информатика, автор: luprov

Информатика,программирование

Приложения:

Ответы

Автор ответа: Аноним
0
// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
begin
  var n:=ReadlnInteger('Число строк:');
  Writeln('Вводите выражения построчно');
  var a:=ReadArrString(n);
  var ibr:array[1..4] of integer;
  Writeln('Результаты работы программы');
  for var j:=0 to a.Length-1 do begin
    var s:=a[j];
    var lvl:=0;
    var s1:string;
    repeat
      s1:=s.MatchValue('((.*))');
      if s1.Length>0 then begin
        Inc(lvl);
        var i:=Pos(s1,s);
        if lvl>1 then begin ibr[3]:=ibr[1]; ibr[4]:=ibr[2] end;
        ibr[1]:=i; ibr[2]:=i+s1.Length-1;
        s[ibr[1]]:='{'; s[ibr[2]]:='}';
        end
    until s1.Length=0;
    if lvl>0 then begin s[ibr[1]]:='('; s[ibr[2]]:=')' end;
    if lvl>1 then begin s[ibr[3]]:='['; s[ibr[4]]:=']' end;
    a[j]:=s;
    Writeln(a[j])
    end
end.

Тестовое решение
Число строк: 5
Вводите выражения построчно
ln(sin((a+b)c-d))
2+(2+(2+(3+(4+7)+1)+9)+2)*3
2+(2-3)/4
(1+(2-3)/5)*4
неверная 1+(2*2)-5)
Результаты работы программы
ln{sin[(a+b)c-d]}
2+{2+{2+[3+(4+7)+1]+9}+2}*3
2+(2-3)/4
[1+(2-3)/5]*4
неверная 1+(2*2)-5)
Похожие вопросы
Предмет: Алгебра, автор: mkujj736
Предмет: Математика, автор: NikaMindiashvil