الدرس 7: أدوات التكرار

الدرس 7: أدوات التكرار

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


تمهيد

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

  • الأداة إذا...وإلا

  • الأمر أنتهي

  • الأمر أكرر

يستخدم أمر أكرر لتنفيذ فقرة، تحوي أمرا واحدا أو أكثر، عدداً من المرات. ولهذه الأداة 4 أشكال في لغة ج، يلي شرحها في الفقرات التالية.


1. الأداة أكرر … مرة

الصيغة العامة لهذه الأداة هي:

أكرر <عبارة حسابية صحيحة> مرة <فقرة>

تستخدم هذه الصيغة لتنفيذ فقرة، أي أمر واحد أو مجموعة أوامر محصورة بلامتين، عدداً محدداً من المرات. وتحدد قيمة العبارة الحسابية عدد مرات التكرار. إليك المثال التالي:

أكرر 3 مرة
أكتب "أهلاً بك مع لغة ج" ، سطر

يكرر هذا البرنامج تنفيذ الأداة أكتب ... 3 مرات. لاحظ أن أمر أكتب هو بحد ذاته فقرة تحتوي على أمر واحد، لذلك لا تحتاج لامتين لتحديدها. وتبين الصورة التالية نتيجة تنفيذ هذا البرنامج.


2. الأداة أكرر طالما

الصيغة العامة للأداة أكرر طالما هي :

أكرر طالما <عبارة منطقية> <فقرة>

في هذه الصيغة للأداة أكرر، تُكرر الحلقة طالما كانت العبارة المنطقية بعد كلمة طالما محققة. في البداية تُقيَّم العبارة المنطقية، فإذا آلت قيمة العبارة إلى القيمة المنطقية صواب تنفذ فقرة الحلقة، ثم يعود التنفيذ إلى بداية الحلقة، وتقيم العبارة المنطقية مرة أخرى، فإذا كانت محققة، نفذت فقرة الحلقة مرة أخرى، وهكذا إلى أن يؤول تقييم العبارة المنطقية إلى القيمة المنطقية خطأ.

مثال:

المتحول ع : صحيح
أجعل ع = 10
أكرر طالما ع > 0
{
  أكتب ع ، " "
  أجعل ع = ع - 1
}
أكتب سطر

يسرد هذا البرنامج الأعداد من 10 إلى 1 تنازلياً، ويعمل بالطريقة التالية. بعد إسناد القيمة البدائية 10 إلى المتحول ع ، تقارن قيمة ع مع الصفر ، ولأنها أكبر من الصفر تنفذ الحلقة فيكتب البرنامج قيمة ع (10) متبوعة بفراغ أبيض، ثم يُنقص المتحول ع بمقدار 1، فتصبح قيمته الجديدة 9 . يعود سير التنفيذ إلى بداية الحلقة وتقارن قيمة ع مع الصفر ولأن التسعة أكبر من الصفر تنفذ الحلقة مرة ثانية، وهكذا ... تنفذ الحلقة 10 مرات من أجل ع = 10 ، 9 ، 8 ، 7، 6 ، 5 ، 4 ، 3 ، 2، 1. في المرة الأخيرة ، تكتب قيمة ع (القيمة 1) ، وينقص ع بمقدار 1 فتصبح قيمته صفر، وعند العودة إلى بداية الحلقة تصبح العبارة المنطقية ع>0 خاطئة فلا تنفذ الحلقة وينتقل التنفيذ إلى الأداة التي تلي الحلقة (أمر أكتب) التي يقوم بنقل مكان الكتابة إلى سطر جديد. وتبين الصورة التالية نتيجة تنفيذ البرنامج:


3. الأداة أكرر ... حتى

الصيغة العامة للأداة أكرر ... حتى هي :

أكرر <فقرة> حتى <عبارة منطقية>

تعمل هذه الأداة بطريقة مشابهة للأداة أكرر طالما، إلا أن العبارة المنطقية التي تحدد شرط التكرار توضع في آخر الحلقة، وتقيم بعد كل تنفيذ لفقرة الحلقة. لذلك تنفذ حلقة أكرر حتى مرة واحدة على الأقل مهما تكن قيمة العبارة المنطقية.

مثال: اكتب برنامجاً يقرأ سلسلة من الأعداد الصحيحة تنتهي بعدد سالب، يدل على نهايتها ولا يشكل جزءاً منها، ثم يكتب مجموع أعداد هذه السلسلة:

المتحول ص ، المجموع : صحيح
المجموع = 0
ص = 0
أكتب "أدخل سلسلة أعداد صحيحة تنتهي بعدد سالب : " ، سطر

أكرر
{
  المجموع = المجموع + ص
  أقرأ ص
} حتى ص < 0

أكتب "مجموع أعداد السلسة = " ، المجموع


4. الأداة أكرر من ... إلى

الصيغة العامة للأداة أكرر من ... إلى هي :

أكرر من <متحول> = <عبارة حسابية صحيحة> إلى <عبارة حسابية صحيحة> [بخطوة <عبارة حسابية صحيحة ثابتة>]

 

مثال: اكتب برنامجاً يكتب قوى العدد 2 من 0 حتى 10

!! برنامج لطباعة قوى العدد 2 من 0 حتى 10
المتحول ص : صحيح
أكرر من ص = 0 إلى 10
أكتب "2^" ، ص ، " = " ، 2^ص ، سطر


تمارين تطبيقية

 

التمرين 7.1

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

  1. باستعمال أكرر طالما
  2. باستعمال أكرر حتى
  3. باستعمال أكرر من...إلى
  4. أي الطرق الثلاث أنسب لهذا التمرين؟ ولماذا؟

التمرين 7.2

أعد التمرين 6.1 بالطريقة الأفضل :
أعد كتابة مقدمة المشروع في حالة أن العدد نالمطلوب إدخاله من طرف المستعمل يجب أن يكون محصورا بين وَ  15 فقط.


التمرين 7.3

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


التمرين 7.4

أحسب العاملي  ن! = ن(ن – 1)(ن –2)....3.2.1  لعدد صحيح طبيعي نمع اعتبار أن  1=!0.

  1. باستعمال أكرر طالما
  2. باستعمال أكرر من...إلى

التمرين 7.5

أحسب بواسطة الضرب المتتالي القيمة س ن(أي س أس ن حيث س هو الأساس و ن هو الأس)لعددين سو نمطلوب إدخالهما من طرف المستعمل.


التمرين 7.6

أحسب حاصل الجمع للمتتالية التالية:

1 + 1\2 + 1\3 + ... + 1\ن

1 + 1/2 + 1/3 + ... + 1/N   مكتوبة بالحروف اللاتينية


التمرين 7.7

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


التمرين 7.8

أنجز برنامجا يمكن من قراءة الأرقام العربية واحدا تلو الآخر حتى يتم إدخال الرقم 0  فيتم إظهارها عكسيا.
مثال الدخول ثم 2  ثم 3  ثم 4  ثم 0   ===>      الظهور على الشاشة : 4321


التمرين 7.9

أنجز برنامجا يمكن من قراءة  عدد صحيح طبيعي ثم أحسب معكوسه.
مثال العدد 1234    ===>      الظهور على الشاشة : 4321


التمرين 7.10

أحسب قيمة الحدودية ح ذات الدرجة ن انطلاقا من العدد الحقيقي ذي النوع حقيقي:

ح(س) = ن×أن×س(ن-1أن-1×س+ ... + أ1×سأ0
P(X) = AnXn + An-1Xn-1 + ... + A1X + A0 (مكتوبة بالحروف اللاتينية) 

قيم ن والمعاملات أن،....،أ0 مطلوب إدخالها من طرف المستعمل.

  1. استعمل الدالة تدويرالمنتمية إلى المكتبة <رياضيات.jeem>.
    مثال ن تدوير(س,10تكافئ ن س10.
  2. لتجاوز استعمال الأس أثناء الحساب استعمل طريقة هورنرالمعرفة كالتالي :


التمرين 7.11

أحسب القاسم المشترك الأكبر لعددين صحيحين طبيعيين باستعمال الطريقة الأقليدية.


التمرين 7.12

أحسب القيمة م ن  لمتتالية فيبوناتشي المعرفة كالتالي :
م1=1 
م2=1
م ن=م ن-1 + م ن-2   (ن>2  بحيث
)

حدد الصف ن والقيمة م ن لأقصى حد للمتتالية ، إذا استعملنا :
النوع صغير
النوع صحيح
النوع حقيقي


التمرين 7.13

أحسب جذر مربع س للعدد الحقيقي الموجب ن  بالتقريب المتتالي المعرف بالعلاقة الترجعية التالية:

س ع+1 = (س ع ن ÷ س ع) ÷ (2 ×س1)= ن
XJ+1 = (XJ + A/XJ) / 2 X1 = A (مكتوبة بالحروف اللاتينية)
 

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


التمرين 7.14

أظهر على الشاشة المثلث المتساوي الساقين المتكون من النجوم ذو  نسطرا نمطلوب إدخاله من طرف المستعمل).
مثال :
عدد الأسطر: 8
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************


التمرين 7.15

أنجز جدول الضرب ذو الرتبة ن (علما أن ن محصور بين و 10) أظهره على الشاشة بهذه الطريقة :

س×ش ا0 1  2  3  4  5  6  7  8  9  10
--------------------------------------
 0  
ا0 0  0  0  0  0  0  0  0  0  0
 1  
ا0 1  2  3  4  5  6  7  8  9  10
 2  
ا0 2  4  6  8  10 12 14 16 18 20
 3  
ا0 3  6  9  12 15 18 21 24 26 30
 4  
ا0 4  8  12 16 20 24 28 32 36 40
 5  
ا0 5  10 15 20 25 30 35 40 45 50
 6  
ا0 6  12 18 24 30 36 42 48 54 60
 7  
ا0 7  14 21 28 35 42 49 56 63 70
 8  
ا0 8  16 24 32 40 48 56 64 62 80
 9  
ا0 9  18 26 36 45 54 63 62 81 90
10  
ا0 10 20 30 40 50 60 60 80 90 100


 التمرين 7.16

أكتب برنامجاً يحول الأعداد العشرية الصحيحة إلى أعداد ثنائية باتباع طريقة القسمة المكررة على 2.

 لتحويل عدد عشري إلى عدد ثنائي نتبع الطريقة التالية:

  1. نقسم العدد العشري قسمة صحيحة على 2.
  2. نكتب باقي القسمة لأنه يساوي قيمة المرتبة الحالية للعدد الثنائي.
  3. نجعل القيمة الجديدة للعدد العشري مساوية لحاصل قسمته الصحيحة على 2.
  4. نـكرر الخطوات-إلى أن تصبح قيمة العدد العشري صفر.

تأليف

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

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

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

 

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


المراجع

http://www.jeemlang.com


 

التعليقات   

 
# Guest 2015-06-17 21:51
قام المدير بحذف هذا التعليق
 
 
# Guest 2015-06-14 08:16
قام المدير بحذف هذا التعليق
 
 
# Guest 2015-06-12 07:39
قام المدير بحذف هذا التعليق
 
 
# Guest 2015-05-22 10:55
قام المدير بحذف هذا التعليق
 
 
# Guest 2015-05-19 04:12
قام المدير بحذف هذا التعليق
 
 
# Guest 2015-04-25 05:10
قام المدير بحذف هذا التعليق
 
 
# Guest 2015-04-07 11:05
قام المدير بحذف هذا التعليق
 
 
# Guest 2015-03-27 13:09
قام المدير بحذف هذا التعليق
 

أضف تعليق


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


Go to top