program stack

Rabu, 09 Februari 2011 program data_lagu;
uses wincrt;
label baby;
const maxstack=100;
type s100=string[maxstack];
stack=record
judul:array[1..maxstack] of string;
ujung:0..maxstack;
end;
var lagu:stack;
lagubaru:string;
pil:char;
cetak:string;
procedure push( var lagu:stack;baru:string);
begin
if (lagu.ujung=maxstack) then writeln('stack penuh')
else
begin
lagu.ujung:=lagu.ujung+1;
lagu.judul[lagu.ujung]:=baru;
end;
end;
function pop (var lagu:stack): string;
begin
if (lagu.ujung=0) then writeln('stack kosong')
else
begin
pop:=lagu.judul[lagu.ujung];
lagu.ujung:=lagu.ujung-1;
end;
end;
function cetaklagu(var lagu : stack):string;
var i : integer;
begin
if (lagu.ujung=0) then writeln('stack kosong')
else
begin
for i:=1 to lagu.ujung do
writeln(lagu.judul[i]);
end;
end;
begin
baby:
clrscr;
writeln('program stack');
writeln('pilihan');
writeln('1.tambah data (push)');
writeln('2.ambil data (pop)');
writeln('3.cetak');
writeln('4.keluar');
writeln('pil 1/2/3/4 :?');
write('masukan pilihan :');readln(pil);
case pil of
'1':begin
clrscr;
writeln('masukan lagu baru');
write('judul baru:');readln(lagubaru);
push(lagu,lagubaru);
writeln('lagu yang ada di stack ',lagu.ujung,' buah');
readln;
end;
'2':begin
clrscr;
writeln('mengambil lagu dari stack');
writeln('lagu yang di ambil : ',pop(lagu));
writeln('lagu yang ada di stack ',lagu.ujung,' buah');
readln;
end;
'3':begin
clrscr;
writeln('isi stack');
cetaklagu(lagu);
writeln('lagu yang ada di stack ',lagu.ujung,' buah');
readln;
end;
'4':halt;
end;
write(#7);
goto baby;
end.

0 komentar:

Posting Komentar

 
 
 
 
Copyright © Oes blog