Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program verem;
- uses crt;
- Type adattip=string;
- pelem=^veremelemtip;
- veremelemtip=record
- adat:adattip;
- kov:pelem;
- end;
- const kezdoZarojel:set of char = ['[','{','('];
- zaroZarojel:set of char = ['[','}',')'];
- Procedure ures (var v:pelem);
- Begin
- v:=nil;
- End;
- Function ures_e (v:pelem):boolean;
- Begin
- ures_e:=v=nil;
- End;
- Function tele_e (v:pelem):boolean;
- Begin
- tele_e:=sizeof(veremelemtip)>maxavail;
- End;
- Function teteje (v:pelem):string;
- var mi:adattip;
- Begin
- If not ures_e(v) then mi:=v^.adat;
- teteje:=mi;
- End;
- Procedure tetejere (var v:pelem; mit:adattip);
- Var uj:pelem;
- Begin
- If not tele_e(v) then begin
- New(uj);
- uj^.adat:=mit;
- uj^.kov:=v;
- v:=uj;
- End;
- End;
- Function tetejerol (var v:pelem):adattip;
- Var seged:pelem;
- mit:adattip;
- Begin
- mit:='ures';
- If not ures_e(v) then begin
- mit:=v^.adat;
- seged:=v;
- v:=v^.kov;
- dispose(seged);
- End;
- tetejerol:=mit;
- End;
- Procedure listaz (v:pelem);
- Var seged:pelem;
- Begin
- If not ures_e(v) then begin
- seged:=v;
- While seged<>nil do begin
- Writeln(seged^.adat);
- seged:=seged^.kov;
- End;
- End;
- End;
- function Pair(jel:string):string;
- var vissza:string;
- begin
- vissza:='hibas';
- if jel = '(' then vissza:= ')'
- else if jel= '[' then vissza:= ']'
- else if jel= '{' then vissza:='}'
- else if jel = ')' then vissza:='('
- else if jel=']' then vissza:='['
- else if jel='}' then vissza:= '{';
- Pair:=vissza;
- end;
- function helyesZarojel(kif:string):boolean;
- var i:byte;
- helyes:boolean;
- verem:pelem;
- seged:adattip;
- begin
- ures(verem);
- helyes:=true;
- for i:=1 to length(kif) do
- begin
- if kif[i] in kezdoZarojel then
- tetejere(verem,kif[i])
- else if kif[i] in zaroZarojel then
- begin
- if ures_e(verem) = true then
- begin
- helyes:=false;
- break;
- end;
- if Pair(kif[i]) = teteje(verem) then
- begin
- seged:=Tetejerol(verem);
- end;
- end
- else
- begin
- helyes:=false;
- break;
- end;
- end;
- if (i<length(kif)) or (not ures_e(verem)) or (helyes = false) then
- helyes:=false;
- if(i=length(kif)) AND (ures_e(verem)) then
- helyes:=true;
- helyesZarojel:=helyes;
- end;
- Var teto:pelem;
- data:string;
- jo:boolean;
- Begin
- clrscr;
- data:='[asdas+(f{s}daa)]';
- jo:=helyesZarojel(data);
- writeln(jo,' a zarojelezés');
- Readln;
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement