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