
	program INTERPOLACION_LAGRANGE

	implicit none

	! Variables
INTEGER::I,J,N,A,B
REAL(8)::XA,G,Z,ZINT

REAL(8),ALLOCATABLE,DIMENSION(:)::X,F


OPEN(UNIT=23,FILE='DATOS.ENTRADA',STATUS='UNKNOWN')


READ(23,*)N
ALLOCATE(X(N),F(N))

  
  DO I=1,N
  READ(23,*)X(I)
  END DO
 
  DO I=1,N
  READ(23,*)F(I)
  END DO
  
CLOSE(23)



WRITE(*,*)'INDICA EL VALOR QUE QUIERES INTERPOLAR'
READ(*,*)XA

   

  G=0
  DO I=1,N
  Z=F(I)
  DO J=1,N
  IF(I<>J)THEN
  Z=Z*(XA-X(J))/(X(I)-X(J))
  END IF
  END DO
  G=G+Z
  END DO
  
  ZINT=G
  
  OPEN(UNIT=24,FILE='RESULTADO.SALIDA',STATUS='UNKNOWN')
  WRITE(24,*)''
  WRITE(24,*)'DE LA TABLA'
  WRITE(24,*)''
DO I=1,N
  WRITE(24,50)X(I),F(I)
END DO
  WRITE(24,*)''
  WRITE(24,*)'PARA EL NUMERO'
  WRITE(24,*)''
  WRITE(24,60)XA
  WRITE(24,*)''
  WRITE (24,*)'EL NUMERO QUE BUSCAS ES'
  WRITE(24,*)''
  WRITE(24,40)ZINT

CLOSE(24)

40 FORMAT(15000F10.4) 
50 FORMAT(2F10.4)
60 FORMAT(15000F10.4)
end program INTERPOLACION_LAGRANGE


