menu

Minggu, 11 Maret 2012

Program Balik Kalimat perkarakter


           hari ini saya hanya punya postingan ringan tentang program pascal.. yaitu program pembalik kata atau kalimat perkarakternya tanpa merubah posisi awalnya.. karena pada tutorial - tutorial pascal yang ada dan pernah saya search d'google.. kebanyakan outputnya yaitu mengubah susunan karakter sekaligus posisinya juga..
nah, kali ini saya membuatnya sedikit berubah.. hee ..he..

ok langsung saja..

uses crt; {}
type
   stack = record
     top : 0..100;
     data: array[1..100] of char;
   end;



var stack1 : stack;
    isi : string[100];
    i   : integer;

    procedure inisialisasi(var s : stack);
    begin
         s.top := 0;
         end;

    function isEmpty(var s : stack) : boolean;
    begin
         isEmpty := s.top = 0;
    end;

    procedure push(var s : stack; x:char);
    begin
         s.top := s.top + 1;
         s.data[s.top] := x;
    end;

    procedure pop(var s : stack; var x:char);
    begin
       if not isempty(stack1) then begin
         x := s.data[s.top];
         s.top := s.top-1;
       end;
    end;

    var
        b : boolean;
    begin
         clrscr;  {}

         i := 0;
         b := false;
         write('Input kalimat yang akan dibalik perkarakter : ');readln(isi);
         writeln;
         write('Kalimat tersebut setelah di balik perkarakter

menjadi : ');
         isi := isi + ' ';
         repeat
            inc( i);
            if (b=false) then  inisialisasi(stack1);
            push(stack1,isi[i]);
            b := true;
            if isi[i] = ' ' then begin
              b := false;
              repeat
                pop(stack1,isi[i]);
                write(isi[i]);
              until isEmpty(stack1) = true;
            end;
         until i >= length(isi);

    readln;
end.



demikan sedikit dari saya tuk hari ini.. semoga bermanfaat..  :)

3 komentar:

  1. untuk membalik kalimat per kata

    program balik_kalimat;
    uses crt;
    type
    stack=record
    tampung:0..100;
    isi:array[1..100]of char;
    end;
    var
    s:stack;
    huruf:char;
    kalimat, kalimatBalik, tempKalimat :string;
    kataBalik :array[1..100] of string;
    i, arCount, j:integer;
    procedure inisialisasi;
    begin
    s.tampung:=0;
    end;
    procedure push(var s:stack; x:char);
    begin
    s.tampung:= s.tampung+1;
    s.isi[s.tampung]:=x;
    end;
    procedure pop(var s:stack; var x:char);
    begin
    x := s.isi[s.tampung];
    s.tampung := s.tampung-1;
    end;
    begin
    clrscr;
    write('Masukkan Kalimat: '); readln(kalimat);
    for i:=1 to length(kalimat) do
    begin
    huruf:=kalimat[i];
    push(s,huruf);
    end;
    arCount:=1;
    while s.tampung <> 0 do
    begin
    pop(s, huruf);
    kalimatBalik := kalimatBalik+huruf;
    if huruf <> ' ' then
    kataBalik[arCount]:=kataBalik[arCount]+huruf
    else
    inc(arCount);
    end;
    for i:=1 to arCount do
    begin
    tempKalimat :='';
    for j:=length(kataBalik[i]) downto 1 do
    tempKalimat := tempKalimat+(kataBalik[i])[j];
    kataBalik[i] := tempKalimat;
    end;
    for i:=1 to (length(kalimat))+15 do
    write('-');
    writeln;
    writeln('Kalimat dibalik per karakter: ', kalimatBalik);
    write('Kalimat dibalik per kata: ');
    for i:=1 to arCount do
    write(kataBalik[i],' ');
    readln;
    end.

    BalasHapus
  2. alhamdulillah membantu, terima kasih scriptnya:D

    BalasHapus
  3. eh, bo org gtlo olo sup. baru sadar dpalia di gambar wkwk. mantap mantapppp...

    BalasHapus