Anda di halaman 1dari 2

//---------------------------------------------------------------------------

#include <vcl\condefs.h>
#include <stdio.h>
#include <stdlib.h>
//#include <string.h>
//#include <process.h>
#include <conio.h>
#define TRUE 1
#pragma hdrstop
//---------------------------------------------------------------------------
USERES("PFK1d.res");
//---------------------------------------------------------------------------
float lagrange(int N,float xa,float x[100], float f[100]);//deklarasi fungsi Lagrange
int main(int argc, char **argv)
{
int i,k,N;
textcolor(4);
textbackground(7);
clrscr();
cprintf("\n\r Program Interpolasi dan Ekstrapolasi Lagrange ");
cprintf("\n\r Masukan adalah Banyaknya Pasangan Data dan Masing-Masing Pasangan Data");
cprintf("\n\n\r Banyaknya Pasangan Data [<100] = "); scanf("%d",&N);
float x[100],f[100],y,xa;
clrscr();
cprintf("\n\r Masukkan Pasangan Data\n");
cprintf("\n\r i x[i] f[i] ");
cprintf("\n\r ========================================");
for(i=0;i<=N-1;i++)
{
gotoxy(5,7+i);cprintf("%d",i+1);
gotoxy(19,7+i);scanf("%f",&x[i]);
gotoxy(35,7+i);scanf("%f",&f[i]);
}
cprintf("\n\r ========================================");
while(TRUE)
{
cprintf("\n\r Harga x = "); scanf("%f",&xa);
y=lagrange(N,xa,x,f);
if(xa<x[0]||xa>x[N-1])
{
cprintf("\n\r Harga x yang Anda Masukkan Berada pada range Ekstrapolasi");
}
else
{
cprintf("\n\r Harga x yang Anda Masukkan Berada pada range Interpolasi");
}
cprintf("\n\r Harga y[%4.2f] = %4.4f ",xa,y);
cprintf("\n\n\r Tekan 1 Untuk x yang lain; dan 0 untuk Selesai : "); scanf("%d",&k);
if(k != 1)
{
cprintf("\n\r Tekan Sembarang Tombol Untuk Keluar !");
getch();
exit(0);
}
}
}
//batas program Utama
float lagrange(int N,float xa,float x[100], float f[100]) //defisi fungsi Langrange
{
int n,m;
float yans,z;
yans=0.0;
for(n=0;n<=N-1;n++)
{
z=1.0;
for(m=0;m<=N-1;m++)
{
if(n!=m)z=z*(xa-x[m])/(x[n]-x[m]);
}
yans=yans+z*f[n];
}
return yans;
}
//---------------------------------------------------------------------------

Anda mungkin juga menyukai