Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.11 KB | None | 0 0
  1. Program verem;
  2. uses crt;
  3. Type adattip=string;
  4.      pelem=^veremelemtip;
  5.      veremelemtip=record
  6.                  adat:adattip;
  7.                  kov:pelem;
  8.      end;
  9. const kezdoZarojel:set of char = ['[','{','('];
  10.       zaroZarojel:set of char = ['[','}',')'];
  11.  
  12. Procedure ures (var v:pelem);
  13.           Begin
  14.           v:=nil;
  15.           End;
  16.  
  17. Function ures_e (v:pelem):boolean;
  18.          Begin
  19.          ures_e:=v=nil;
  20.          End;
  21.  
  22. Function tele_e (v:pelem):boolean;
  23.          Begin
  24.          tele_e:=sizeof(veremelemtip)>maxavail;
  25.          End;
  26.  
  27. Function teteje (v:pelem):string;
  28. var mi:adattip;
  29.           Begin
  30.           If not ures_e(v) then mi:=v^.adat;
  31.       teteje:=mi;
  32.           End;
  33.  
  34. Procedure tetejere (var v:pelem; mit:adattip);
  35.           Var uj:pelem;
  36.           Begin
  37.           If not tele_e(v) then begin
  38.                                 New(uj);
  39.                                 uj^.adat:=mit;
  40.                                 uj^.kov:=v;
  41.                                 v:=uj;
  42.                                 End;
  43.           End;
  44.  
  45. Function tetejerol (var v:pelem):adattip;
  46.           Var seged:pelem;
  47.           mit:adattip;
  48.           Begin
  49.       mit:='ures';
  50.           If not ures_e(v) then begin
  51.                                 mit:=v^.adat;
  52.                                 seged:=v;
  53.                                 v:=v^.kov;
  54.                                 dispose(seged);
  55.                                 End;
  56.       tetejerol:=mit;
  57.           End;
  58.  
  59. Procedure listaz (v:pelem);
  60.           Var seged:pelem;
  61.           Begin
  62.           If not ures_e(v) then begin
  63.                                 seged:=v;
  64.                                 While seged<>nil do begin
  65.                                                     Writeln(seged^.adat);
  66.                                                     seged:=seged^.kov;
  67.                                                     End;
  68.                                 End;
  69.           End;
  70. function Pair(jel:string):string;
  71. var vissza:string;
  72. begin
  73.     vissza:='hibas';
  74.     if jel = '(' then vissza:= ')'
  75.     else if jel= '[' then vissza:= ']'
  76.     else if jel= '{' then vissza:='}'
  77.     else if jel = ')' then vissza:='('
  78.     else if jel=']' then vissza:='['
  79.     else if jel='}' then vissza:= '{';
  80.     Pair:=vissza;
  81. end;
  82. function helyesZarojel(kif:string):boolean;
  83. var i:byte;
  84.     helyes:boolean;
  85.     verem:pelem;
  86.     seged:adattip;
  87. begin
  88.     ures(verem);
  89.     helyes:=true;
  90.     for i:=1 to length(kif) do
  91.     begin
  92.         if kif[i] in kezdoZarojel then
  93.             tetejere(verem,kif[i])
  94.         else if kif[i] in zaroZarojel then
  95.         begin
  96.             if ures_e(verem) = true then
  97.             begin
  98.                 helyes:=false;
  99.                 break;
  100.             end;
  101.             if Pair(kif[i]) = teteje(verem) then
  102.             begin
  103.                 seged:=Tetejerol(verem);
  104.             end;
  105.         end
  106.         else
  107.         begin
  108.             helyes:=false;
  109.             break;
  110.         end;
  111.     end;
  112.     if (i<length(kif)) or (not ures_e(verem)) or (helyes = false) then
  113.         helyes:=false;
  114.     if(i=length(kif)) AND (ures_e(verem)) then
  115.         helyes:=true;
  116.     helyesZarojel:=helyes;
  117. end;
  118.  
  119. Var teto:pelem;
  120.     data:string;
  121.     jo:boolean;
  122.    
  123.  
  124. Begin
  125. clrscr;
  126. data:='[asdas+(f{s}daa)]';
  127. jo:=helyesZarojel(data);
  128. writeln(jo,' a zarojelezés');
  129. Readln;
  130. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement