Sabtu, 17 Mei 2014

TP 10 ALPRO : Tentang Function Pada Turbo Pascal 7.0




Tugas Pendahuluan 10.
PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN

OLEH
LUH PUTU SUCI VANDASARI
F1A113054
KELAS A

JURUSAN MATEMATIKA
PROGRAM STUDI MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HALU OLEO
2014
 


SOAL.
1.      Perbedaan function dengan procedure! Contoh function.
2.      Buat program function untuk menentukan nilai faktorial dan kombinasi!
3.      Buat program menjumlahkan pecahan!

PENYELESAIAN.
1.      Function merupakan  sebuah kumpulan statement yang akan mengembalikan sebuah nilai balik pada pemanggilnya. Nilai yang dihasilkan Function harus ditampung kedalam sebuah variabel. Perbedaan antara function dan procedure adalah function akan mengembalikan suatu nilai pada pemanggilnya, sedangkan pada procedure tidak akan mengembalikan nilai apapun pada fungsi pemanggilnya

Contoh function.

uses crt;
function pangkat(S :real; U:integer):real;
var c : real;
    y : integer;
begin
y:=abs(U);
if (S<>0) and (U=0) then pangkat:=1
else if U>0 then
pangkat:=S*pangkat(S,U-1)
else if (U<0) then pangkat:=1/(S*pangkat(S,y-1));
end;

var S: real;
    U: integer;
begin
TEXTBACKGROUND(1);
clrscr;
TEXTCOLOR(14);
writeln('******** PROGRAM PANGKAT ********');
writeln;
writeln;
TEXTCOLOR(15);
write('Masukkan bilangan yang dipangkatkan : ');readln(S);
write('Masukkan bilangan pangkat           : ');readln(U);
writeln;
writeln(S:0:2,' Pangkat ',U,' = ',pangkat(S,U):0:2);
gotoxy(45,10);writeln('TERIMA KASIH .^^');
readln;
end.
Hasil RUN.



2.      Program nilai factorial dan kombinasi.

a.       Program nilai factorial.

USES CRT;
FUNCTION FACTORIAL (N: BYTE):LONGINT;

BEGIN
IF N<2 THEN
FACTORIAL :=1
ELSE
FACTORIAL:=N*FACTORIAL(N-1);
END;
VAR X:BYTE;
BEGIN
TEXTBACKGROUND(5);
TEXTCOLOR(14);
CLRSCR;
WRITELN('========== MENENTUKAN FAKTORIAL SUATU NILAI ==========');
WRITELN;
WRITELN;
WRITE('Masukkan nilai yang Anda inginkan : ');READLN(X);
WRITELN;
WRITELN('Nilai dari ',X,'! adalah ',FACTORIAL(X));
GOTOXY(45,10);WRITELN('TERIMA KASIH .^^');
READLN;
END.

Hasil RUN.


a.       Program kombinasi.

uses crt;
var V,A:integer;

function kombinasi1(S:integer):longint;
begin
if S=0 then
kombinasi1:=1
else
kombinasi1:=S*kombinasi1(S-1);
end;
function kombinasi2(U,C:integer):longint;
begin
kombinasi2:=trunc(kombinasi1(U)/(kombinasi1(C)*kombinasi1(U-C)));
end;

begin
while V<=A do
begin
textbackground(1);
textcolor(14);
clrscr;
writeln;
writeln('========= PROGRAM  KOMBINASI =========');
WRITELN('______________________________________');
writeln;
writeln('RUMUS KOMBINASI!');
writeln;
writeln('              n! ');
writeln('C(n,k) =  --------');
writeln('          (n-k)!k!');
writeln;
write(' Masukan nilai n= ');readln(V);
writeln;
write(' Masukan nilai k= ');readln(A);
writeln(' Maka :');
writeln;
writeln('            ',V,'!');
writeln('C(',V,',',A,') =  --------');
writeln('          (',V,'-',A,')!',A,'!');
writeln;
end;
writeln;
writeln('Banyaknya kombinasi ',V,' unsur dari ',A,' unsur adalah = ',kombinasi2(V,A));
writeln;
writeln('TERIMA KASIH .^^');
readln;
end.


Hasil RUN.




3.      Program menjumlahkan pecahan.

uses crt;
var a,b,c,d,e,f : integer;
    ulang       : char;

function pecahan(u,y : integer):integer;
begin
e:=d;
f:=c;
pecahan:=u*e+f*y;
end;
function jawab(v,n :integer):integer;
begin
jawab:=v*n;
end;

begin
textbackground(1);
clrscr;
repeat
writeln('==##== PROGRAM PENJUMLAHAN PECAHAN ==##==');
writeln('_________________________________________');
writeln;
writeln;

writeln('Pecahan I');
write('Masukkan pembilang = ');readln(a);
write('Masukkan penyebut  = ');readln(c);
writeln;
writeln('Pecahan II');
write('Masukkan pembilang = ');readln(b);
write('Masukkan penyebut  = ');readln(d);
writeln;
writeln('Hasil penjumlahan kedua pecahan tersebut adalah :');
writeln;
writeln(a,'/',c,' + ',b,'/',d,' = ',pecahan(a,b),'/',jawab(c,d));
gotoxy(45,20);writeln('TERIMA KASIH .^^');
readln;
clrscr;

writeln('Keterangan : Y = Yes/Iya');
writeln('             N = No/Tidak');
writeln;
write('Apakah Anda ingin mengulang program ini? : ');readln(ulang);
clrscr;
until ulang='N'
end.

Hasil RUN.



Tidak ada komentar:

Posting Komentar