program X12;
uses crt;
PROCEDURE INPUT(var a,b,c :real);
Begin
write('Nilai a= ');readln(a);
write('Nilai b= ');readln(b);
write('Nilai c= ');readln(c);
End;
PROCEDURE DISK(a,b,c : real; var d:real);
var p:real;
Begin
p:=sqr(b) - 4*a*c;
if p<0 br="" then=""> d:=p
else
d:=sqrt(p)
End;0>
PROCEDURE HITUNG(a,b,d : real; var x1,x2:real);
Begin
x1:= (-b+d)/(2*a);
x2:= (-b-d)/(2*a);
End;
PROCEDURE CETAK(x1,x2 :real);
Begin
writeln('Nilai x1 = ',x1:0:2);
writeln('Nilai x2 = ',x2:0:2);
End;
{Program Utama}
var a,b,c,p,x1,x2 : real;
Begin
clrscr;
input(a,b,c);
disk(a,b,c,p);
if p<0 br="" then=""> write('x1 dan x2 bukan akar real')
else
Begin
hitung(a,b,p,x1,x2);
cetak(x1,x2);
End;
readkey;
End.0>
Cara kerja program :
Prosedur INPUT bertugas melakukan input data a, b, dan c. Prosedur INPUT hanya memiliki parameter output karena data input a,b,c dalam prosedur akan dikirim ke program utama dan diterima oleh variabel a,b,c. Variabelnya sama tetapi berbeda dan tidak saling mengenal karena bersifat lokal.
Prosedur DISK bertugas untuk menghitung nilai Diskriminan, d = √p dimana p = b2 - 4ac. Nilai p dihitung lebih dahulu. Hasilnya dicek apakah negatip (p < 0) atau positip (p>=0). Jika p negatip maka tidak bisa dihitung, karena itu dinyatakan d = p. Jika p bernilai positip d dapat dihitung d = √p . Hasil d kemudian dikirim lewat parameter d dan diterima oleh variable p dalam program utama.
Prosedur HITUNG bertugas untuk menghitung nilai x1 dan x2. Sebelum memanggil prosedur hitung, nilai p dicek lebih dahulu apakah negatip atau positip. Jika p negatip maka nilai x1 dan x2 merupakan akar bukan bilangan real. Jika p positip, maka prosedur HITUNG dipanggil dengan mengirim nilai a,b, dan p ke dalam prosedur HITUNG. Hasil perhitungan x1 dan x2 dikirim kembali ke program utama dan diterima oleh variable x1 dan x2.
Prosedur CETAK bertugas untuk mencetak nilai x1 dan x2. Prosedur CETAK dipanggil dengan mengirim nilai x1 dan x2 untuk dicetak dalam prosedur CETAK.
Semoga bermanfaat.
God bless you all
Artikel lainnya :
Tidak ada komentar:
Posting Komentar
Silakan memberikan komentar dan pertanyaan yang sifatnya positif.