Wednesday, April 27, 2011

Mesin Karakter

program Mesin_Karakter;
uses wincrt;

type
    number      = set of '0'..'9';
    character   = set of char;
    small       = set of 'a'..'z';
    big         = set of 'A'..'Z';
var
   berkas       : text;
   besar         : big;
   kecil         : small;
   nomer          : number;
   abjad,tandabaca,operator: character;
   hc,hb,jh,ba,tb,om,s,tk : integer;
   Ch : char;
   NamaFile : string;
procedure panggilfile(NF:string);
begin
     Assign(berkas, NF);
     Reset(berkas);
end;
procedure tutup;
begin
     close(berkas);
end;
procedure analisa;
begin
     gotoxy(18,8);write('Masukkan Nama File yang Akan Di Tampilkan :');
     gotoxy(18,11);write('..........................................');
     gotoxy(18,10);readln(NamaFile);
     clrscr;
     panggilfile(NamaFile);
     writeln;gotoxy(18,3);
     writeln('Isi Dari File ','" ',NamaFile,' "',' Adalah :');
     writeln;
     tk := 0;
     jh:=0;
     hb:=0;
     hc:=0;
     ba:=0;
     tb:=0;
     om:=0;
     s:=0;
     kecil      := ['a'..'z'];
     besar      := ['A'..'Z'];
     abjad      := kecil+besar;
     nomer      := ['0'..'9'];
     tandabaca  := [',',';','-','''','.','!','?',')','(','"',':','_'];
     operator   := ['+','-','*','/','='];
     while not EOF(berkas) do
           begin
           while not EOLN(berkas) do
                 begin
                      read(berkas,Ch);
                      write(Ch);
                      tk := tk + 1;
           if Ch in abjad then
           begin
                jh := jh+1;
           if Ch in kecil then
                hc := hc+1
           else if Ch in besar then
                hb:= hb+1
           end
           else if Ch in nomer then
                ba:=ba+1
           else if Ch in tandabaca then
                tb:=tb+1
           else if Ch in operator then
                om:=om+1
           else
                s:=s+1
           end;
           readln(berkas);
           writeln
           end;
           tutup;
end;
procedure hasil;
begin
     writeln;
     gotoxy(15,9);writeln('---------------------------------');
     gotoxy(15,10);writeln('    Jumlah Huruf Kecil   = ', hc:5);
     gotoxy(15,11);writeln('    Jumlah Huruf Kapital = ', hb:5);
     gotoxy(15,12);writeln('---------------------------------');
     gotoxy(15,13);writeln('1.  Jumlah Huruf                = ', jh:4);
     gotoxy(15,14);writeln('--------------------------------');
     gotoxy(15,15);writeln('2.  Jumlah Bilangan Angka       = ', ba:4);
     gotoxy(15,16);writeln('3.  Jumlah Tanda Baca           = ', tb:4);
     gotoxy(15,17);writeln('4.  Jumlah Operator Matematika  = ', om:4);
     gotoxy(15,18);writeln('5.  Jumlah Spasi                = ', s:4);
     gotoxy(15,19);writeln('----------------------------------------+');
     gotoxy(15,20);writeln('    Total Karakter              = ', tk:5);
end;
var Ul:char;
begin
repeat
      clrscr;
      analisa;
      hasil;gotoxy(15,22);
      write('Mau Ulang Lagi [Y/T]: '); Ul:=Upcase(Readkey);
      until Ul<>'Y';
      end.

0 komentar:

Post a Comment

Tinggalkan Komentar Disini