с заданием по очень нужно! Заранее

Alin4ikVP Alin4ikVP    1   15.03.2020 07:55    1

Ответы
SASHA123741852 SASHA123741852  11.10.2020 21:52

const

      MAX = 20;

    var

      s:string;

      stack:array[1..MAX] of string;

      top:integer;

      i:byte;

   

    procedure Push(ch:string);

    begin

      if top>=MAX then WriteLn('Stask full')

      else

      begin

        stack[top]:=ch;

        top:=top+1;

      end;

    end;

   

    function Pop:string;

    begin

      top:=top-1;

      if top<1 then

      begin

        WriteLn('Stack underflow');

        top:=top+1;

      end

      else Pop := stack[top];

    end;

begin

top:=1;

s:='<asdf<asdf>asdf>';//правильная строка

for i:=1 to length(s) do

begin

   if s[i]='<' then Push('<');

   if s[i]='>' then

       if Pop()<>'<' then WriteLn('Ошибка!');

end;

if top<>1 then WriteLn('Ошибка!');

top:=1;

s:='<asdf<asdfasdf>';//не правильная строка

for i:=1 to length(s) do

begin

   if s[i]='<' then Push('<');

   if s[i]='>' then

     if Pop()<>'<' then WriteLn('Ошибка!');

end;

if top<>1 then WriteLn('Ошибка!');

end.

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
ruskei ruskei  11.10.2020 21:52

===== PascalANC.NET =====

begin

 var s := ReadString;

 var St := new Stack<char>;

 foreach var c in s do

   case c of

     '<': St.Push(c);

     '>':

       if St.Count > 0 then

         St.Pop

       else

       begin

         Print('Ошибка: лишняя >');

         exit

       end

   end;

 if St.Count > 0 then

   Print('Ошибка: лишняя <')

 else

   Print('Ошибок не обнаружено')

end.


с заданием по очень нужно! Заранее
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика