Mock exams
Examens blancs
اختبارات تجريبية

Loops (for / while) exam

Examen des boucles (for / while)

اختبار الحلقات (for / while)

Three guided scenarios that progress from a counted for loop, through a while loop with sentinel, to a digit-sum problem combining a loop with arithmetic - read the statement, trace the loop, complete the flowchart, then finish the matching C++ code.

Trois scénarios guidés qui progressent d'une boucle for comptée, à une boucle while avec sentinelle, jusqu'à un problème de somme des chiffres combinant boucle et arithmétique - lisez l'énoncé, tracez la boucle, complétez l'organigramme, puis terminez le code C++ correspondant.

ثلاثة سيناريوهات موجهة تتدرج من حلقة for معدودة، إلى حلقة while مع حارس، إلى مسألة جمع الأرقام التي تجمع بين الحلقة والحساب - اقرأ نص المسألة، وتتبّع الحلقة، وأكمل المخطط الانسيابي، ثم أتمم كود C++ المطابق.

How this exam works

Comment fonctionne cet examen

كيف يعمل هذا الاختبار

  • Finish one scenario, then submit it to see the review and unlock the next tier.Terminez un scénario, puis soumettez-le pour voir le corrigé et débloquer le niveau suivant.أكمل سيناريو واحداً، ثم أرسله لرؤية المراجعة وفتح المستوى التالي.
  • Harmless spacing is ignored in structured fields, but exact-output prompts still require the exact visible output.Les espaces sans importance sont ignorés dans les champs structurés, mais les questions de sortie exacte demandent toujours la sortie visible exacte.يتم تجاهل المسافات غير المهمة في الحقول المنظمة، لكن أسئلة المخرجات الدقيقة ما زالت تتطلب المخرجات الظاهرة نفسها تماماً.
  • Your drafts and submitted scores are saved on this device.Vos brouillons et scores soumis sont enregistrés sur cet appareil.يتم حفظ مسوداتك ودرجاتك المرسلة على هذا الجهاز.
Scenario 1 / 3Scénario 1 / 3سيناريو ⁦1 / 3⁩ Tier 1Niveau 1المستوى ⁦1⁩

Tier 1: countdown

Niveau 1 : compte à rebours

المستوى 1: العد التنازلي

Read an integer n. Print the numbers from n down to 1, each on its own line, using a for loop. Example: if n = 3, the output is 3, 2, 1 on separate lines.

This is the most guided scenario. The loop has a single counter, a clear stopping condition, and no conditions inside the body.

Lisez un entier n. Affichez les nombres de n jusqu’à 1, chacun sur sa propre ligne, en utilisant une boucle for. Exemple : si n = 3, la sortie est 3, 2, 1 sur des lignes séparées.

C’est le scénario le plus guidé. La boucle a un seul compteur, une condition d’arrêt claire, et aucune condition à l’intérieur du corps.

اقرأ عدداً صحيحاً n. اطبع الأعداد من n حتى 1، كل على سطر منفصل، باستخدام حلقة for. مثال: إذا كان n = 3، فالمخرجات هي 3 ثم 2 ثم 1 على أسطر منفصلة.

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

Map the loop to IPO

Transformez la boucle en IPO

حوّل الحلقة إلى IPO

Type only the variable name, loop description, and printed variable from the intended solution.
Tapez seulement le nom de variable, la description de boucle et la variable affichée de la solution attendue.
اكتب فقط اسم المتغير ووصف الحلقة والمتغير المطبوع من الحل المقصود.

Complete the countdown flowchart

Complétez l'organigramme du compte à rebours

أكمل مخطط العد التنازلي

Fill each blank with the exact label. Do not add cin, cout, or semicolons.
Remplissez chaque blanc avec l'étiquette exacte. N'ajoutez ni cin, ni cout, ni point-virgule.
املأ كل فراغ بالتسمية الدقيقة. لا تضف cin ولا cout ولا فاصلة منقوطة.
YesNoStartInput: ni = n[A]Output: i[B]End
OuiNonDebutEntrée : ni = n[A]Sortie : i[B]Fin
نعملاابدأإدخال: ni = n[A]إخراج: i[B]نهاية

Build the matching code

Construisez le code correspondant

ابنِ الكود المطابق

Fill each blank with the exact expression.
Remplissez chaque blanc avec l'expression exacte.
املأ كل فراغ بالتعبير الدقيق.
1 int n;
2 cin >> n;
3 for (int i = ; i >= ; ) {
4 cout << i << endl;
5 }

Type the exact output

Tapez la sortie exacte

اكتب المخرجات الدقيقة

Write only the exact values printed on screen, separated by spaces.
Écrivez seulement les valeurs exactes affichées à l'écran, séparées par des espaces.
اكتب فقط القيم الدقيقة المطبوعة على الشاشة، مفصولة بمسافات.
1int n = 3;
2for (int i = n; i >= 1; i--) {
3 cout << i << endl;
4}
Scenario 2 / 3Scénario 2 / 3سيناريو ⁦2 / 3⁩ Tier 2Niveau 2المستوى ⁦2⁩

Tier 2: sentinel sum

Niveau 2 : somme sentinelle

المستوى 2: مجموع الحارس

Read positive integers one by one until the user enters 0. Print the sum of all the positive numbers entered. Example: input 3 5 0 -> output 8.

This scenario introduces a while loop with a sentinel value. The loop keeps reading and accumulating until the stopping signal.

Lisez des entiers positifs un par un jusqu’à ce que l’utilisateur entre 0. Affichez la somme de tous les nombres positifs entrés. Exemple : entrée 3 5 0 -> sortie 8.

Ce scénario introduit une boucle while avec une valeur sentinelle. La boucle continue à lire et à accumuler jusqu’au signal d’arrêt.

اقرأ أعداداً صحيحة موجبة واحداً تلو الآخر حتى يدخل المستخدم 0. اطبع مجموع كل الأعداد الموجبة التي أُدخلت. مثال: الإدخال 3 5 0 ← المخرجة 8.

يُقدّم هذا السيناريو حلقة while مع قيمة حارس. تستمر الحلقة بالقراءة والجمع حتى تصل إلى إشارة التوقف.

Map the sentinel loop to IPO

Transformez la boucle sentinelle en IPO

حوّل حلقة الحارس إلى IPO

Use the exact variable name, loop condition, and accumulation expression from the intended solution.
Utilisez le nom de variable, la condition de boucle et l'expression d'accumulation exactes de la solution attendue.
استخدم اسم المتغير الدقيق وشرط الحلقة وتعبير الجمع الدقيق من الحل المقصود.

Complete the sentinel loop flowchart

Complétez l'organigramme de la boucle sentinelle

أكمل مخطط حلقة الحارس

Fill the blanks with the exact labels. The loop body adds n to sum then reads the next n.
Remplissez les blancs avec les étiquettes exactes. Le corps de la boucle ajoute n à sum puis lit le n suivant.
املأ الفراغات بالتسميات الدقيقة. يضيف جسم الحلقة n إلى sum ثم يقرأ n التالي.
YesNoStart[A]Input: n[B][C]Input: nOutput: sumEnd
OuiNonDebut[A]Entrée : n[B][C]Entrée : nSortie : sumFin
نعملاابدأ[A]إدخال: n[B][C]إدخال: nإخراج: sumنهاية

Trace the sum through each iteration

Tracez la somme à chaque itération

تتبّع المجموع في كل دورة

1int n;
2int sum = 0;
3cin >> n;
4while (n != 0) {
5 sum = sum + n;
6 cin >> n;
7}
8cout << sum;
nnn n != 0 ?n != 0 ?n != 0 ? sumsumsum
3 true
5 true
0 false

Build the matching code

Construisez le code correspondant

ابنِ الكود المطابق

Fill each blank with the exact variable name, condition, or expression.
Remplissez chaque blanc avec le nom de variable, la condition ou l'expression exacte.
املأ كل فراغ باسم المتغير أو الشرط أو التعبير الدقيق.
1 int n;
2 int = 0;
3 cin >> n;
4 while () {
5 = + n;
6 cin >> n;
7 }
8 cout << ;

Type the exact output

Tapez la sortie exacte

اكتب المخرجات الدقيقة

Write only the exact value printed on screen.
Écrivez seulement la valeur exacte affichée à l'écran.
اكتب فقط القيمة الدقيقة المطبوعة على الشاشة.
1int n;
2int sum = 0;
3cin >> n;
4while (n != 0) {
5 sum = sum + n;
6 cin >> n;
7}
8cout << sum;
Scenario 3 / 3Scénario 3 / 3سيناريو ⁦3 / 3⁩ Tier 3Niveau 3المستوى ⁦3⁩

Tier 3: digit sum

Niveau 3 : somme des chiffres

المستوى 3: مجموع الأرقام

Read a positive integer n. Print the sum of its digits. Example: if n = 123, the output is 6 (because 1 + 2 + 3 = 6).

This is the least scaffolded scenario. The loop uses n % 10 to extract the last digit and n = n / 10 to remove it, repeating until n becomes 0.

Lisez un entier positif n. Affichez la somme de ses chiffres. Exemple : si n = 123, la sortie est 6 (car 1 + 2 + 3 = 6).

C’est le scénario le moins guidé. La boucle utilise n % 10 pour extraire le dernier chiffre et n = n / 10 pour le supprimer, en répétant jusqu’à ce que n devienne 0.

اقرأ عدداً صحيحاً موجباً n. اطبع مجموع أرقامه. مثال: إذا كان n = 123، فالمخرجة 6 (لأن 1 + 2 + 3 = 6).

هذا هو السيناريو الأقل توجيهاً. تستخدم الحلقة n % 10 لاستخراج الرقم الأخير وn = n / 10 لإزالته، وتتكرر حتى يصبح n مساوياً لـ0.

Map the digit extraction loop to IPO

Transformez la boucle d'extraction de chiffres en IPO

حوّل حلقة استخراج الأرقام إلى IPO

Use the exact variable name, process description, and output variable from the intended solution.
Utilisez le nom de variable, la description de processus et la variable de sortie exacts de la solution attendue.
استخدم اسم المتغير الدقيق ووصف العملية والمتغير المخرج الدقيق من الحل المقصود.

Complete the digit-sum flowchart

Complétez l'organigramme de la somme des chiffres

أكمل مخطط مجموع الأرقام

Fill the blanks with the exact labels. The loop extracts a digit, adds it, then removes the digit before looping back.
Remplissez les blancs avec les étiquettes exactes. La boucle extrait un chiffre, l'ajoute, puis le supprime avant de revenir.
املأ الفراغات بالتسميات الدقيقة. تستخرج الحلقة رقماً وتضيفه ثم تزيله قبل أن تعود.
YesNoStartInput: n[A][B]digit = n % 10digitSum = digitSum +digit[C]Output: digitSumEnd
OuiNonDebutEntrée : n[A][B]digit = n % 10digitSum = digitSum +digit[C]Sortie : digitSumFin
نعملاابدأإدخال: n[A][B]digit = n % 10digitSum = digitSum +digit[C]إخراج: digitSumنهاية

Trace the digit extraction through each iteration

Tracez l'extraction de chiffres à chaque itération

تتبّع استخراج الأرقام في كل دورة

1int n;
2cin >> n;
3int digitSum = 0;
4while (n > 0) {
5 int digit = n % 10;
6 digitSum = digitSum + digit;
7 n = n / 10;
8}
9cout << digitSum;
nnn n > 0 ?n > 0 ?n > 0 ? digitdigitdigit digitSumdigitSumdigitSum
123 true
12 true
1 true
0 false

Fill the digit-sum code

Complétez le code de somme des chiffres

أكمل كود مجموع الأرقام

Fill each blank with the exact condition, expression, or variable name.
Remplissez chaque blanc avec la condition, l'expression ou le nom de variable exact.
املأ كل فراغ بالشرط أو التعبير أو اسم المتغير الدقيق.
1 int n;
2 cin >> n;
3 int = 0;
4 while () {
5 int digit = ;
6 = + digit;
7 n = ;
8 }
9 cout << digitSum;

Type the exact output

Tapez la sortie exacte

اكتب المخرجات الدقيقة

Write only the exact value printed on screen.
Écrivez seulement la valeur exacte affichée à l'écran.
اكتب فقط القيمة الدقيقة المطبوعة على الشاشة.
1int n = 123;
2int digitSum = 0;
3while (n > 0) {
4 int digit = n % 10;
5 digitSum = digitSum + digit;
6 n = n / 10;
7}
8cout << digitSum;