Senin, 28 Juni 2010

program membalik kalimat

 

{*****************************************

*program pop and push*********************

*****************************************}

program balik_kalimat;

uses wincrt;

const elemen =255; {*batas maksimum karakter*}

 

type s255 =string [elemen];

     tumpukan = record

                isi :s255 ;

                atas: 0..elemen

                end;

 

var t : tumpukan  ;{*nama dari tumpukan *}

    i: integer    ; {*penjumlah*}

    kalimat : s255 ; {*kalimat yang di balik*}

    {****************************************

    *prosedure inisialisasi tumpukan*********

    ****************************************}

    procedure awalan ( var t:tumpukan );

    begin

    t. atas := 0

    end;

    {*prosedure awalan*}

    {***************************************

    *prosedure untuk memasukkan kalimat*****

    *maksimum 255**************************}

 

    procedure push ( var t: tumpukan ; x: char);

    begin

    t.atas := t. atas + 1 ;

    t.isi [t.atas]:=x

    end;

 

    function pop ( var t : tumpukan ): char;

    begin

    pop:= t.isi[t.atas];

    t.atas := t.atas - 1

    end;

 

    {***************************************

    ****program utama**********************}

    begin

    clrscr;

    awalan ( t) ;

    writeln(' tumpukan untuk membalik kalimat ');

    writeln('---------------------------------');

    writeln('');

    {*kalimat yang akan dibalik*}

    write('isikan sembarang kalimat =');

    readln(kalimat);

 

    clrscr;

    writeln(' kalimat pertama =');writeln(kalimat);

    writeln;

    writeln('setelah dibalik =');

    {***************************************

     ************membuat pushke tumpukan***

     *************************************}

     for i:=1 to length(kalimat ) do

     push (t , kalimat [i]);

     {*************************************

     *mempop kalimat hingga mendapatkan hasil

     ***************************************}

 

     for i:=1 to length (kalimat) do

     write(pop (t));

     writeln;

     end.

by: agriva daniel (universitas methodist indonesia)

Tidak ada komentar:

Posting Komentar