Suatu proses yang bisa memanggil
dirinya sendiri. .
Rekursi biasanya digunakan secara
iteratif yaitu melakukan pengulangan
operasi sampai jumlah pengulangan
yang diinginkan. .
CONTOH:
Program Pangkat
program pangkat;
uses t crt; ;
var A,x,i,hasil:integer;
begin
writeln('masukkan bilanganyang akan dipangkatkan');readln(A);
writeln('masukkan bilangan bilangan pangkat');readln(x);
hasil :=1;
for i:=1 to x do
hasil :=hasil*A;
writeln('hasil dari dari ',A,' ',' pangkat ',x,' ','adalah ', ' ',hasil );
readln ;
end.
Program deret fibonacci
program fibonacci;
uses crt;
Var fibo: array [1..10] of integer;
A,i,hasil:integer;
begin
clrscr;
write('masukkan suku keberapa dalam deret fibonacci :');readln(A);
if (A=1) or (A=2) then hasil:=1 else
begin
fibo[1]:=1; fibo[2]:=1;
for i:=3 to A do
begin
fibo[i]:=fibo[i-1]+fibo[i-2];
hasil :=fibo[i];
end;
end;
writeln ;
for i:=1 to A do
write(fibo[i],' ');
writeln ;
writeln('Suku Ke- ',A,' ',' dari deret fibonacci adalah ', ',hasil);
readln ;
end.
FAKTORIAL
uses wincrt;
procedure faktorial(n : byte;var hasil:longint);
begin
if n<=1 then
hasil:=1
else
begin
faktorial(n-1,hasil);
hasil:=n*hasil;
end;
end;
n:byte;
f:longint;
begin
write('berapa faktorial?');readln(n);
faktorial(n,f);
writeln('faktorial=',f);
end.
2.ARRAY
Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama.
CONTOH
Program Nilai;
Uses Crt;
Var
NIM : array[1..20] of string[10];
NAMA : array[1..20] of string[25];
NILAI: array[1..20] of real;
X,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(X);
For i := 1 to X Do
Begin
Write('NIM =');Readln(NIM[i]);
Write('Nama =');readln(NAMA[i]);
Write('Nilai=');readln(NILAI[i]);
End;
Writeln('NIM NAMA NILAI ');
For i:= 1 to banyak Do
Begin
Writeln(NIM[i]:10,NAMA[i]:25,NILAI[i]:3:2);
End;
Readln;
End.
PERKALIAN MATRIKS
program perkalian_matrik;
uses wincrt;
var
a,b,c:array [1..25,1..25] of real;
i,j,k,m,n,l:byte;
begin
writeln('PERKALIAN MATRIKS');
write('baris matriks pertama=');readln(m);
write('kolom matriks pertama/brs matriks kedua=');readln(n);
write('kolom matriks kedua=');readln(l);
writeln;
writeln('komponen matriks yang pertama');
for i:=1 to m do
begin
for j:=1 to n do
begin
write('nilai[',i,',',j,']=');readln(a[i,j]);
end;
writeln;
end;
writeln('komponen matriks kedua');
for i:=1 to n do
begin
for j:=1 to l do
begin
write('nilai[',i,',',j,']=');readln(b[i,j]);
end;
writeln;
end;
for i:=1 to m do
begin
for j:=1 to l do
begin
c[i,j]:=0;
for k:=1 to l do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
end;
end;
writeln;
writeln('hasil perkalian matriks');
writeln;
for i:=1 to m do
begin
writeln;
for j:=1 to l do
write(c[i,j]:5:2);
end;
end.
3.PROCEDURE
Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub program, diletakkan di atas bagian pernyataan dan diawali dengan kata procedure
Bentuk Umum: procedure nama_procedure(parameter);
Paramater dalam procedure:
1.Parameter Lokal
Parameter/variabel yang hanya bisa dibaca di sub program saja, tidak bisa digunakan pada bagian pernyataan sehingga program akan mengalami error
2. Parameter Global
Parameter bisa digunakan pada prosedur dan bagian pernyataan
Contoh program:
uses crt;
var a,b:integer;
procedure tambah;
var
a,b,hasil:integer;
begin
hasil:=a+b;
tambah:=hasil;
end;
begin
clrscr;
writeln('masukan niali a:');readln(a);
writeln('masukan nilai b:');readln(b);
tambah;
writeln('Jadi hasil penjumlahan',' ',a,'+ ',' ',b,'adalah',tambah(a,b));
readln;
end.
4.Kumpulan tugas prokom yang dikumpulkan
program Luas_Persegi_Panjang_dan_Kelilingnya;
uses wincrt;
var
panjang:real;
lebar:real;
luas:real;
keliling:real;
begin
write('masukkan panjang =');readln(panjang);
write('masukkan lebar =');readln(lebar);
luas:=panjang*lebar;
keliling:=2*(panjang+lebar);
writeln('Luas=',luas:10:5);
writeln('Keliling=',keliling:10:5);
end.
program Volume_Kubus_dan_Luas_Permukaan_Kubus;
uses wincrt;
var
alas:real;
volume:real;
luas_permukaan:real;
begin
write('masukkan alas =');readln(alas);
volume:=alas*alas*alas;
luas_permukaan:=6*(alas*alas);
writeln('volume=',volume:5:2);
writeln('luas_permukaan=',luas_permukaan:5:2);
end.
Program Luas_Lingkaran_dan_Keliling_Lingkaran;
uses wincrt;
const
phi=3.141596;
var
r:real;
Luas:real;
Keliling:real;
Begin
write ('masukkan jari-jari lingkaran: ');readln(r);
Luas:=(phi*r*r);
Keliling:=(phi*2*r);
writeln ('luas:', Luas:10:3);
writeln ('keliling:', Keliling:10:3);
end.
program Luas_Permukaan_Tabung_dan_Kerucut;
uses wincrt;
const
phi=3.141596;
var
r:real;
t:real;
luas_permukaan_tabung:real;
luas_permukaan_kerucut:real;
begin
write('masukkan jari-jari =');readln(r);
write('masukkan tinggi =');readln(t);
luas_permukaan_tabung:=((2*phi*r*r)+(2*phi*r*t));
luas_permukaan_kerucut:=((2*phi*r*r)+(2*phi*r*t)/3);
writeln('luas_permukaan_tabung=',luas_permukaan_tabung:5:2);
writeln('luas_permukaan_kerucut=',luas_permukaan_kerucut:5:2);
end.
program Luas_Permukaan_Tabung_dan_Kerucut;
uses wincrt;
const
phi=3.141596;
var
r:real;
t:real;
s:real;
luas_permukaan_tabung:real;
luas_permukaan_kerucut:real;
begin
write('masukkan jari-jari =');readln(r);
write('masukkan tinggi =');readln(t);
write('masukkan selimut_kerucut =');readln(s);
luas_permukaan_tabung:=((2*phi*r*r)+(2*phi*r*t));
luas_permukaan_kerucut:=((phi*r*r)+(phi*r*s));
writeln('luas_permukaan_tabung=',luas_permukaan_tabung:5:2);
writeln('luas_permukaan_kerucut=',luas_permukaan_kerucut:5:2);
end.
Program Konversi_Jam_ke_Detik;
uses wincrt;
var jam:real;
detik:real;
begin
write('masukkan jam :');readln(jam);
detik:=jam*3600;
writeln('detik =',detik:10:2);
end.
Program Konversi_Detik_ke_Jam;
uses wincrt;
var detik:real;
jam:real;
begin
write('masukkan detik :');readln(detik);
jam:=detik / 3600;
writeln('jam =',(jam):10:2);
end.
program suhu;
uses wincrt;
var
celcius,kelvin:integer;
fahrenheit:real;
begin
write('masukkan suhu dalam celcius = ');readln(celcius);
fahrenheit:=(9/5*celcius)+32;
kelvin:=celcius+273;
writeln('suhu dalam fahrenheit=',fahrenheit:5:2);
writeln('suhu dalam kelvin=',kelvin);
end.
program Koordinat_Titik_Tengah;
uses wincrt;
var
x1:real;
x2:real;
y1:real;
y2:real;
titik_tengah_x:real;
titik_tengah_y:real;
begin
write('masukkan nilai x1 =');readln(x1);
write('masukkan nilai x2 =');readln(x2);
write('masukkan nilai y1 =');readln(y1);
write('masukkan nilai y2 =');readln(y2);
titik_tengah_x:=((x1+x2)/2);
titik_tengah_y:=((y1+y2)/2);
writeln('titik_tengah_x=',titik_tengah_x:10:5);
writeln('titik_tengah_y=',titik_tengah_y:10:5);
end.
Program Gaji_Karyawan;
uses wincrt;
var
nama_orang:string;
gaji_pokok:real;
tunjangan_istri:real;
tunjangan_anak:real;
pajak:real;
total_gaji:real;
begin
write ('masukkan nama orang =');readln(nama_orang);
write ('masukkan gaji pokok =');readln(gaji_pokok);
tunjangan_istri:=(0.15*gaji_pokok);
tunjangan_anak:=(0.2*gaji_pokok);
pajak:=(0.15*(tunjangan_istri+tunjangan_anak));
total_gaji:=(tunjangan_istri+tunjangan_anak-pajak);
writeln('tunjangan_istri=',tunjangan_istri:10:2);
writeln('tunjangan_anak=',tunjangan_anak:10:2);
writeln('pajak=',pajak:10:2);
writeln('total_gaji=',total_gaji:10:2);
end.
Tidak ada komentar:
Posting Komentar