Faktorial biasanya ditulis dengan N!
N itu bisa berarti 1, 2, 7, 22, pokoknya angka. Jadi, faktorial 5 ditulis dengan 5!
Faktorial itu artinya mengalikan suatu bilangan dengan bilangan-bilangan sebelumnya hingga akhirnya dikalikan dengan angka 1.
Contohnya :
Faktorial dari 6 :
6*5*4*3*2*1 = 720
Jadi, sudah jelas gimana faktorial itu?
Catatan :
* artinya x (kali)
Kalau belum, coba deh diulang lagi bacanya.
Kalau sudah jelas, coba dibayangin kira-kira gimana sih algoritma nya?
Nah, kalau algoritma nya udah kebayang, Insya Allah bisa buat programnya.
Oh, ya, hampir lupa. Program ini menggunakan function.
Inilah algoritma nya :
Program Faktorial_pascal;
uses crt; {atau uses wincrt;}
function Faktorial(a:integer):longint;
begin
if (A=1)then
Faktorial:=1
else
Faktorial:=a*faktorial(a-1);
end;
var
x:integer;
begin
clrscr;
writeln('Faktorial Sequence');
writeln;
write('Berapa Faktorial : ');readln(x);
writeln(x,' faktorial ','= ',faktorial(x));
writeln;
write('Tekan Sembarang Tombol untuk keluar...');
readln;
end.
Said
salah tu cui ;))
masak klo lebih dari 7 kaga bisa dah , ga sesuai kalo di samain pke kalkulator..
saya coba begini baru bisa
:
Program Faktorial_pascal;
function Faktorial(a:integer):longint;
begin
if (A=1)then
Faktorial:=1
else
Faktorial:=a*faktorial(a-1);
end;
var
x:integer;
begin
writeln('Faktorial sequence');
write('Berapa Faktorial :');readln(x);
writeln(x,'faktorial ','=',faktorial(x));
readln;
end.
Said
Komentar ini telah dihapus oleh pengarang.
Said
Oh, iya, benar juga :-o
Setelah saya selidiki *halahh bahasanya~* ternyata kesalahannya terdapat pada tipe data yang saya gunakan dan ada sedikit celah karena function-nya diulang-ulang *bener gak sih?*, sekarang sudah saya perbaiki :)
Harap maklum, masih pemula :p
Terima kasih banyak Mas Syaiful atas koreksinya :D
Said
Bagus nih buat yang baru belajar fungsi rekursif.
Said
Biar angka yang dihitung bisa sampe banyak pake
function Faktorial(a:integer):int64;
Said
waduk kok tambah bingung nich ane
Said
http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/24.gifhttp://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif
Said
Rekusif itu bikin program tambah berat.
Mendingan gini aja:
program faktorial;
uses crt;
var
a,b : integer;
c : int64;
begin
clrscr;
writeln('Program Faktorial by Jason Wihardja');
writeln;
write('Masukkan angka = ');
readln(a);
c:=1;
if a=0 then
write(c)
else
begin
for b:=a downto 1 do
c:=b*c;
write('Hasil faktorial = ',c);
end;
readln;
end.
Said
mantab gan,,,, izin copy buat tugas ya,,, b-(