Senin, 20 Mei 2013

Matematika lanjut Program Persamaan Akar


uses crt;
label ulang;
var
x1,x2,x3,y1,y2,y3 : real;
i : integer;
ab : char;
Perintah diatas digunakan untuk pendeklarasian variabel beserta tipe datanya.
begin
ulang :
clrscr;
writeln('Tentukan nilai akar dari persamaan f(x)=x^3+x^2-3x-3=0 dengan Metode Biseksi');
Perintah diatas digunakan untuk menampilkan atau mencetak kalimat 'Tentukan nilai akar dari persamaan f(x)=x^3+x^2-3x-3=0 dengan Metode Biseksi' pada layar.
write( 'Masukan nilai x1 = ' );
readln( x1 );
y1 := x1 * x1 * x1 * + x1 * x1 - 3 * x1 -3;
writeln(' Nilai f(x1)= ',y1:0:4);
Perintah diatas digunakan untuk mengoperasikan nilai f(x1) dengan memasukkan nilai x1 yang telah kita input sebelumnya.
repeat
begin
write( 'Masukan nilai x2 = ');
readln(x2);
y2 := x2 * x2 * x2 + x2 * x2 - 3 * x2 - 3;
write(' Nilai f(x2)= ',y2:0:4);
end;
Perintah diatas digunakan untuk mengoperasikan nilai f(x2) dengan memasukkan nilai x2 yang telah kita input sebelumnya.

if (y1*y2)<0 then
Writeln(' Syarat Nilai Ok')
else
Writeln(' Nilai X2 Belum Sesuai');
until ( y1 * y2 ) < 0;
Perintah diatas menunjukan syarat awal untuk menyelesaikan metode Biseksi, yaitu jika f(x1)*f(x2) < 0 maka layar akan menampilkan “Syarat Nilai OK” dan dapat digunakan untuk iterasi selanjutnya, tetapi jika tidak memenuhi syarat maka layar akan mencetak “Nilai x2 belum sesuai” dan akan berhenti sampai nilai memenuhi syarat.
I :=2;
Writeln;
writeln('Penyelesaian Persamaan Dengan Metode Biseksi, Nilai x1= ',x1:0:2,' & x2= ',x2:0:2);
writeln('--------------------------------------------------------------------------');
writeln('n x f(x) error ');
writeln('--------------------------------------------------------------------------');
repeat
begin
i :=i + 1 ; x3 := ( x1 + x2) / 2;
y3 := x3 * x3 * x3 + x3 * x3 - 3 * x3 -3;
Perintah diatas digunakan untuk mencari nilai x3 dengan rumus (x1+x2)/2.
if (i mod 10)=0 then readln; 
if i<10 then
writeln(' ',i,' :: ',x3,' :: ',y3,' :: ',abs( y3 ),' ::')
else writeln(i,' :: ',x3,' :: ',y3,' :: ',abs( y3 ),' ::');
if ( y1* y3) <0 then
begin
x2 :=x3;
end else
begin
x1 := x3;
end;
Perintah diatas digunakan untuk menentukan syarat:
  • jika tanda f(x3) = f(x1), maka x3 akan menggantikan x1
  • jika tanda f(x3) = f(x2), maka x3 akan menggantikan x2
end;
until abs( y3 )<1E-07; Perintah ini mengartikan bahwa syarat diatas digunakan sampai menghasilkan nilai kurang dari 10 pangkat -7
writeln('-------------------------------------------------------------------------');
writeln('akar persamaanya = ',x3);
writeln('errornya =',abs( y3 ));
writeln('-------------------------------------------------------------------------');
write('Apakah anda ingin mengulanginya (y/t): ');
readln(ab); Perintah ini digunakan untuk membaca inputan jawaban dari statement diatas.
if (ab='y') or (ab='Y') then 
begin
goto ulang;
Perintah diatas mengartikan jika menginput “y” / “Y” maka kembali ke program awal, jika input “t” maka keluar dari program ini.
end
end.

Tidak ada komentar:

Posting Komentar