Dze je subor www.TrSek.com/zadania/zatvorky.pas
{ ZATVORKY.PAS              Copyright (c) TrSek alias Zdeno Sekerak }
{ Je dany textovy subor f, ktory obsahuje program v jazyku pascal.  }
{ Vytvorte program, ktory preveri, ci pocty okruchlych zatvoriek    }
{ lavych a pravych su rovnake vytvorte program, ktory preveri, ci   }
{ pocty prikazov begin a end su rovnake                             }
{                                                                   }
{ Datum:23.05.2004                             http://www.trsek.com }

program zatvorky;
var f:file of char;
    ch:char;
    meno:string;
    slovo:string;
    zatv:integer;
    beg:integer;

begin
  WriteLn('Zistim ci pocet lavych a pravych zatvoriek je rovnaky.');
  Write('Zadaj meno suboru ktory mam preverit:');
  ReadLn(meno);

  Assign(f,meno);
  ReSet(f);

  while not(Eof(f)) do
  begin
    Read(f,ch);

    { nasiel zatvorky lavu, pravu }
    if( ch='(')then
     inc(zatv);
    if( ch=')')then
    dec(zatv);

    { pamata iba poslednych 5 znakov }
    slovo:=slovo+Upcase(ch);
    { iba 5 }
    if( length(slovo)>5)then
        delete(slovo,1,1);

    if( slovo='BEGIN')        then
     inc(beg);
    if( copy(slovo,3,3)='END')then
    dec(beg);
  end;

  Close(f);

  { aky je result }
  Write('Subor ',meno,' ');
  if(zatv=0)then WriteLn('ma spravny pocet zatvoriek')
            else WriteLn('nema spravny pocet zatvoriek');

  Write('Subor ',meno,' ');
  if(beg=0)then WriteLn('ma spravny pocet begin-end')
           else WriteLn('nema spravny pocet begin-end');

  ReadLn;
end.

Copyrigth by Zdeno Sekerak 2007, http://www.trsek.com