Wednesday, January 8, 2014

Praktikum 5 Penggunaan Fungsi-fungsi Matematika

1. Program Tebak Bilangan
program Tebakbil;
uses wincrt;
var
pilih: char;
bil_acak,tebakan,kesempatan: integer;
label mulai;
begin
mulai:
clrscr;
randomize; {panggil pembangkit bilangan acak}
bil_acak := random(100) + 1; {hasilkan sebuah
bilangan acak yang harus ditebak}
kesempatan := 6; {banyaknya kesempatan menebak}
tebakan := 1000; {beri nilai awal tebakan}
writeln('Saya mempunyai bilangan antara 1 dan 100.');
writeln('Cobalah Anda tebak!');
while (kesempatan > 0) and (tebakan <> bil_acak) do
{selagi masih punya kesempatan menebak}
begin
readln(tebakan);
if tebakan = bil_acak then
writeln('Tepat sekali, Anda memang hebat!')
else
begin
dec(kesempatan);
if kesempatan = 0 then
begin
writeln('Maaf ya, Anda kehabisan kesempatan menebak.');
writeln('Bilangan tersebut adalah',bil_acak,'.');
end
else
if tebakan > bil_acak then
begin
writeln('Aduh, kurang daripada ',tebakan);
writeln('(Anda masih punya ',kesempatan,'kesempatan menebak.)');
end
else
begin

writeln('Ah, lebih besar daripada ',tebakan);
writeln('(Anda masih punya ',kesempatan,'kesempatan menebak.)');
end;
end;
end;
writeln;
writeln('Anda ingin bermain lagi? (Y/T)');
readln(pilih);  if upcase(pilih)='Y' then goto mulai;
end.



2. Program Tabel Fungsi
program tblfgsi;
uses wincrt;
var
x : real;
lagi : char;
label hitung;
begin
writeln('Menghitung nilai berbagai fungsi matematika.');
x:=-23.456; writeln('Contoh: x = ',x:5:3);
writeln('Harga mutlak : |x| = ',abs(x),' (REAL)');
writeln('Bagian pecahan : Frac(x) = ',frac(x),' (REAL)');
writeln('Bagian bulat : Int(x) = ',int(x),' (REAL)');
writeln('Logaritma alami : Ln(|x|) = ',ln(abs(x)),' (REAL)');
writeln('Pembulatan : Round(x)= ',round(x),'(LongInt)':24);
writeln('Nilai bulat : Trunc(x)= ', trunc(x),'(LongInt)':24);
writeln('Ekspnensial : e^x = ', exp(x),' (REAL)');
writeln('Notasi mEp artinya m x 10^p.');
write('Tekan ENTER');readln;
hitung:
clrscr;
write('Masukkan bil REAL x = '); readln(x);
writeln('Harga mutlak : |x| = ',abs(x),' (REAL)');
writeln('Bagian pecahan : Frac(x) = ',frac(x),' (REAL)');
writeln('Bagian bulat : Int(x) = ',int(x),' (REAL)');
writeln('Logaritma alami : Ln(|x|) = ',ln(abs(x)),' (REAL)');
writeln('Pembulatan : Round(x)= ',round(x),'(LongInt)':24);
writeln('Nilai bulat : Trunc(x)= ', trunc(x),'(LongInt)':24);
writeln('Ekspnensial : e^x = ', exp(x),' (REAL)');
writeln('Notasi mEp artinya m x 10^p.');
writeln;write('Hitung lagi ? <Y/T>_');readln(lagi);
if upcase(lagi)='Y' then goto hitung;
donewincrt;
end.

3. Program Trigono
program trigonom;
uses wincrt;
var
sudut, sudut1, sudut2, i,langkah: integer;
radian : real;
begin
clrscr;
writeln('Tabel Trigonometri');
write('Masukkan sudut terkecil : ');readln(sudut1);
write('Masukkan sudut terbesar : ');readln(sudut2);

for i:=1 to 50 do write('='); writeln;
writeln('Sudut(',chr(176),') ',' Sudut
(Radian)','Cos':7,'Sin':8,'Tan':8);
for i:=1 to 50 do write('-'); writeln;
if (sudut2-sudut1)<=10 then langkah:=1
else if (sudut2-sudut1)<=20 then langkah:=2
else if (sudut2-sudut1)<=30 then langkah:=3
else if (sudut2-sudut1)<=40 then langkah:=4
else if (sudut2-sudut1)<=50 then langkah:=5
else if (sudut2-sudut1)<=60 then langkah:=6
else if (sudut2-sudut1)<=70 then langkah:=7
else if (sudut2-sudut1)<=80 then langkah:=8
else if (sudut2-sudut1)<=90 then langkah:=9
else if (sudut2-sudut1)<=100 then langkah:=10
else langkah:=20;
sudut:=sudut1;
while sudut<=sudut2 do
begin
radian:=sudut*Pi/180;
write(sudut:6,#176,radian:12:2,cos(radian):13:2,sin(radian):8:2);
if cos(radian)<>0 then writeln(sin(radian)/cos(radian):8:2)
else writeln('Inf':8);
sudut:=sudut+langkah;
end;
for i:=1 to 50 do write('='); writeln;
end.

4. Program Tripel Phytagoras
Program Tripytha;
uses wincrt;
var n,p,q,r,i : integer;
begin
writeln('Mencetak daftar Triple Pythagoras ...');
write('Maksimum nilai yang diinginkan, 2<n<182 : ');
readln(n);
writeln('Daftar Tripel Pythagorasnya adalah:');
i:=1;
for r:=3 to n do
for q:=1 to r-1 do
for p:=1 to q do
if (p<>q) AND (p*p+q*q=r*r) then
begin
write(i:2,'). ','(',p:4,',',q:4,',',r:4,')');
writeln(' Cek:',p*p:5,'+':3,q*q:6,'=':3,r*r:7);
inc(i);
if (i mod 21 = 0) then
begin
write('Tekan ENTER untuk melihat lanjutannya ...');
readln;
end;
end;
end.

5. Program Faktor Bilangan
Program Faktorbi;
uses wincrt;
var a,p,bf:integer; {a bilangan asli, p pembagi, bf = cacah faktor}

lagi:char;
label baca;
begin
baca: clrscr;
Write('Masukkan sebuah bilangan asli > 1 : ');readln(a);
if a<2 then goto baca;
Writeln('Faktor-faktor dari ',a,' adalah: ');
writeln(1:5);
bf:=2; {minimal cacah faktor}
if a>3 then
for p:=2 to round(int(a/2)) do if a mod p = 0 then
begin
writeln(p:5);
inc(bf); {berarti p adalah faktor a}
end;
writeln(a:5);
if bf=2 then writeln('Jelas bahwa ', a,' adalah prima!')
else writeln ('Jelas bahwa ', a,' adalah komposit!');
write('Mau coba lagi? <Y/T>: ');readln(lagi);
if upcase(lagi)='Y' then goto baca;
donewincrt;
end.

No comments:

Post a Comment