البرمجة - الخوارزميات

:جديد المواضيع
صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 10 من 20

البرمجة - الخوارزميات

  1. #1
    عضو متميز

    User Info Menu

    البرمجة - الخوارزميات

    السلام عليكم:

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

    لماذا اخترت الخوارزميات:
    نظراً لكثرة الدروس الخاصة بلغات البرمجة على الإنترنت ونظراً لوجود العديد من المهندسين الخبراء في هذا الملتقى الذين يمكنهم المساعدة في مجال الهندسة المدنية فقررت وضع مجموعة من المشاركات تفيد المهندس المدني في مجال البرمجة (إن شاء الله وإن سمح الوقت بذلك وقد تكون على فترات متباعدة) وهي عن كيفية الاستفادة من لغات البرمجة في عمل برامج هندسية.
    أي لن أتطرق إلى شرح لغات البرمجة أو الأوامر البرمجية بشكل مفصل، فقد يكون في ملتقى هندسة الحاسب الآلي من هو أفضل مني في هذا، ولكن سأتطرق إلى شرح بعض الخوارزميات المهمة في مجال الرياضيات العددية والتي غالباً ما يصادفها المهندس أثناء البرمجة.

    ماذا أقصد بالرياضيات العددية:
    توجد مجموعة من المسائل الرياضية المعقدة لا يمكن حلها يدوياً أحياناً أو أنها تتطلب مجهوداً كبيراً لحلها تحليليياً مثل تكامل تابع معقد أو حل معادلة تفاضلية من درجة كبيرة أو حل مجموعة 500 معادلة خطية ب 500 مجهول، لذلك نلجأ إلى حلها تقريبياً أي إيجاد طرق رياضية (خوارزميات) تعطي جواباً قريباً جداً من الدقة بواسطة التقريب المتتالي وهو مايسمى بالرياضيات العددية.

    ما هي الخوارزميات:
    يمكن تعريف الخوارزمية بأنها مجموعة منتهية من التعليمات خالية من الغموض يتم بتطبيقها خطوة خطوة إنجاز مهمة محددة.
    يعود اسم الخوارزمية إلى عالم الرياضيات محمد بن موسى الخوارزمي الذي ابتكر مفهوم الخوارزمية وهو عالم مسلم أصله من خوارزم في خراسان.
    تستخدم الخوارزميات بشكل كبير في هذه الأيام وبشكل خاص في برامج الحاسوب، المصطلح الإنكليزي المقابل لكلمة خوارزمية هو Algorithm.

    مثال عن خوارزمية (إيجاد جذور معادلة من الدرجة الثانية):
    كلنا يعلم طريقة حل معادلة من الدرجة الثانية وهي من أبسط الخوارزميات في الرياضيات العددية، ولكن سأشرحها كمثال (مع العلم أنها تعتبر طريقة دقيقة وليست تقريبية)

    1- نعيد ترتيب المعادلة لتصبح من الشكل:
    ax^2+bx+c=0
    حيث x هو المتحول و a,b,c ثوابت المعادلة.

    2- نحسب delta من المعادلة:
    delta=b^2-4ac






    3- نختبر قيمة delta:
    - إذا كانت delta أصغر من الصفر فليس للمعادلة جذور حقيقية (يمكن أن نتابع لإيجاد الجذور العقدية ولكن ليس هذا مجاله)
    - أما إذا كانت delta = 0 فإن للمعادلة جذر مضاعف يحسب من العلاقة:
    x1=x2=-b/2a



    - أما إذا كانت delta > 0 فإن للمعادلة جذران حقيقيان يحسبان من العلاقة.

    x1=(-b-sqr(delta)) / 2a
    x2=(-b+sqr(delta)) / 2a

    حيث أن sqr يشير إلى الجذر التربيعي في لغة Visual Basic.

    باتباعنا للخطوات السابقة أو الخوارزمية السابقة نستطيع حل معادلة من الدرجة الثانية

    وكما نلاحظ:
    1- الخوارزمية يجب أن تكون واضحة وخالية من التعقيد.
    2- يجب وجود قيم ابتدائية للخوارزمية وهي هنا ثوابت المعادلة a,b,c

    يمكن كتابة برنامج بلغة فيجيوال بيسيك (في المرفق) لحل هذه المعادلة (يمكن تحويله بسهولة إلى أي لغة أخرى):

    ÇáÈÑãÌÉ - ÇáÎæÇÑÒãíÇÊ-quadraticequation-gif quadraticequation-gif

    ملاحظة: قمت بوضع البرنامج على شكل صورة لأنني لم أستطع تنسيق الكود بشكل جيد ضمن المشاركة
    ملاحظة 2: لتطبيق هذا البرنامج يجب أن يكون لديك معرفة ولو بسيطة بلغة فيجيوال بيسيك

    الصور المرفقة الصور المرفقة

    0 Not allowed!
    التعديل الأخير تم بواسطة عبد الجواد ; 2006-09-04 الساعة 05:23 PM

  2. #2
    عضو متميز

    User Info Menu

    يمكن تحميل مثال للبرنامج بلغة فيجيوال بيسيك 6 من المرفقات.

    الملفات المرفقة الملفات المرفقة

    0 Not allowed!

  3. #3
    عضو متميز

    User Info Menu

    بارك الله بكم


    0 Not allowed!

  4. #4
    عضو فعال جداً

    User Info Menu

    Smile

    سبقتني اخي العزيز عبدالجواد بطرح الموضوع فقد كنت سأضع عليك الفكره بأن تعمل على كتابة بعض المشاركات في استخدام لغات البرمجه في عمل البرامج الهندسيه
    ولكن بارك الله فيك قرأت افكاري

    منتظر هذه السلسله بفارغ الصبر
    فلا تتأخر علينا


    تحياتي



    0 Not allowed!

  5. #5
    عضو متميز

    User Info Menu

    السلام عليكم:

    شكراً لكم، وأنا الآن أقوم بكتابة موضوع عن إيجاد جذور تابع مستمر، أي إيجاد حل المعادلة:
    f(x)=0

    حيث f هو تابع ل x أياً كان.

    مثلاً: f(x) = 2 * sin(x)/x + cos(x)^2 - x^2

    ولكنه يحتاج إلى بعض الوقت


    0 Not allowed!

  6. #6
    عضو فعال جداً

    User Info Menu

    Smile

    متابع معاك


    الله يعينك



    تحياتي



    0 Not allowed!

  7. #7

  8. #8
    جديد

    User Info Menu

    اريد حل معادلة من الدرجة الثانية بواسطة خوارزمية من فضلكم


    0 Not allowed!

  9. #9

  10. #10
    جديد

    User Info Menu

    بلا يا اخي لكن اريدها بلغة الجافا

    وجزاك الله خير الجزاء


    0 Not allowed!

صفحة 1 من 2 12 الأخيرةالأخيرة

الكلمات الدلالية لهذا الموضوع

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •