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

 

تجد هنا حلول لبعض التمارين في جميع فقرات هذا الدرس.

 
 

التمارين 11.37، 11.38، 11.39، 11.40، 11.41، 11.42، 11.43

 
*(------------------------------------------------------------------
برنامج لحساب المصفوفات
جميع الحقوق محفوظة للمؤلف، دمحمد عمار السلكة ،  1420 هجري - 2000 م
--------------------------------------------------------------------)*

الثابت أعظم_عدد_أسطر = 10
الثابت أعظم_عدد_أعمدة = 10

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

الخوارزمية أقرأ_المصفوفة مص مصفوفة)
{
  أكرر
  {
  أكتب "أدخل أبعاد المصفوفة:  "
   أقرأ مص.س ، مص.ع
   إذا (مص.س >  أعظم_عدد_أسطرأو (مص.ع >  أعظم_عدد_أعمدة)
    أكتب "هذه المصفوفة كبيرة جداً الرجاء إدخال أبعاد مصفوفة أخرى:"، سطر
  حتى  (مص.س <= أعظم_عدد_أسطرو (مص.ع <=  أعظم_عدد_أعمدة)

  المتحول د ، ذ صحيح
  أكتب "أدخل المصفوفة: "، سطر
  أكرر من د=1 إلى مص.س
    أكرر من ذ=1 إلى مص.ع
      أقرأ مص.م[د][ذ
}

الخوارزمية أكتب_المصفوفة (  مص مصفوفة)
{
  المتحول د ، ذصحيح
  أكرر من د=1 إلى مص.س
  {
    أكرر من ذ=1 إلى مص.ع
      أكتب مص.م[د][ذ]، "   "
    أكتب سطر
  }
}

التابع المصفوفة_متناظرة مص مصفوفة) -> منطقي
{
المتحول د  ، ذ صحيح
  إذا مص.س <> مص.ع
    أرجع خطأ
  أكرر من د = 1 إلى مص.س
    أكرر من ذ  = 1 إلى مص.ع
      إذا مص.م [د][ذ] <> مص.م[ذ][د]
        أرجع خطأ
أرجع صواب
}

الخوارزمية منقول_المصفوفة مص ، مق مصفوفة)
{
  المتحول د ، ذ صحيح
  أجعل مق.س مص.ع
  أجعل مق.ع مص.س

  أكرر من د =1 إلى مق.س
    أكرر من ذ=1 إلى مق.ع
      أجعل مق.م [د][ذ] = مص.م [ذ][د]
}

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

التابع أضرب_مصفوفتين (مص، مص، مض مصفوفة) -> منطقي
{
  إذا مص1.ع <> مص2.س
  {
    أكتب "لا يمكن الحصول على جداء المصفوفتين لأن عدد أعمدة "
أكتب "المصفوفة الأولى لا يساوي عدد أسطر المصفوفة  الثانية
، سطر
    أرجع (خطأ)
  }
  المتحول د ، ذ ، رصحيح
  المتحول قحقيقي
  أكرر من د= 1 إلى مص1.س
    أكرر من ذ= 1 إلى مص2.ع
    {
      أجعل ق = 0   
      أكرر من ر  = 1 إلى مص1.ع
         أجعل ق ق مص1.م [د][ر] × مص2.م [ر][ذ]
      أجعل مض.م [د][ذ] = ق
    }
أرجع (صواب)
}

المتحول أ ، ب ، ج مصفوفة
المتحول ممنطقي

أقرأ_المصفوفة (أ)
أقرأ_المصفوفة (ب)

أكتب "المصفوفة الأولى : " ،سطر
أكتب_المصفوفة (أ)
إذا المصفوفة_متناظرة (أأكتب "المصفوفة الأولى متناظرة، سطر
منقول_المصفوفة (أ ، ج)
أكتب "منقول المصفوفة الأولى  :" ، سطر
أكتب_المصفوفة (ج)

أكتب "المصفوفة الثانية : " ،سطر
أكتب_المصفوفة (ب)
إذا المصفوفة_متناظرة (بأكتب "المصفوفة الثانية متناظرة، سطر
منقول_المصفوفة  (ب ، ج)
أكتب "منقول المصفوفة الثانية :" ، سطر
أكتب_المصفوفة (ج)

أجعل م أجمع_مصفوفتين أ ، ب ، ج )
إذا م
{
  أكتب "مجموع المصفوفتين :" ، سطر
  أكتب_المصفوفة ج )
}
 
أجعل م أضرب_مصفوفتين  أ ، ب ، ج )
إذا م
{
  أكتب "جداء المصفوفتين  : " ، سطر
  أكتب_المصفوفة ج 
}


 
 
 
التمرين 12.13

تواتر ورود الحروف في نص عربي
أدرج "حروف"
الثابت نه = 255
 
المتحول ع : صفيفة [255] من صحيح
المتحول ح : حرف
 
!! أولاً لنقم بتصفير العدادات
المتحول د : صحيح
أكرر من د = 1 إلى 255
أجعل ع[د] = 0
 
المتحول ملف_النص : ملف
المتحول اسم_الملف : صفيفة [25] من حرف
أكتب "أدخل اسم الملف الذي يحوي النص الذي تريد دراسته : "
أقرأ اسم_الملف
أفتح ملف_النص للقراءة من اسم_الملف
أقرأ من ملف_النص : ح
المتحول مج : صحيح
مج =0
أكرر طالما ح <> 255 !! نهاية الملف
{
مج = مج +1
ع[ح] = ع[ح] + 1
أقرأ من ملف_النص : ح
}
أغلق ملف_النص
 
أكتب مج ، سطر
أكرر من ح = ‘ء‘ إلى ‘ي‘
{
إذا أبجدي (ح)
أكتب " تواتر الحرف : " ، ح ، " = "، ع[ح]، سطر
}
ويبين الشكل التالي تنفيذ البرنامج على الملف ".txtأدعيةالموجود في المجلد "لغة عربيةضمن مجلد الأمثلة المرفق مع برنامج الخوارزمي .



التمرين 12.17: تشفير ملف

أدرج "حروف"
 
التابع تشفير (ح:حرف - ف : حرف)-> حرف
{
المتحول ص : صحيح
إذا عكس (أبجدي (ح))
أرجع ح
 
ص = ح
أكرر
{
ص = ص + ف
إذا ص > ‘ي‘ ص = ص - ‘ي‘ -1 + ‘ء‘
ح = ص
}حتى أبجدي (ح)
أرجع ح
}
 
المتحول ملف_النص ، ملف_الشيفرة : ملف
المتحول ح ، المفتاح : حرف
المتحول اسم_الملف : صفيفة [128] من حرف
 
أكتب "أدخل المفتاح:"
أقرأ المفتاح
أكتب "أدخل اسم الملف المراد تشفيره : "
أقرأ اسم_الملف
أفتح ملف_النص للقراءة من اسم_الملف
إذا ملف_النص = 0
{
أكتب "لا يمكن فتح الملف" ، سطر
قف
}
 
أكتب "أدخل اسم الملف الذي سيحوي النص المشفّر : "
أقرأ اسم_الملف
أفتح ملف_الشيفرة للكتابة في اسم_الملف
إذا ملف_الشيفرة = 0
{
أكتب "لا يمكن فتح الملف" ، سطر
قف
}
أقرأ من ملف_النص : ح
أكرر طالما ح <> 255
{
أكتب في ملف_الشيفرة : تشفير (ح ، المفتاح)
أقرأ من ملف_النص : ح
}
أغلق ملف_النص
أغلق ملف_الشيفرة
فك تشفير ملف
أدرج "حروف"
 
التابع فك_تشفير (الثابت ح:حرف - ف : حرف)-> حرف
{
المتحول ص : صحيح
 
إذا عكس (أبجدي (ح))
أرجع ح
ص = ح
أكرر
{
ص = ص - ف
إذا ص < ‘ء‘ ص = ‘ي‘ - (‘ء‘ - ص) + 1
ح = ص
}حتى أبجدي (ح)
أرجع ح
}
 
المتحول ملف_النص ، ملف_الشيفرة : ملف
المتحول ح ، المفتاح : حرف
المتحول اسم_الملف : صفيفة [128] من حرف
 
أكتب "أدخل المفتاح (حرف) :"
أقرأ المفتاح
أكتب "أدخل اسم الملف المشفر : "
أقرأ اسم_الملف
أفتح ملف_الشيفرة للقراءة من اسم_الملف
إذا ملف_الشيفرة = 0
{
أكتب "لا يمكن فتح الملف" ، سطر
قف
}
 
أكتب "أدخل اسم ملف النص : "
أقرأ اسم_الملف
أفتح ملف_النص للكتابة في اسم_الملف
إذا ملف_النص = 0
{
أكتب "لا يمكن فتح الملف" ، سطر
قف
}
أقرأ من ملف_الشيفرة : ح
أكرر طالما ح <> 255
{
أكتب في ملف_النص : فك_تشفير (ح ، المفتاح)
أكتب فك_تشفير (ح ، المفتاح)
 
أقرأ من ملف_الشيفرة : ح
}
أغلق ملف_النص
أغلق ملف_الشيفرة
التمرين 13.1

المتحولس : صحيح
أكررمنس=0 إلىحدس
أرسمالنقطة(س، 200)


 

 

التمرين 13.2

*(-------------------------------------------------------------------
برنامج بلغة ج لرسم منحني الجيب: ع = م جب (س)
جميع الحقوق محفوظة للمؤلف: د. محمد عمار السلكة، 1420 هجري - 2000 م
---------------------------------------------------------------------)*
 
الثابت بي = 3.14
المتحول س، ع : صحيح
المتحول م : حقيقي
 
أكتب "أدخل قيمة المطال: "
أقرأ م
 
أجعل س = 0
أكرر طالما س < حدس
{
أجعل ع = حدع÷2 + م × جب (س × بي ÷ 180)
أرسم النقطة (س،ع)
أجعل س = س + 1
}
 

 

التمرين 13.3

أرسم مستقيم من (100،100) إلى (200،100) إلى (200،200) إلى (100،200) إلى (100،100)
أرسم دائرة مركزها (150،150) قطرها 50
 

 

التمرين 13.4

*(------------------------------------------------------------------
برنامج مطور لرسم منحني الجيب : ع = م جب (س)
جميع الحقوق محفوظة للمؤلف:د. محمد عمار السلكة، 1420 هجري - 2000 م
--------------------------------------------------------------------)*
 
الثابت بي = 3.14
المتحول س1، س2 : صحيح
المتحول ع1 ، ع2 ، م : حقيقي
المتحول ق : صحيح
 
أدرج "ألوان"
ألون باللون الفستقي ، الورقة
أرسم باللون الأحمر
 
أكتب "أدخل قيمة القفزة: "
أقرأ ق
أكتب "أدخل قيمة المطال: "
أقرأ م
 
أجعل س1 = 0
أكرر طالما س1 < حدس
{
أجعل س2= س1 + ق
أجعل ع1 = حدع÷2 + م × جب (س1 × بي ÷ 180)
أجعل ع2 = حدع÷2 + م × جب (س2 × بي ÷ 180)
أرسم مستقيم من (س1،ع1) إلى (س2،ع2)
أجعل س1 = س1 + ق
}
 

 

التمرين 13.5
المتحول س ، ع ، ق : صحيح
 
أكرر طالما صواب
{
أكتب"أدخل إحداثيتي مركز الدائرة (أدخل قيمة سالبة لإنهاء البرنامج): "
أقرأ س ، ع
إذا(س<0) أو(ع<0) أنتهي
 
أكتب"أدخل قطر الدائرة: "
أقرأ ق
إذا ق< 0
أكتب" يجب أن يكون القطر عدداً موجباً !" ، سطر
وإلا
أرسمدائرة مركزها(س،ع) قطرها ق
}
 

 

 
التمرين 13.8: منحني الوردة
*(-------------------------------------------------------------------
برنامج بلغة ج لرسم منحني حلزون أرخميدس
جميع الحقوق محفوظة للمؤلف: د. محمد عمار السلكة، 1420 هجري - 2000 م
--------------------------------------------------------------------)*
!! المعادلة العامة لمنحني الحلزون في الإحداثيات
!! القطبية ر = ثا × يه
!!============================================
 
أدرج "ألوان"
 
الثابت بي = 3.1415
المتحول ر ، يه ، س ، ع ، ثا : حقيقي
المتحول ن : صحيح
المتحول س0 ، ع0 : صحيح
 
!! ألون شاشة الرسم باللون السماوي
!!-------------------------------
ألون باللون السماوي ، الورقة
 
!! مبدأ الإحداثيات القطبية يقع في منتصف ورقة الرسم
!!-----------------------------------------------
أجعل س0 = حدس \ 2
أجعل ع0 = حدع \ 2
 
!! أرسم محوري الإحداثيات المتعامدة
!!-------------------------------
أرسم مستقيم من (س0، 0) إلى (س0، حدع)
أرسم مستقيم من (0، ع0) إلى (حدس، ع0)
 
!! أرسم المنحني باللون الأحمر
!!--------------------------
أرسم باللون الأحمر
 
!! أقرأ قيمة الثابت ثا وعدد اللفات ن
 
أكتب "أدخل قيمة الثابت ثا:"
أقرأ ثا
أكتب "أدخل عدد لفات الحلزون:"
أقرأ ن
 
!! أرسم المنحني نقطة فنقطة بخطوة للزاوية يه قدرها0.01 راديان
!!----------------------------------------------------------
أجعل يه = 0
أكرر طالما يه < 2×بي×ن
{
أجعل ر = ثا × يه
أجعل س = ر × تجب (يه) + س0
أجعل ع = ر × جب (يه ) + ع0
أرسم النقطة (س ، ع)
أجعل يه = يه + 0.01
}
 
التمرين 13.8: منحني الوردة
*(-------------------------------------------------------------------
برنامج بلغة ج لرسم منحني الوردة
جميع الحقوق محفوظة للمؤلف: د. محمد عمار السلكة، 1420 هجري - 2000 م
---------------------------------------------------------------------)*
 
!! المعادلة العامة لمنحني الوردة في الإحداثيات القطبية ر=ثا×تجب(ن × يه)
!! حيث ثا ثابت حقيقي و ن ثابت صحيح
 
أدرج "ألوان"
 
الثابت بي = 3.14
المتحول ر1، ر2 ، يه1 ، يه2 ، ثا : حقيقي
المتحول ن : صحيح
المتحول س1، ع1، س2، ع2 : حقيقي
المتحول س0 ، ع0 : صحيح
 
أجعل س0 = حدس \ 2
أجعل ع0 = حدع \ 2
أرسم مستقيم من (س0، 0) إلى (س0، حدع)
أرسم مستقيم من (0، ع0) إلى (حدس، ع0)
 
أكتب "أدخل قيمة الثابت ن:"
أقرأ ن
 
أرسم باللون الأحمر
أجعل ثا = 100
أجعل يه1 = 0
أكرر طالما يه1 < 2×بي
{
أجعل يه2 = يه1 + 0.01
أجعل ر1 = ثا × تجب(ن×يه1)
أجعل ر2 = ثا × تجب(ن×يه2)
أجعل س1 = ر1 × تجب(يه1) + س0
أجعل ع1 = ر1 × جب(يه1) + ع0
أجعل س2 = ر2 × تجب(يه2) + س0
أجعل ع2 = ر2 × جب(يه2) + ع0
أرسم مستقيم من (س1،ع1) إلى (س2،ع2)
أجعل يه1 = يه1 + 0.01
}
 
;التمرين 13.9: التسديد على هدف ثابت
*(--------------------------------------------------------------------
برنامج بلغة ج يحاكي عملية التسديد على هدف ثابت
جميع الحقوق محفوظة للمؤلف: د. محمد عمار السلكة ، 1420 هجري - 2000 م
---------------------------------------------------------------------)*
 
أدرج "ألوان"
 
الثابت ثقا = 9.8 !! ثابت الثقالة الأرضية
الثابت حه = 0.03 !! حجم الهدف كنسبة من بعده عن نقطة الإطلاق
الثابت عه = 30 !! ارتفاع الجزء البني الذي يمثل الأرض
 
المتحول سه: حقيقي
المتحول سر0 ، يه : حقيقي
المتحول ز : حقيقي
المتحول س ، ع ، سظ ، عظ : حقيقي
المتحول المقياس : حقيقي
المتحول م : حقيقي
 
ألون باللون السماوي ، الورقة
 
أكتب "ماهو بعد الهدف عن نقطة الإطلاق (بالمتر) :"
أقرأ سه
 
المقياس = حدس ÷ (سه × 1.5)
 
أكرر طالما صح
{
ألون باللون البني، مستطيل من (0،0) إلى (حدس ، عه)
ألون باللون الأحمر، مستطيل من (سه×(1-حهالمقياس، عه)
إلى (سه×(1+حه) × المقياس ، سه × حه × المقياس+عه)
أرسم باللون الأصفر، مستقيم من (سه×المقياس ، عه)
إلى (سه×المقياس ، سه × حه × المقياس+عه + 15 )
أرسم باللون الأسود
أنقش عند (سه×(1+حه) × المقياس + 30، سه×حه× المقياس + عه + 15)"الهدف"
أكتب "أدخل سرعة القذف (م//ثا) : "
أقرأ سر0
إذا سر0 = 0 قف
أكتب "أدخل زاوية القذف (درجة) : "
أقرأ يه
أجعل يه = يه ÷ 180 × 3.14
أجعل ز = 0
س = 0
ع = عه
أكرر
{
سظ = س × المقياس
عظ = ع × المقياس + عه
إذا (سظ<حدس) و (عظ<حدع) و (عظ > حه)
{
أرسم النقطة (سظ ، عظ)
ألون باللون الأحمر
ألون دائرة مركزها (سظ ، عظ) قطرها 4
 
م = 0
أكرر طالما م < 100 × المقياس
{
أجعل ز = ز
م = م + 1
}
 
أرسم باللون السماوي
ألون باللون السماوي
ألون دائرة مركزها (سظ،عظ) قطرها 4
أرسم باللون الأسود ، النقطة (سظ،عظ)
}
ز = ز + 0.1
أجعل س = سر0 × تجب(يه) × ز
أجعل ع = -0.5 × ثقا × ز^2 + سر0 × جب(يه) × ز
} حتى (ع <=0 ) أو (سظ > حدس)
 
إذا (|س - سه| <= سه × حه ) و (ع<=0)
{
أكتب " ****** أصبت الهدف ! ******" ، سطر
أكرر 10 مرة
{
أكرر 10000 مرة س = س !! حلقة تأخير زمني
ألون باللون الأحمر ، الورقة
أكرر 10000 مرة س =س !! حلقة تأخير زمني
ألون باللون السماوي ، الورقة
}
قف
}
}
التمرين 14.15
!! برنامج بلغة ج لحل مسألة أبراج هانوي
!! عدد الخطوات = 2^ن -1 حيث ن عدد الأقراص
!!---------------------------------------
 
!!--تعريف المتغيرات العامة---------------
!!---------------------------------------
المتحول عدد_الأقراص : صحيح
المتحول الخطوة : صحيح
 
!!--تعريف الخوارزميات والدوال------------
!!---------------------------------------
الخوارزمية أنقل (العدد ، المصدر ، الهدف ، الوسيط : صحيح)
{
إذا العدد > 0
{
أنقل (العدد -1 ، المصدر ، الوسيط ، الهدف)
الخطوة = الخطوة + 1
أكتب الخطوة ، " : " ، "انقل قرصاً واحداً من " ، المصدر ، " إلى " ، الهدف ، سطر
أنقل (العدد -1 ، الوسيط ، الهدف ، المصدر)
}
}
 
 
!!--البرنامج الرئيسي---------------------
!!---------------------------------------
الخطوة = 0
أكتب "أدخل عدد الأقراص : "
أقرأ عدد_الأقراص
أنقل (عدد_الأقراص ، 1، 3، 2)



تأليف

المؤلف الأصليالدكتورمحمد عمار السَلكة (دمشق سوريا)
الموقع الشخصي  http://www.drsalka.com
البريد الإلكترونيعنوان البريد الإلكتروني هذا محمي من روبوتات السبام. يجب عليك تفعيل الجافاسكربت لرؤيته.عنوان البريد الإلكتروني هذا محمي من روبوتات السبام. يجب عليك تفعيل الجافاسكربت لرؤيته.

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

المراجع

أضف تعليقا


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

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