الفصل 5

الفصل 5

5.1 حلقة التكرار الشرطي

1.
b. تنفذ الحلقة ست مرات لقيم g = 1 , 2 , 3 , 5 , 8 , و 13 .
2.
c. 21 هو أول عدد فيبوناتشي أكبر من 20، وبالنسبة لـ g = 21، سيتم تقييم الشرط إلى False لأول مرة.
3.
a. تطبع الشِفرة أولاً القيمة الأولية للمُتغيِّر f. ثم، في كل تكرار، تُطبع قيمة g، وستكون قيمة g طوال تنفيذ الشِفرة هي 1 , 2 , 3 , 5 , 8 , و 13 . وبالتالي، فإن جميع القيم المطبوعة هي 1 , 1 , 2 , 3 , 5 , 8 , و 13 .
4.
b. تنفذ الحلقة لقيم n = 4, 3 , 2 , 1 .
5.
b. شرط إنهاء الحلقة هو n = 0؛ لذلك، فإن قيمة n بعد الحلقة تساوي 0 . سيكون السطر الأخير المطبوع هو: value of n after the loop is 0.
6.
c. بما أن قيمة التهيئة لـ n تساوي 4 وقيمة n تزداد فقط، فإن شرط الحلقة سيبقى صحيحًا دائمًا. لن تتوقف الحلقة أبدًا.

5.2 حلقة التكرار المحدد

1.
b. توجد ثمانية أحرف في str_var. يؤدي التكرار على جميع الأحرف وزيادة قيمة المُتغيِّر count في كل تكرار إلى أن تصبح قيمة count هي 8 .
2.
a. بما أن القيمة الأولية لـ count هي 0 ، فإن ضرب count بأي رقم يؤدي إلى إخراج 0 .
3.
c. يطبع السطر المضاف كل حرف يتم التكرار عليه (الحرف c)، ويطبع علامة * إضافية بعد الحرف.
4.
a. سيكون الإخراج عبارة عن تسلسل متزايد بين 10 و 22 (شاملًا للطرفين): 10 , 13 , 16 , 19 , و 22 .
5.
c. يبدأ التعبير تسلسلًا من 5 ، ويتناقص بمقدار 1 في كل خطوة، وينتهي عند 1 .
6.
a. تُنشئ دالّة range() تسلسلًا تنازليًا، يبدأ من -1 حتى -2. وبالتالي، فإن الإخراج هو -1.
7.
c. عندما يكون حجم الخطوة سالبًا، سيكون التسلسل المُنشأ بترتيب تنازلي. وبالتالي، يجب أن يكون start أكبر من end؛ وإلا فلن يتم إنشاء أي تسلسل.
8.
c. عند تقديم وسيطين إلى دالّة range()، تُعتبر الوسائط هي start و end للتسلسل، وسيكون حجم الخطوة هو 1 . عندما يكون حجم الخطوة موجبًا، سيكون التسلسل المُنشأ بترتيب تصاعدي، وبالتالي، يجب أن يكون start أقل من end. وإلا فلن يتم إنشاء أي تسلسل.

5.3 حلقات متداخلة

1.
b. مجموعة قيم i و j، (i, j)، التي تستوفي شروط الحلقة الداخلية والخارجية هي كما يلي:
(1, 1), (1, 2), (1, 3), (1, 4),
(2, 1), (2, 2), (2, 3),
(3, 1), (3, 2),
(4, 1)
2.
b. يطبع كل تنفيذ كامل للحلقة الداخلية ثلاث علامات "*"، وتنفذ الحلقة الخارجية مرتين.
3.
b. يحتوي كل سطر i من الإخراج (i = 1 , 2 , 3 , و 4 ) على قيم 1 حتى 4 بمقدار i مرة.
وبالتالي، تنفذ الحلقة الخارجية بينما i <= 4، وتتكرر الحلقة الداخلية على j بينما تكون قيمة j أقل من أو تساوي 4 .
4.
a. نطاق تنفيذ الحلقة الخارجية هو 0 , 1 , و 2 ؛ وبالتالي، تنفذ الحلقة الخارجية ثلاث مرات.
5.
b. يتم تقييم الحلقة الداخلية أربع مرات (j = 0, 1 , 2 , و 3 ) لكل قيمة i تحددها الحلقة الخارجية. في المثال المعطى i = 0, 1 , و 2 ؛ وبالتالي، فإن العدد الإجمالي لمرات تنفيذ الحلقة الداخلية هو 3 * 4 = 12.
6.
c. يعرض الإخراج المطبوع ثلاثة صفوف، حيث يعرض كل صف i قيم i * في النطاق من 0 إلى 3 . وبالتالي، يجب أن تتكرر الشِفرة على معرف الصف في الحلقة الخارجية، وفي كل صف، تتكرر على معرف العناصر في النطاق من 0 إلى 3 .

5.4 الإيقاف والمتابعة

1.
c. تطبع الشِفرة جميع الأحرف قبل أول ظهور لحرف مسافة في أسطر منفصلة. وبالتالي، فإن الإخراج هو:
H
e
l
l
o
2.
b. بمجرد تنفيذ تعليمة print ، تتسبب تعليمة break في إنهاء الحلقة. أيضًا، بالنسبة لـ i = 15، يتم استيفاء الشرط (i%3 == 0 and i%5 == 0)، وبالتالي سيتم تنفيذ تعليمة print مرة واحدة بالضبط.
3.
b. تجد الحلقة الأعداد الخمسة الأولى التي تقبل القسمة على 2 أو 3 . هذه الأعداد هي 2 , 3 , 4 , 6 , و 8 ، وبالتالي فإن 8 هي القيمة النهائية لـ i.
4.
b. تنفذ تعليمة print للأعداد ضمن النطاق من 0 إلى 10 (شاملة) التي تقبل القسمة على 3. الإخراج المطبوع هو:
9
6
3
0
5.
b. تتحقق الحلقة مما إذا كان الحرف الذي يتم تقييمه هو حرف مسافة أم لا. إذا كان كذلك، فسيتم تخطي ما تبقى من الحلقة ولن يتم طباعة حرف المسافة.

5.5 جملة else المرافقة للحلقة

1.
b. يتم تهيئة المُتغيِّر i إلى 16 ، وتنفذ حلقة التكرار الشرطي مع i = 16, 8 , 4 , و 2 . في كل تكرار للحلقة، تزداد قيمة المُتغيِّر exp بمقدار 1. وبالتالي، في نهاية الحلقة، exp = 4. بما أن الحلقة تنتهي دون انقطاع، يتم تنفيذ تعليمة else بعد الحلقة وتطبع 16 is 2 to the 4.
2.
a. القيمة الأولية لـ i هي 7 . وبالتالي، في التكرار الأول للحلقة، تنفذ تعليمة else داخل الحلقة، وتتسبب تعليمة break في إنهاء الحلقة. بما أن تنفيذ الحلقة قد انقطع، فلن يتم تنفيذ else بعد الحلقة ولن يكون هناك أي إخراج.
3.
b. تتكرر الحلقة على جميع قيم الأعداد الصحيحة في القائمة. إذا كانت القيمة أقل من 5 ، فسيتم طباعة القيمة، وإذا كانت القيمة أكبر من 5 ، تطبع الشِفرة "Not all numbers are less than 5." وينتهي تنفيذ الشِفرة.