أنت هنا:برمجها»اللغة ج»تطبيقات متنوعة الجزء 1
تطبيقات متنوعة - الجزء 1 تطبيقات متنوعة - الجزء 1
قيم الموضوع
(1 تصويت)

في آخر فقرة من هذا الدرس نبرز لك فيها بعد المشاريع تم إنجازها باللغة البرمجية ج.


حل جملة معادلات آنية

*(--------------------------------------------------------------------
 برنامج لحل جملة معادلات آنية من الدرجة الأولى بطريقة غاوس-جوردان
باستخدام الأقطاب العظمى من دون تبديل الأسطر أو الأعمدة
جميع الحقوق محفوظة للمؤلف، د. محمد عمار السلكة ، 1420 هجري - 2000 م
---------------------------------------------------------------------)*
 
البديل عدد_المعادلات_الأعظم = " 30 "
النوع مصفوفة : صفيفة [عدد_المعادلات_الأعظمي] [عدد_المعادلات_الأعظمي + 1] من حقيقي
المتحول ص : مصفوفة
المتحول سطر_القطب ، عمود_القطب : صغير
المتحول سطر_لقطب_سابق ، عمود_لقطب_سابق : صفيفة [عدد_المعادلات_الأعظمي] من صغير
المتحول د ، ذ : صغير
المتحول ن : صغير
المتحول قيمة_القطب : حقيقي
 
الخوارزمية أقرأ_المعادلات ( مص : مصفوفة -  ن : صغير)
{
  أكرر
  {
    أكتب "أدخل عدد المعادلات :  "
    أقرأ ن
    إذا (ن >  عدد_المعادلات_الأعظمي)
       أكتب "لا يمكن حل هذا العدد الكبير من المعادلات - الرجاء إدخال عدد آخر:" ، سطر
  } حتى  (ن <= عدد_المعادلات_الأعظمي)
 
  المتحول د ، ذ : صحيح
  أكتب "أدخل المصفوفة: "، سطر
  أكرر من د=1 إلى ن
    أكرر من ذ=1 إلى ن+1
      أقرأ مص[د][ذ
}
 
الخوارزمية أكتب_المعادلات ( مص : مصفوفة - ن : صغير)
{
  المتحول د ، ذ: صحيح
  أكرر من د=1 إلى ن
  {
    أكرر من ذ=1 إلى ن
    {
     إذا (مص[د][ذ] >= 0) و (ذ <> 1)
        أكتب "+"
      أكتب مص[د][ذ]، " س" ، ذ ، "  "
   }
     أكتب " = " ، مص[د][ن+1]
    أكتب سطر
  }
}
التابع القطب_التالي (ص: مصفوفة -  ن : صغير  -  سطر_القطب ، عمود_القطب : صغير ) -> حقيقي
{
  المتحول د ، ذ : صغير
  المتحول قيمة_القطب : حقيقي
  قيمة_القطب = 0
  أكرر من د =1 إلى ن
    إذا (سطر_لقطب_سابق [د] = 0)
      أكرر من ذ =1 إلى ن
        إذا (عمود_لقطب_سابق [ذ] = 0 )
           إذا | ص[د][ذ] | > | قيمة_القطب |
           {
              قيمة_القطب = ص [د][ذ]
              سطر_القطب = د
              عمود_القطب = ذ
            }
  أرجع (قيمة_القطب)
}
 
 
أقرأ_المعادلات (ص ، ن)
أكتب "جملة المعادلات :" ، سطر
أكتب_المعادلات (ص ، ن)
أكرر من د = 1 إلى ن+1
{
  سطر_لقطب_سابق [د] = 0
  عمود_لقطب_سابق [د] = 0
}
 
قيمة_القطب = القطب_التالي ( ص ، ن ، سطر_القطب ، عمود_القطب)
أكرر طالما قيمة_القطب  <> 0
{
  !! أقسم سطر القطب على قيمة القطب
  أكرر من ذ =1 إلى ن+1
    ص[سطر_القطب] [ذ] = ص[سطر_القطب] [ذ] ÷ قيمة_القطب
  أكرر من د = 1 إلى ن
    إذا (د <> سطر_القطب)
    {
      المتحول م : حقيقي
      م = ص [د][عمود_القطب]
      أكرر من ذ = 1 إلى ن+1
        إذا (عمود_لقطب_سابق [ذ] = 0)
          ص[د][ذ] = ص[د][ذ] - م × ص[سطر_القطب][ذ]
     }
سطر_لقطب_سابق [سطر_القطب] = عمود_القطب
عمود_لقطب_سابق [عمود_القطب]  = سطر_القطب
  قيمة_القطب = القطب_التالي ( ص ، ن ، سطر_القطب ، عمود_القطب)}
أكتب "الحل :" ، سطر 
أكرر من د=1 إلى ن
  أكتب "س" ، سطر_لقطب_سابق [د] ، " = " ، ص[د][ن+1]  ، سطر

 


رسم الأمواج الجيبية

*(---------------------------------------------------------------------------------------------
برنامج لرسم الأمواج الجيبية
جميع الحقوق محفوظة للمؤلف، د. محمد عمار السلكة ، 1420 هجري - 2000 م
------------------------------------------------------------------------------------------------)*
 
 
أدرج "ألوان"
الثابت بي = 3.14
الثابت عدد_النقاط = 40      !! عدد نقاط الرسم في الدورة الواحدة 


المتحول التواتر
: حقيقي     !! تواتر الموجة الجيبية (هرتز=دورة/الثانية)
 المتحول الدور : حقيقي      !! دور الموجة الجيبية (ثانية)
المتحول المطال : حقيقي      !! مطال الموجة الجيبية
المتحول النافذة : حقيقي     !! قيمة النافذة الزمنية (ثانية)
المتحول أكبر_مطال : حقيقي   !! قيمة أكبر_مطال
المتحول مقياس_س ، مقياس_ع : حقيقي  !! مقياس الرسم بالاتجاه س (نقطة/ثانية) و الاتجاه ع
المتحول اللون : صحيح        !! رقم اللون المستخدم في رسم المنحني
 
المتحول  تفاز : حقيقي       !! القفزة الزمنية لرسم نقاط المنحني الجيبي
المتحول  ز1، ز2 : حقيقي    !! الحظة الزمنية ز1 و ز2
المتحول ع1 ، ع2  :  حقيقي  !! قيمة المطال الموافقة للحظة الزمنية ز1 و ز2 على التوالي
المتحول ج : حرف
 
 
!!أرسم مستقيم من (0،ععظ÷2) إلى (سعظ،ععظ÷2)
!!أرسم مستقيم من (سعظ÷2،0) إلى (سعظ÷2، ععظ)
 
 
أكتب "أدخل قيمة النافذة الزمنية (ثانية) : "
أقرأ النافذة
أكتب "أدخل قيمة المطال الأعظمي للأمواج:"
أقرأ أكبر_مطال 
!! أحسب مقياس الرسم بالاتجاه س و ع

مقياس
_س = حدس ÷ النافذة
مقياس_ع = حدع ÷ (2 × أكبر_مطال)
اللون = 0
أكرر
{
  اللون = اللون + 1
  أكتب "أدخل قيمة التواتر (هرتز) :"
  أقرأ التواتر
  الدور = 1 ÷ التواتر         
  تفاز = الدور ÷ عدد_النقاط
  أكتب "أدخل قيمة المطال: "
  أقرأ المطال
  أنتقي_اللون (اللون)
  أجعل ز1 = 0
  أكرر طالما  ز1 < النافذة
  {
    أجعل ز2= ز1 + تفاز
    أجعل ع1 = حدع ÷2 + مقياس_ع × المطال × جب  (ز1 ×2 × بي × التواتر )
    أجعل ع2 = حدع ÷2 + مقياس_ع × المطال × جب  (ز2 × 2 × بي ×  التواتر)
    أرسم مستقيم من (ز1 × مقياس_س ،ع1) إلى (ز2 × مقياس_س ،ع2)
    أجعل ز1 = ز1  + تفاز
  }
  أكتب "هل تريد رسم منحني آخر؟ (ن=نعم ، ل=لا) : "
  أقرأ ج
} حتى ج =؟  ‘ل‘

 


رسم منحني التابع تا (س)

يبين المثال التالي برنامجاً يمكنه رسم المنحني البياني لدالة لها الشكل العام ع = تا (س). ويمكن استخدام هذا البرنامج لرسم المنحنى البياني لأي دالة بكتابة معادلتها في جسم الدالة تا المعرف في بداية البرنامج.

 *(--------------------------------------------------------------------
المحتوى : برنامج بلغة ج لرسم منحني التابع ع = تا(س)
المستوى : ثانوي/جامعي
جميع الحقوق محفوظة للمؤلف: د. محمد عمار السلكة ، 1420 هجري - 2000 م
---------------------------------------------------------------------)*

!!العدد الأعظمي للنقاط التجريبية الممكن إدخالها
الثابت عدد_النقاط_الأعظمي = 250
الثابت الهامش_الأيمن = 15 !! عرض الهامش الفارغ يمين الرسم
الثابت الهامش_الأيسر = 100
الثابت الهامش_الأعلى = 15
الثابت الهامش_الأسفل = 30
الثابت طول_السهم = 10 !! طول رأس السهم
الثابت عرض_السهم = 3 !! عرض رأس السهم

أدرج "مترادفات"
أدرج "ألوان"

المتحول س ، ع : صفيفة [عدد_النقاط_الأعظمي] من حقيقي
المتحول عدد_النقاط ، د : صحيح
المتحول أكبر_س ، أصغر_س ، أكبر_ع ، أصغر_ع ، تفاس : حقيقي
المتحول طول_س ، طول_ع : صحيح
المتحول مقياس_س ، مقياس_ع : حقيقي
المتحول س0 ، ع0 : حقيقي

التابع تا (س:حقيقي) -> حقيقي
{
أرجع ( س^3 – 4 × س +10) !! أدخل التابع بين القوسين
}

التابع تس (س:حقيقي)->حقيقي
{
أرجع (س-أصغر_س) × مقياس_س + الهامش_الأيسر
}

التابع تع (ع:حقيقي)->حقيقي
{
أرجع (ع-أصغر_ع) ×مقياس_ع + الهامش_الأسفل
}

!! بداية الرنامج
!! -------------
أكتب "أدخل عدد النقاط:"
أقرأ عدد_النقاط

أكتب "أدخل مجال تعريف التابع: "
أقرأ أصغر_س ، أكبر_س
تفاس = (أكبر_س - أصغر_س) ÷ عدد_النقاط

!! أحسب قيم التابع ع = تا(س) وأوجد أكبر وأصغر قيمة
س[1] = أصغر_س
أجعل ع[1] = تا(س[1])
أجعل أكبر_ع = ع[1]
أجعل أصغر_ع = ع[1]
أكرر من د=2 إلى عدد_النقاط
{
أجعل س[د] = س[د-1] + تفاس
أجعل ع[د] = تا(س[د])
إذا ع[د] > أكبر_ع
أجعل أكبر_ع = ع[د]
إذا ع[د] < أصغر_ع
أجعل أصغر_ع = ع[د]
}

!! أحسب مقياس الرسم
!!-----------------
أجعل طول_س = حدس - (الهامش_الأيمن + الهامش_الأيسر)
أجعل طول_ع = حدع - (الهامش_الأسفل + الهامش_الأعلى)

أجعل مقياس_س = طول_س ÷ | أكبر_س - أصغر_س |
إذا | أكبر_ع - أصغر_ع | = 0
مقياس_ع = طول_ع ÷ أكبر_ع
وإلا
أجعل مقياس_ع = طول_ع ÷ | أكبر_ع - أصغر_ع |

!! أحسب إحداثيات مبدأ الإحداثيات
!!-----------------------------

إذا أصغر_س < صفر
أجعل س0 = |أصغر_س|×مقياس_س + الهامش_الأيسر
وإلا أجعل س0 = صفر + الهامش_الأيسر

إذا أصغر_ع < صفر
أجعل ع0 = |أصغر_ع|×مقياس_ع + الهامش_الأسفل
وإلا أجعل ع0 = صفر + الهامش_الأسفل

!! أرسم محاور الإحداثيات
!!---------------------
ألون باللون الأصفر ، الورقة
أرسم باللون الأسود
أنقش عند (حدس،ع0-عرض_السهم) "س"
أنقش عند (س0-عرض_السهم، حدع) "ع"
!! أرسم المحور س ورأس السهم الخاص به
أرسم مستقيم من (الهامش_الأيسر،ع0) إلى (حدس ، ع0)
أرسم مستقيم من (حدس-طول_السهم،ع0+عرض_السهم) إلى (حدس،ع0)
إلى (حدس-طول_السهم،ع0-عرض_السهم)
!! أرسم المحور ع ورأس السهم الخاص به
أرسم مستقيم من (س0،الهامش_الأسفل) إلى (س0 ، حدع)
أرسم مستقيم من (س0-عرض_السهم، حدع-طول_السهم) إلى (س0، حدع)
إلى (س0+عرض_السهم،حدع-طول_السهم)


!! أرسم خطوط الشبكة
أرسم باللون الرمادي
د=1
أكرر طالما د=<عدد_النقاط
{
إذا تس(س[د]) <> س0
أرسم مستقيم من ( تس(س[د]) ، الهامش_الأسفل) إلى (تس(س[د]) ، طول_ع+الهامش_الأسفل)
إذا تع(ع[د]) <> ع0
أرسم مستقيم من ( الهامش_الأيسر ، تع(ع[د]) ) إلى ( طول_س+الهامش_الأيسر ، تع(ع[د]) )
د = د + (عدد_النقاط \ 10)
}
أرسم باللون الأسود
د = 1
أكرر طالما د <= عدد_النقاط
{
أنقش عند ( تس(س[د]) + 20 ، ع0-10) س[د]
أنقش عند ( س0 -10 ، تع(ع[د]) + 5) ع[د]
د = د + عدد_النقاط \10
}

!! أرسم المنحني
!!----------
ألون باللون الأخضر
د= 1
أكرر طالما د <= عدد_النقاط
{
ألون دائرة مركزها ( تس(س[د]) ، تع(ع[د]) ) قطرها 7
د = د + عدد_النقاط \10
}

أكرر من د = 1 إلى عدد_النقاط-1
{
أرسم باللون الأحمر
أرسم مستقيم من (تس(س[د]) ، تع(ع[د])) إلى (تس(س[د+1])، تع(ع[د+1]))
}

وبتغيير معادلة الدالة في جسم الدالة تا إلى :

أرجع (س^2 – 10×س - 50)

وتنفيذ البرنامج مرة أخرى، نحصل على الشكل المبين أدناه لهذا التابع في المجال [-10 ، 10].


تأليف

المؤلف الأصلي: الدكتورمحمد عمار السَلكة (دمشق - سوريا)

الموقع الشخصي: http://www.drsalka.com

البريد الإلكتروني: عنوان البريد الإلكتروني هذا محمي من روبوتات السبام. يجب عليك تفعيل الجافاسكربت لرؤيته.

 

ضبط بتصرف: محمد عبد الرحمان (الدار البيضاء - المغرب) 


المراجع

http://www.jeemlang.com


 

أضف تعليقا


إصنعها يريد أن يتأكد أنك لست روبوتا، لذلك أحسب ما يلي:

كود امني
تحديث