اليوم أقدم لكم درس برمجة الدالة اللوغاريتمية باستخدام التقريبات وبالطرق المستخدمة في البرمجة
ويحتوي الدرس على:
استخدام المتغيرات و الدوال في البرمجة و استخدام التقريبات و تجميل البرنامج.
الدرس في المرفقات
وبرنامج الدالة اللوغاريتمية هو
#include <iostream>
#define epsilon 1e-60
#define v 0.693147180559945309417232121458176568075500134360255254120678
inline double absolu(double x) {return (x>=0?x:-x);}
double Ln(double x){
double term, sum;
int i, j;
j=0;
while(x>1)
{
x=x/2;
j++;
}
i=1;
sum=1;
term=1;
while(absolu(term/(i+1))>epsilon)
{
term=term*(1-x);
sum=sum+term/(i+1);
i++;
}
return (x-1)*sum+j*v;
}
int main()
{
double x;
std::cout<<"Enter the value of x: "<<std::endl;
std::cin>>x;
if(x<0)
std::cout<<"Error ! "<<std::endl;
if(x==0)
std::cout<<"-Infinity"<<std::endl;
if(x>=1)
std::cout<<std::endl<<"The value of Ln("<<x<<") is : "<<Ln(x);
if(x>0 && x<1)
std::cout<<std::endl<<"The value of Ln("<<x<<") is : "<<-Ln(1/x);
return 0;
}الدرس في المرفقات