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++ المطابق.
0 / 0
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.يتم حفظ مسوداتك ودرجاتك المرسلة على هذا الجهاز.
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.
اكتب فقط اسم المتغير ووصف الحلقة والمتغير المطبوع من الحل المقصود.
Review
Corrigé
مراجعة
A countdown loop reads one number, then counts from it down to 1 while printing each value.
Une boucle de compte à rebours lit un nombre, puis compte de celui-ci jusqu'à 1 en affichant chaque valeur.
تقرأ حلقة العد التنازلي عدداً واحداً، ثم تعدّ منه حتى 1 وتطبع كل قيمة.
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 ولا فاصلة منقوطة.
Review
Corrigé
مراجعة
The loop starts i at n, checks i >= 1, prints i, then decrements i and goes back to the check.
La boucle démarre i à n, vérifie i >= 1, affiche i, puis décrémente i et revient à la vérification.
تبدأ الحلقة i من n، وتفحص i >= 1، وتطبع i، ثم تنقص i وتعود إلى الفحص.
Build the matching code
Construisez le code correspondant
ابنِ الكود المطابق
Fill each blank with the exact expression.
Remplissez chaque blanc avec l'expression exacte.
املأ كل فراغ بالتعبير الدقيق.
1int n;
2cin >> n;
3for (int i = ; i >= ; ) {
4 cout << i << endl;
5}
Review
Corrigé
مراجعة
The for loop starts i at n, checks i >= 1, and decrements i each pass. The body just prints i.
La boucle for démarre i à n, vérifie i >= 1, et décrémente i à chaque passage. Le corps se contente d'afficher i.
تبدأ حلقة for المتغير i من n، وتفحص i >= 1، وتنقص i في كل دورة. جسم الحلقة يطبع i فقط.
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--) {
3cout<< i <<endl;
4}
Review
Corrigé
مراجعة
The loop starts at i = 3 and counts down: 3, 2, 1. Each value is printed on its own line.
La boucle commence à i = 3 et compte à rebours : 3, 2, 1. Chaque valeur est affichée sur sa propre ligne.
تبدأ الحلقة من i = 3 وتعدّ تنازلياً: 3 ثم 2 ثم 1. تُطبع كل قيمة على سطر منفصل.
Scenario scoreScore du scénarioدرجة السيناريو0 / 0
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.
استخدم اسم المتغير الدقيق وشرط الحلقة وتعبير الجمع الدقيق من الحل المقصود.
Review
Corrigé
مراجعة
A sentinel loop reads n repeatedly and adds it to sum until n becomes 0.
Une boucle sentinelle lit n à plusieurs reprises et l'ajoute à sum jusqu'à ce que n devienne 0.
تقرأ حلقة الحارس المتغير n مراراً وتضيفه إلى sum حتى يصبح n مساوياً لـ0.
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 التالي.
Review
Corrigé
مراجعة
The loop initializes sum to 0, reads n, then checks n != 0. Inside the loop it accumulates and reads again. When the sentinel 0 arrives, it exits and prints sum.
La boucle initialise sum à 0, lit n, puis vérifie n != 0. À l'intérieur, elle accumule et lit à nouveau. Quand la sentinelle 0 arrive, elle sort et affiche sum.
تبدأ الحلقة بتهيئة sum إلى 0، ثم تقرأ n، ثم تفحص n != 0. داخل الحلقة تجمع وتقرأ مرة أخرى. عندما يصل الحارس 0، تخرج وتطبع 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;
6cin>> n;
7}
8cout<< sum;
nnn
n != 0 ?n != 0 ?n != 0 ?
sumsumsum
3
true
5
true
0
false
Review
Corrigé
مراجعة
Start with sum = 0. Add 3 to get 3, add 5 to get 8. When n is 0, the loop ends and 8 is printed.
On part de sum = 0. On ajoute 3 pour obtenir 3, puis 5 pour obtenir 8. Quand n vaut 0, la boucle se termine et 8 est affiché.
نبدأ من sum = 0. نضيف 3 فتصبح 3، ثم نضيف 5 فتصبح 8. عندما يكون n مساوياً لـ0، تنتهي الحلقة ويُطبع 8.
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.
املأ كل فراغ باسم المتغير أو الشرط أو التعبير الدقيق.
1int n;
2int = 0;
3cin >> n;
4while () {
5 = + n;
6 cin >> n;
7}
8cout << ;
Review
Corrigé
مراجعة
The code initializes sum to 0, reads the first n, then loops while n != 0. Inside the loop it adds n to sum and reads the next n.
Le code initialise sum à 0, lit le premier n, puis boucle tant que n != 0. Dans la boucle, il ajoute n à sum et lit le n suivant.
يبدأ الكود بتهيئة sum إلى 0، ويقرأ أول n، ثم يكرر الحلقة طالما n != 0. داخل الحلقة يضيف n إلى sum ويقرأ n التالي.
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;
6cin>> n;
7}
8cout<< sum;
Review
Corrigé
مراجعة
The loop adds 3 then 5 to sum. When the sentinel 0 arrives, sum is 8 and that is printed.
La boucle ajoute 3 puis 5 à sum. Quand la sentinelle 0 arrive, sum vaut 8 et c'est ce qui est affiché.
تضيف الحلقة 3 ثم 5 إلى sum. عندما يصل الحارس 0، يكون sum مساوياً لـ8 وهذا ما يُطبع.
Scenario scoreScore du scénarioدرجة السيناريو0 / 0
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.
استخدم اسم المتغير الدقيق ووصف العملية والمتغير المخرج الدقيق من الحل المقصود.
Review
Corrigé
مراجعة
A digit-sum loop reads one number, extracts each digit with n % 10, adds it, then removes the digit with n = n / 10.
Une boucle de somme des chiffres lit un nombre, extrait chaque chiffre avec n % 10, l'ajoute, puis supprime le chiffre avec n = n / 10.
تقرأ حلقة جمع الأرقام عدداً واحداً، وتستخرج كل رقم بـn % 10، وتضيفه، ثم تزيل الرقم بـn = n / 10.
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.
املأ الفراغات بالتسميات الدقيقة. تستخرج الحلقة رقماً وتضيفه ثم تزيله قبل أن تعود.
Review
Corrigé
مراجعة
Initialize digitSum = 0, then loop while n > 0: extract the last digit with n % 10, add it to digitSum, and remove it with n = n / 10.
Initialisez digitSum = 0, puis bouclez tant que n > 0 : extrayez le dernier chiffre avec n % 10, ajoutez-le à digitSum, et supprimez-le avec n = n / 10.
هيّئ digitSum = 0، ثم كرر الحلقة طالما n > 0: استخرج الرقم الأخير بـn % 10، أضفه إلى digitSum، وأزله بـn = n / 10.
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) {
5int 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
Review
Corrigé
مراجعة
Start with digitSum = 0. 123 % 10 = 3, so digit = 3, digitSum = 3, n = 12. Then 12 % 10 = 2, digitSum = 5, n = 1. Then 1 % 10 = 1, digitSum = 6, n = 0. Loop ends, print 6.
On part de digitSum = 0. 123 % 10 = 3, donc digit = 3, digitSum = 3, n = 12. Puis 12 % 10 = 2, digitSum = 5, n = 1. Puis 1 % 10 = 1, digitSum = 6, n = 0. La boucle se termine, afficher 6.