Danh mục

CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI part 3

Số trang: 11      Loại file: pdf      Dung lượng: 25.95 KB      Lượt xem: 17      Lượt tải: 0    
Jamona

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu chuỗi và các bài toán trên chuỗi part 3, công nghệ thông tin, tin học văn phòng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
CHUỖI VÀ CÁC BÀI TOÁN TRÊN CHUỖI part 3 if stack.index=0 then pops:=false else b egin pops:=true; dt:=stack.data[stack.index]; dec(stack.index); end;end;{-----------------------------------------------------------}Procedure WriteStack(stack:stackc);var i:integer;Begin For i:=0 to stack.index do write(stack.data[i]);End;{-------------------------------------------------------------}procedure WriteState(ch:char;P:string; stack:stackc);Begin inc(step); write(step:3, ); write(ch:5); write(p:20);{Hien thi tung buoc} write( ); writestack(stack);{Hien thi tung buoc} writeln; if step mod 23=0 then 23 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh Begin write(Press enter to continue...); readln; end;End;{-----------------------------------------------------------}Function Priority(Token:char):integer;Begin case Token of (,): Priority:=0; -,+: Priority:=1; *,/: Priority:=2; ^: Priority:=3; End;End;{-------------------------------------------------------------}Procedure Init(var stack:stackc);Begin stack.index:=0;End;{-------------------------------------------------------------}Procedure InitR(var stack:stackR);Begin stack.index:=0;End;{--------------------------------------------------------------}function TheTop(var stack:stackc):char;Begin if stack.index=0 then 24 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh TheTop:=#0 else TheTop:=stack.data[stack.index];End;{-------------------------------------------------------------}function Empty(var stack:stackc):boolean;Begin if stack.index=0 then Empty:=true else Empty:=false;End;{--------------------------------------------------------------}function EmptyR(var stack:stackR):boolean;Begin if stack.index=0 then EmptyR:=true else EmptyR:=false;End;{--------------------------------------------------------------}function Push(var stack:stackc;dt:char):boolean;Begin if stack.index=max+1 then push:=false else Begin inc(stack.index); push:=true; 25 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh stack.data[stack.index]:=dt; end;End;{---------------------------------------------------------------}function PushR(var stack:stackR;dt:Real):boolean;Begin if stack.index=max+1 then pushR:=false else Begin inc(stack.index); pushR:=true; stack.data[stack.index]:=dt; end;End;{--------------------------------------------------------}function Pop(var stack:stackc;var dt:char):boolean;Begin if stack.index=0 then Pop:=false else Begin Pop:=True; dt:=stack.data[stack.index]; dec(stack.index); End;End;{---------------------------------------------------------}function PopR(var stack:stackR;var dt:Real):boolean; 26 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnhBegin if stack.index=0 then PopR:=false else Begin PopR:=True; dt:=stack.data[stack.index]; dec(stack.index); End;End;{----------------------------------------------------------}function DeleteBlank(s:string):string;var i,j:integer;Begin j:=0; i:=1; while ifunction Polish(s:string; var p:string) :boolean;var i,j:integer; stack:stackc; ch:char;Begin Polish:=true; s:=DeleteBlank(s); s:=s+); init(stack); push(stack,(); i:=1; p:=; while not Empty(stack) do Begin if upcase(s[i]) in [A..Z] then Begin p:=p+upcase(s[i]); WriteState(s[i],p,stack); end else Begin if s[i]=( then Begin Push(stack,s[i]); WriteState(s[i],p,stack); End else if s[i] =) then 28 Vâ Minh Phæ – Bæ m«n Khoa häc m¸y tÝnh Begin pop(stack,ch); while ch( do Begin p:=p+ch; pop(stack,ch); End; WriteState(s[i],p,stack); End else if s[i] in [-,+,/,*,^] then Begin{Coi nhu la phep tinh} while (Priority(TheTop(stack))>=Priority(s[i])) do Begin pop(stack,ch); p:=p+ch; End; ...

Tài liệu được xem nhiều: