الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

درس برنامج الدالة اللوغارتمية وحساب التقريبات

بدأه Mohamed Amine Tag في 5 أبريل 2010 · 5 رد · 1,607 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اليوم أقدم لكم درس برمجة الدالة اللوغاريتمية باستخدام التقريبات وبالطرق المستخدمة في البرمجة

ويحتوي الدرس على:

استخدام المتغيرات و الدوال في البرمجة و استخدام التقريبات و تجميل البرنامج.

الدرس في المرفقات

وبرنامج الدالة اللوغاريتمية هو

#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;
}

الدرس في المرفقات

LogarithmeAndApproximations.rar

تم تعديل هذه المشاركة بواسطة Mohamed Amine Tag في 5 أبريل 2010 في 03:09

2
#2

ما شاء الله فتبارك الله .. شرح مميز و طريقة سَلسة و أسلوب جميل أيضا.

الله يسعدك في الدارين و يوفقك لما فيه خير الدنيا و الآخرة.

مرة أخرى أسجل إعجابي بهذا الموضوع "الرائع".

لي عودة بعد قراءة الدرس بتركيز

ننتظر المزيد من إبداعاتك ...

أخوك المبتدئ:أحمد/محمد.

أطيب الأمنيات.

#3

الله يخليك أخي أحمد.

في الحقيقة ردك يشجعني كثيراً.ولكن رغم ضروف العمل سأحاول إن شاء الله وضع دروس بهذه الكيفية بالتدريج إلى غاية الوصول إلى برنامج مكتمل.

شكراُ مرة أخرى.

#4

السلام عليكم و رحمة الله و بركاته

أخي الحبيب "محمد أمين" , قُمت بقراءة الكتاب "بتركيز" و أعجبني شرحك "المُبَسَّط" و أُسلوبك الراقي .. الذي إن دل على شيء فإنما يدل على مدى معرفتك و خبرتك في توصيل الأفكار إلى "الغير" و أخص "المبتدئين" أمثالي.

الكتاب يشرح قضية "تقريب القيمة و دقة التقريب" و قد أعجبني كثيرا الأسلوب الذي اتبعتَه في الشرح .. خصوصا و أن هذا الكتاب يُناقش المسألة من البُعدين الرياضي و البرمجي.

بالمناسبة فقد أضحكني تعبيرك عن الحلقة while حين قُلتَ:

اقتباس
إذا كان آخر حد صغير جدا فيا أيتها الدالة while توقفي و أعطيني قيمة المجموع.

ههههه ههههههههههه .. تُخاطبها و كأنها ابنة عمك ! :lol: :lol: :lol:

ما شاء الله عليك يا أخي الغالي .. أبدعت في البرمجة .. حتى صرت تتكلم مع الحلقات !!!!

ههههه هههههههههه هههههههههههههههه ...

في الحقيقة .. لو كنتُ مكان الحلقة while لقُلتُ لكَ:

ها هي قيمة المجموع يا أبا شَفْلَحَة :P

ذكرتني بالعصر القديم ... :lol: :lol:

طيب .. كفانا "مُزاحا" و لندخل في صُلب الموضوع .. عشان ما يزعل علينا الإخوة الكرام !

بينما كنت أقرأ الكتاب .. وجدتُ بعض الملاحظات و أردتُ أن أنقلها لكَ لكي نُناقشها سوية.

1-من الفقرة السابقة نجد أنكَ قُلتَ بأن while عبارة عن دالة ! و هي ليست كذلك ...

While هي إحدى الحلقات الثلاثة الموجودة في السي++.

2-في الصفحة القبل الأخيرة ذكرتَ ما يلي:

اقتباس
من الأفضل استخدام المؤشر inline قبل بداية أي دالة

inline ليس مؤشر ! وإنما هو كلمة محجوزة يتمثل دورها في جعل الدوال "دوال سطرية".

3-في نفس الصفحة السابقة ذكرتَ ما يلي:

اقتباس
التصريح using namespce std أحتاج منه فقط الدوال cout و cin و endl لذلك سأُلغي using namespace std و أستخدم فقط ما يلي:

std::cout

std::cin

std::endl

أولا cout و cin و endl ليسوا "دوال" و إنما هم "كائنات" , و بالنسبة لفائدة إلغاء العبارة using namespace std لأنك لا تحتاج إلى كل الثوابت و الدوال و الكائنات الموجودة في مساحة الأسماء std فهذا ما كُنت اعتقده بالضبط ! ولكن الأُستاذ محمد علاء أقنعني بأن تضمين المكتبات لا يُؤثر على حجم البرنامج .. بل الدوال و الكائنات التي قُمت باستدعائها فقط هي التي ستؤثر .. أي أننا عندما نكتب العبارة: using namespace std فإن الثوابت و الدوال و الكائنات الموجود في مساحة الأسماء std تكون جاهزة للإستدعاء .." ولا يُؤثر منها إلا ما استدعيناه نحن بأنفسنا ".. من هنا نجدُ أن تضمين المكتبة (كَكُل) يتساوى مع تضمين الكائنات على انفراد.

أطيب الأُمنيات.

أخوك المبتدئ : أحمد/محمد.

#5

شكراً أخي محمد على قراءة الملف

نعم هذه أخطاء، ويجب تصحيحها وسوف أعدل في الملف حتى يكون صالحاً بإذن الله.

وأرجو من الإخوة الكرام أن يقومو بالنقد، حتى تعم الفائدة.

#6

جزاك الله خيرا على هدا الموضوع الرائع

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…