Program Queue (antrian) di Pemograman pascal
berikut ini source code pogram Queue ,program antrian pada pemrograman pascal:
uses crt;Source code diatas adalah source code program Queue di pemrograman pascal.Demikian artikel mengenai program Queue di pemrograman pascal. semoga dapat bermanfaaat. Jangan lupa baca juga artikel mengenai program quick sort di pemrograman pascal.const max=25;type queue=record
jenis:array [1..max] of string;
plat:array [1..max] of real;
depan, belakang:0..max;
end;
var produk : queue;
tempjenis : string;
tempplat : real;
pil :1..4;
tanya : char;
function penuh (s:queue) : boolean;
begin
if s.belakang=max then penuh := true
else penuh := false;
end;
function kosong (s:queue):boolean;
begin
if s.belakang=0 then kosong:=true
else kosong:=false;
end;
procedure push (var s:queue; tempjenis:string; tempplat:real);
begin
if penuh(s) then writeln ('maaf, antrian sudah penuh.hapus beberapa data kemudian ulangi lagi')
else begin
s.belakang:=s.belakang+1;
s.jenis[s.belakang]:=tempjenis;
s.plat[s.belakang]:=tempplat;
writeln('jumlah data antrian sekarang ',s.belakang,' buah');
end;
end;
{procedure pop}
procedure pop (var s:queue);
var i:byte;
begin
if kosong(S) then writeln('antrian kosong')
else begin
for i:=1 to s.belakang-1 do
begin
s.jenis [i]:=s.jenis[i+1];
s.plat [i]:=s.plat[i+1];
end;
s.belakang:=s.belakang-1;
writeln('data yang ada di antrian sekarang ada',s.belakang,' buah');
end;
end;
{procedure cetak}
procedure cetak (s:queue);
var i:byte;
begin
if kosong (s) then writeln('tidak ada data')
else begin
writeln('+==================================+');
writeln('| No | Tujuan | harga |');
writeln('+---- ----------------- -----------+');
for i:=1 to s.belakang do
writeln('|',i:3,' |',s.jenis[i]:16,' | ':2,s.plat[i]:9:2,' |':2);
writeln('+==================================+');
end;
end;
begin
repeat
clrscr;
writeln(' PROGRAM QUEUE TIKET KERETA API');
writeln('==================================');
writeln;
writeln('1. Masukkan Antrian Tiket');
writeln('2. Lihat Data Antrian');
writeln('3. Ambil Data Antrian');
writeln('4. Exit');
writeln;
writeln('PILIHAN [1/2/3/4]');
writeln;
write('masukan pilihan anda : ');readln(pil);
writeln;
case pil of
1:begin
repeat
writeln ('Masukkan Data Transaksi');
write ('Tujuan : ');readln(tempjenis);
write ('Harga : Rp. ');readln(tempplat);
push (produk,tempjenis,tempplat);
writeln;
write('Tambah Data Lagi? [Y/N] => ');readln(tanya);
until upcase (tanya)<>'Y';
end;
2: begin
cetak (produk);
write('press enter to continue ');readkey;
end; 3: begin
repeat
writeln('mengambil antrain data');
pop(produk);
cetak(produk);
writeln;
write ('mau ambil data lagi ? (Y/N)');readln(tanya);
until upcase(tanya)<>'Y';
end;
end;
until pil=4;
end.