COPAS

LightBlog

Saturday, April 23, 2011

Contoh Stack pada pascal

uses crt;



type data=record

nim:string[6];

nama:string[25];

jk:char;

end;


type stack=record

top: 0..100;

isi:array[1..100] of data;

end;

var i,j :integer; s:stack; x :array[1..100]of data;


procedure push(var s: stack; var x:data);

begin

s.top:=s.top+1;

s.isi[s.top].nim:=x.nim;

s.isi[s.top].nama:=x.nama;

s.isi[s.top].jk:=x.jk;

end;


procedure pop(var s:stack; x:data);

begin

x.nim:=s.isi[s.top].nim;

x.nama:=s.isi[s.top].nim;

x.jk:=s.isi[s.top].jk;

s.top:=s.top-1;

end;


procedure kosong(var s:stack);

begin

s.top:=0;

end;



begin

clrscr;

i:=1;

write('Nim :');readln(x[i].nim);


repeat

write('Nama :');readln(x[i].nama);

write('Jenis Kelamin:');readln(x[i].jk);

inc(i);

writeln;

write('Nim :');readln(x[i].nim);

until(x[i].nim='x');

dec(i);


for j:= 1 to i do

begin

push(s,x[i]);

end;

writeln;

writeln ('Data Yang sudah di input yang berjenis kelamin Perempuan : ');

for j:=1 to i do

begin

pop(s,x[i]);

if(x[j].jk = 'p')then

begin

writeln('Nim : ',x[j].nim);

writeln('Nama : ',x[j].nama);

writeln('Jenis Kelamin : ',x[j].jk);

end;


end;

readln;

end.

1 comment: