program Simpson_3_per_8;
uses wincrt;
var
i, j, n, it, max, cek : integer;
jumsig1, jumsig2, h, a, b, luas: real;
label 1, 2, 3;
function f(x:real):real;
begin
f:= 3*x*x + 2*x + 4;
end;
begin
1:
write('Masukkan banyaknya selang yang anda inginkan: ');readln(n);
write('Masukkan titik awal : ');readln(a);
write('Masukkan titik akhir : ');readln(b);
write('Masukkan banyak trapesium yang dihitung : ');readln(max);
h:= (b-a)/(3*n);
{Coba cari diinternet informasi soal h ini. Maaf sampai sekarang saya belum menemukan rumus h yang tepat untuk simpson 3/8.}
{Coba cari diinternet informasi soal h ini. Maaf sampai sekarang saya belum menemukan rumus h yang tepat untuk simpson 3/8.}
jumsig1:= 0; jumsig2:= 0;
for i:= 1 to n-1 do
begin
cek:= 0;
cek:= 0;
for j:= 1 to n-1 do
begin
if j*3 = i then cek:= 1;
end;
if cek = 1 then jumsig2:= jumsig2 + f(a + i*h);
if cek = 1 then jumsig2:= jumsig2 + f(a + i*h);
if cek = 0 then jumsig1:= jumsig1 + f(a + i*h);
end;
luas:= (3/8)*h*(f(a) + f(b) + 3*jumsig1 + 2*jumsig2);
writeln('n = ',n,' ',luas:0:6);
n:= 2*n;
it:= it + 1;
until it = max;
Tidak ada komentar:
Posting Komentar