By the end of this section, you should be able to predict exact cout output, separate literal text from evaluated values, follow prompt/input/output order with cin, and translate simple straight-line I/O between code and flowcharts.
À la fin de cette section, vous devriez pouvoir prédire exactement la sortie de cout, distinguer le texte littéral des valeurs évaluées, suivre l'ordre invite/entrée/sortie avec cin, et traduire une E/S linéaire simple entre code et organigramme.
بنهاية هذا القسم، يجب أن تكون قادراً على توقّع مخرجات cout بدقة، والتمييز بين النص الحرفي والقيم المحسوبة، وتتبع ترتيب رسالة الطلب ثم الإدخال ثم الإخراج مع cin، وتحويل تسلسل إدخال/إخراج بسيط بين الكود والمخطط الانسيابي.
0 / 0
Topics
Sujets
المواضيع
cin / cout mastery
Maîtrise de cin / cout
إتقان cin و cout
By the end of this section, you should be able to predict exact cout output, separate literal text from evaluated values, follow prompt/input/output order with cin, and translate simple straight-line I/O between code and flowcharts.
À la fin de cette section, vous devriez pouvoir prédire exactement la sortie de cout, distinguer le texte littéral des valeurs évaluées, suivre l'ordre invite/entrée/sortie avec cin, et traduire une E/S linéaire simple entre code et organigramme.
بنهاية هذا القسم، يجب أن تكون قادراً على توقّع مخرجات cout بدقة، والتمييز بين النص الحرفي والقيم المحسوبة، وتتبع ترتيب رسالة الطلب ثم الإدخال ثم الإخراج مع cin، وتحويل تسلسل إدخال/إخراج بسيط بين الكود والمخطط الانسيابي.
Section 3 works best when you read input and output as a conversation between the program and the user. Instead of guessing from the whole page, match each line to one job in the conversation.
Part of the conversation
What it means
cout
Something reaches the screen now.
cin
The next typed value goes into a variable.
prompt text such as "Enter age:"
The program is asking the user for input.
typed input
It is stored silently unless another cout line prints it later.
Work through the code in order. A prompt usually appears first, then input is read, then some later cout line may display part of the result. If you skip the order, you will often mix up what the user typed with what the program actually printed.
La section 3 devient plus claire si vous lisez l’entrée et la sortie comme une conversation entre le programme et l’utilisateur. Au lieu de deviner à partir de tout le code, associez chaque ligne à un rôle précis dans cette conversation.
Élément de la conversation
Ce qu’il signifie
cout
Quelque chose apparaît maintenant à l’écran.
cin
La prochaine valeur tapée va dans une variable.
un texte d’invite comme "Enter age:"
Le programme demande une information à l’utilisateur.
une valeur saisie
Elle est stockée silencieusement tant qu’une autre ligne cout ne l’affiche pas.
Lisez le code dans l’ordre. Une invite apparaît souvent d’abord, puis l’entrée est lue, puis une autre ligne cout peut afficher une partie du résultat. Si vous sautez l’ordre, vous risquez de confondre ce que l’utilisateur a tapé avec ce que le programme a réellement affiché.
يصبح هذا القسم أوضح عندما تقرأ الإدخال والإخراج على أنهما حوار بين البرنامج والمستخدم. وبدلاً من التخمين من شكل الكود كله، اربط كل سطر بوظيفته داخل هذا الحوار.
جزء من الحوار
ماذا يعني
cout
هناك شيء سيظهر على الشاشة الآن.
cin
القيمة التالية التي يكتبها المستخدم ستدخل إلى متغير.
نص طلب مثل "Enter age:"
البرنامج يطلب معلومة من المستخدم.
القيمة التي يكتبها المستخدم
تُخزَّن بصمت ما لم يطبعها سطر cout آخر لاحقاً.
اقرأ الكود بالترتيب. غالباً ما تظهر رسالة طلب أولاً، ثم تُقرأ القيم من المستخدم، ثم يأتي سطر cout لاحق ليعرض جزءاً من النتيجة. إذا تجاهلت هذا الترتيب فستخلط بسهولة بين ما كتبه المستخدم وبين ما طبعه البرنامج فعلاً.
Memory rule: prompt -> input -> later output.
Règle à retenir : invite -> entrée -> sortie ensuite.
قاعدة سريعة للحفظ: رسالة طلب، ثم إدخال، ثم مخرجات لاحقاً.
What you will practice
Ce que vous allez pratiquer
ما ستتمرّن عليه
Predict the exact text that a cout line sends to the screen.Prédire le texte exact qu'une ligne cout envoie à l'écran.توقّع النص الدقيق الذي يرسله سطر cout إلى الشاشة.
Read cin lines in order and know which variable receives each typed value.Lire les lignes cin dans l'ordre et savoir quelle variable reçoit chaque valeur saisie.قراءة أسطر cin بالترتيب ومعرفة أي متغير يستقبل كل قيمة يكتبها المستخدم.
Recognize the same straight-line I/O sequence in both code and a flowchart.Reconnaître la même séquence d'E/S linéaire en code et dans un organigramme.التعرّف على تسلسل الإدخال/الإخراج الخطي نفسه في الكود وفي المخطط الانسيابي.
Keep in mind
À garder en tête
تذكّر
The screen shows only what cout prints. Typed input is stored by cin; it is not echoed unless your code prints it later.L'écran n'affiche que ce que cout imprime. L'entrée saisie est stockée par cin ; elle n'est pas réaffichée sauf si votre code l'imprime ensuite.الشاشة تعرض فقط ما تطبعه cout. أما القيم التي يكتبها المستخدم فتخزنها cin، ولا تظهر تلقائياً إلا إذا طبعها سطر cout لاحقاً.
When a task asks for exact output, spaces, letter case, \n, and quotes matter if the prompt says so.Quand une tâche demande une sortie exacte, les espaces, la casse, \n et les guillemets comptent si l'énoncé le précise.عندما يطلب التمرين مخرجات دقيقة، تصبح المسافات وحالة الأحرف و\n وعلامات الاقتباس مهمة إذا اشترط ذلك السؤال صراحة.
Code and code-like answers stay left-to-right even when the interface is Arabic.Le code et les réponses de type code restent de gauche à droite même quand l'interface est en arabe.يبقى الكود والإجابات الشبيهة بالكود من اليسار إلى اليمين حتى عندما تكون الواجهة بالعربية.
ConceptConceptمفهومL1
Using cout: literals, values, and spacing
Utiliser cout : texte littéral, valeurs et espaces
استخدام cout: النص الحرفي والقيم والمسافات
cout sends pieces of output to the screen from left to right. A string literal such as "Age: " is printed exactly as written. A variable such as age contributes its current value. An expression such as 2 + 3 is evaluated first, then its result is printed.
Piece inside a cout line
What it contributes
"Age: "
literal text exactly as written
age
the current stored value
2 + 3
the result after the expression is evaluated
Operator
Visual meaning
<< with cout
Send data toward the screen.
>> with cin
Read data from input into a variable.
cout does not add spaces for you. If you want a space, it must already be inside a string literal such as " " or " years". This is why beginner output mistakes often come from missing or extra spaces, not from the arithmetic itself.
cout envoie des morceaux de sortie vers l’écran de gauche à droite. Un littéral de chaîne comme "Age: " s’affiche exactement tel qu’il est écrit. Une variable comme age apporte sa valeur actuelle. Une expression comme 2 + 3 est d’abord évaluée, puis son résultat est affiché.
Élément dans une ligne cout
Ce qu’il apporte
"Age: "
le texte littéral exactement tel qu’il est écrit
age
la valeur actuellement stockée
2 + 3
le résultat une fois l’expression évaluée
Opérateur
Sens visuel
<< avec cout
Envoie des données vers l’écran.
>> avec cin
Lit des données d’entrée dans une variable.
cout n’ajoute pas d’espaces à votre place. Si vous voulez un espace, il doit déjà se trouver dans un littéral de chaîne comme " " ou " years". C’est pour cela que beaucoup d’erreurs de débutant viennent d’un espace oublié ou ajouté en trop, et non du calcul lui-même.
ترسل cout أجزاء المخرجات إلى الشاشة من اليسار إلى اليمين. فالسلسلة النصية مثل "Age: " تُطبع كما كُتبت تماماً. أما المتغير مثل age فيضيف قيمته الحالية. وأما التعبير مثل 2 + 3 فيُحسب أولاً ثم تُطبع نتيجته.
الجزء داخل سطر cout
ماذا يضيف
"Age: "
النص الحرفي كما كُتب تماماً
age
القيمة المخزنة حالياً
2 + 3
النتيجة بعد حساب التعبير
العامل
معناه البصري
<< مع cout
يرسل البيانات نحو الشاشة.
>> مع cin
يقرأ البيانات من الإدخال إلى متغير.
لا تضيف cout المسافات من تلقاء نفسها. فإذا أردت مسافة، فيجب أن تكون موجودة أصلاً داخل سلسلة نصية مثل " " أو " years". ولهذا تأتي كثير من أخطاء المبتدئين من مسافة ناقصة أو زائدة، لا من العملية الحسابية نفسها.
Quick rule: quoted text prints literally; unquoted parts are evaluated first. cout never adds spaces unless you put them inside a string.
Règle rapide : le texte entre guillemets s’affiche tel quel ; ce qui n’est pas entre guillemets est évalué d’abord. cout n’ajoute jamais d’espaces sans un littéral qui les contient.
قاعدة سريعة: النص بين علامتي اقتباس يُطبع حرفياً، أما ما لا يكون بين علامتي اقتباس فيُحسب أولاً. لا تضيف cout مسافات إلا إذا وضعتها داخل سلسلة نصية.
1int age = 14;
2cout<<"Age: "<< age <<" years";
3cout<<"2 + 3 = "<<2 + 3;
Worked exampleExemple guidéمثال محلولL1
Worked example: read one cout line left to right
Exemple guidé : lire une ligne cout de gauche à droite
مثال محلول: اقرأ سطر cout من اليسار إلى اليمين
Read the line cout << "Score = " << score << "/10"; in order.
The first chunk is the literal text "Score = ", so the screen begins with Score = .
The second chunk is the variable score. In this example, score stores 9, so the next visible part is 9.
The last chunk is the literal text "/10", so the line finishes as Score = 9/10.
The key habit is to combine the pieces one by one. Do not guess from the final shape alone. Ask what each chunk contributes, then join them in the same order.
Lisez la ligne cout << "Score = " << score << "/10"; dans l’ordre.
Le premier morceau est le texte littéral "Score = ", donc l’écran commence par Score = .
Le deuxième morceau est la variable score. Dans cet exemple, score contient 9, donc la partie visible suivante est 9.
Le dernier morceau est le texte littéral "/10", donc la ligne se termine en Score = 9/10.
L’habitude essentielle consiste à assembler les morceaux un par un. Ne devinez pas seulement à partir de la forme finale. Demandez-vous ce que chaque morceau apporte, puis réunissez-les dans le même ordre.
الجزء الأول هو النص الحرفي "Score = "، لذلك تبدأ الشاشة بـ Score = .
الجزء الثاني هو المتغير score. وفي هذا المثال تحمل score القيمة 9، لذلك يكون الجزء الظاهر التالي هو 9.
الجزء الأخير هو النص الحرفي "/10"، فيكتمل السطر على الصورة Score = 9/10.
العادة المهمة هنا هي جمع الأجزاء واحداً بعد الآخر. لا تخمّن من الشكل النهائي فقط. بل اسأل نفسك ماذا يضيف كل جزء، ثم اجمعها بالترتيب نفسه.
Expected screen line: Score = 9/10
Takeaway: treat each << chunk as one step in the visible output. Concatenate them in left-to-right order without adding extra spaces.
Ligne affichée attendue : Score = 9/10
À retenir : traitez chaque morceau après << comme une étape de la sortie visible. Assemblez-les de gauche à droite sans ajouter d’espaces en plus.
السطر الظاهر المتوقع: Score = 9/10
الخلاصة: اعتبر كل جزء بعد << خطوة واحدة في المخرجات المرئية، ثم اربطها من اليسار إلى اليمين دون إضافة مسافات زائدة.
1int score = 9;
2cout<<"Score = "<< score <<"/10";
PracticePratiqueتمرينL1
These questions stay strict on purpose. Focus on the exact visible output, the direction of the stream operator, and the difference between a real newline on the screen and the text notation \n used in an answer box.
Ces questions sont volontairement strictes. Concentrez-vous sur la sortie visible exacte, le sens de l’opérateur de flux, et la différence entre un vrai saut de ligne à l’écran et la notation textuelle \n dans une zone de réponse.
هذه الأسئلة متشددة عمداً. ركّز على المخرجات المرئية الدقيقة، وعلى اتجاه عامل المجرى، وعلى الفرق بين سطر جديد حقيقي على الشاشة وبين الترميز النصي \n داخل خانة الإجابة.
4 exercises below
4 exercices ci-dessous
4 تمارين أدناه
Practice 1 / 4Pratique 1 / 4تمرين 1 / 4L1
Type the exact output.
Tapez la sortie exacte.
اكتب المخرجات الدقيقة.
1int age = 14;
2cout<<"Age: "<< age <<" years";
Read the line in three pieces: first string, variable value, last string.
Lisez la ligne en trois parties : première chaîne, valeur de la variable, dernière chaîne.
اقرأ السطر على ثلاث قطع: السلسلة الأولى، ثم قيمة المتغير، ثم السلسلة الأخيرة.
The answer is screen output, not C++ syntax.
La réponse attendue est la sortie affichée, pas la syntaxe C++.
المطلوب هو المخرجات الظاهرة على الشاشة، وليس صيغة C++.
Solution
Solution
الحل
The exact output is Age: 14 years. The first string provides Age: , then age contributes 14, then the last string contributes years.
La sortie exacte est Age: 14 years. La première chaîne fournit Age: , puis age apporte 14, puis la dernière chaîne ajoute years.
المخرجات الدقيقة هي Age: 14 years. السلسلة الأولى تعطي Age: ، ثم يضيف age القيمة 14، ثم تضيف السلسلة الأخيرة years.
Common mistakeErreur fréquenteخطأ شائع: Do not drop the space before years. cout does not invent spaces for you; the space is already inside the final string literal.Ne supprimez pas l'espace avant years. cout n'ajoute pas d'espaces tout seul ; cet espace se trouve déjà dans le dernier littéral de chaîne.لا تحذف المسافة قبل years. تعليمة cout لا تضيف المسافات من تلقاء نفسها؛ هذه المسافة موجودة أصلاً داخل السلسلة النصية الأخيرة.
Practice 2 / 4Pratique 2 / 4تمرين 2 / 4L1
Literal text vs expression: what is the exact output?
Texte littéral vs expression : quelle est la sortie exacte ?
نص حرفي أم تعبير: ما المخرجات الدقيقة؟
1cout<<"2 + 3 = "<<2 + 3;
Only the part inside double quotes is guaranteed to stay unchanged.
Seule la partie entre guillemets doubles reste forcément inchangée.
الجزء الموجود بين علامتي الاقتباس المزدوجتين فقط يبقى كما هو دون حساب.
The second part is a math expression, not a string literal.
La seconde partie est une expression mathématique, pas un littéral de chaîne.
الجزء الثاني تعبير رياضي، وليس سلسلة نصية.
Solution
Solution
الحل
The string literal prints 2 + 3 = exactly, then the expression 2 + 3 is evaluated and prints 5.
Le littéral de chaîne affiche exactement 2 + 3 = , puis l'expression 2 + 3 est évaluée et affiche 5.
السلسلة النصية تطبع 2 + 3 = كما هي تماماً، ثم يُحسب التعبير 2 + 3 وتُطبع النتيجة 5.
Common mistakeErreur fréquenteخطأ شائع: If you write 2 + 3 = 2 + 3, you treated the second part like text. Without quotes, C++ computes it first.Si vous écrivez 2 + 3 = 2 + 3, vous avez traité la seconde partie comme du texte. Sans guillemets, le C++ la calcule d'abord.إذا كتبت 2 + 3 = 2 + 3 فأنت عاملت الجزء الثاني على أنه نص. من دون اقتباس، يحسبه C++ أولاً.
Practice 3 / 4Pratique 3 / 4تمرين 3 / 4L1
Fill the blank with the exact operator.
Remplissez le blanc avec l'opérateur exact.
املأ الفراغ بالعامل الدقيق.
1cout "Ready";
This line sends text toward the screen.
Cette ligne envoie du texte vers l'écran.
هذا السطر يرسل نصاً نحو الشاشة.
The arrows point left when data goes into cout.
Les flèches pointent vers la gauche quand les données vont dans cout.
تتجه الأسهم نحو اليسار عندما تدخل البيانات إلى cout.
Solution
Solution
الحل
The correct operator is <<. It sends data into the output stream cout.
L'opérateur correct est <<. Il envoie des données dans le flux de sortie cout.
العامل الصحيح هو <<. فهو يرسل البيانات إلى مجرى الإخراج cout.
Common mistakeErreur fréquenteخطأ شائع: Writing >> reverses the direction. >> belongs with cin, not with cout.Écrire >> inverse la direction. >> s'emploie avec cin, pas avec cout.كتابة >> تعكس الاتجاه. العامل >> يخص cin وليس cout.
Practice 4 / 4Pratique 4 / 4تمرين 4 / 4L2
Write the output using \n for the line break.
Écrivez la sortie en utilisant \n pour le saut de ligne.
اكتب المخرجات مستخدماً \n للدلالة على الانتقال إلى سطر جديد.
1cout<<"A"<<endl<<"B";
endl starts the next output on a new line.
endl place la sortie suivante sur une nouvelle ligne.
تجعل endl المخرج التالي يبدأ في سطر جديد.
The prompt tells you to write the line break as the two characters \n.
L'énoncé vous demande d'écrire le saut de ligne avec les deux caractères \n.
يطلب منك السؤال كتابة الانتقال إلى السطر الجديد على شكل المحرفين \n.
Solution
Solution
الحل
The screen shows A, then a new line, then B. Because the task asks you to represent the line break in text, the answer is A\nB.
L'écran montre A, puis un saut de ligne, puis B. Comme l'exercice demande de représenter ce saut dans le texte, la réponse est A\nB.
تُظهر الشاشة A ثم سطراً جديداً ثم B. وبما أن السؤال يطلب تمثيل هذا الانتقال نصياً، فالإجابة هي A\nB.
Common mistakeErreur fréquenteخطأ شائع: Do not type AB on one line. endl separates the two outputs.Ne tapez pas AB sur une seule ligne. endl sépare les deux sorties.لا تكتب AB في سطر واحد. فالتعليمة endl تفصل بين المخرجين.
ConceptConceptمفهومL1
Using cin: prompts, read order, and arrow direction
Utiliser cin : invites, ordre de lecture et sens des flèches
استخدام cin: رسائل الطلب وترتيب القراءة واتجاه الأسهم
cin reads typed input from the keyboard and stores it inside variables. In beginner code, a cout line often appears just before it to show a prompt such as "Enter age:". The prompt is visible output. The value typed by the user is not visible output unless another cout line prints it later.
Code line
How to read it
cout << "Enter age:";
Show a prompt on the screen.
cin >> age;
Read one typed value and store it in age.
cin >> a >> b;
Read the first typed value into a, then the next one into b.
The operator direction matters. With cout, data goes toward the screen, so you use <<. With cin, data comes from the input stream toward variables, so you use >>. Reading the arrows as movement helps prevent mixing the two lines up.
cin lit l’entrée saisie au clavier et la stocke dans des variables. Dans le code débutant, une ligne cout apparaît souvent juste avant pour afficher une invite comme "Enter age:". L’invite est une sortie visible. La valeur tapée par l’utilisateur n’est pas une sortie visible, sauf si une autre ligne cout l’affiche ensuite.
Ligne de code
Comment la lire
cout << "Enter age:";
Afficher une invite à l’écran.
cin >> age;
Lire une valeur saisie et la stocker dans age.
cin >> a >> b;
Lire la première valeur dans a, puis la suivante dans b.
Le sens de l’opérateur compte. Avec cout, les données vont vers l’écran, donc on utilise <<. Avec cin, les données viennent du flux d’entrée vers les variables, donc on utilise >>. Lire les flèches comme un mouvement évite de mélanger les deux lignes.
تقرأ cin القيم التي يكتبها المستخدم من لوحة المفاتيح وتخزنها داخل المتغيرات. وفي أمثلة المبتدئين يظهر غالباً سطر cout قبلها مباشرة لعرض رسالة طلب مثل "Enter age:". هذه الرسالة مخرج مرئي. أما القيمة التي يكتبها المستخدم فليست مخرجاً مرئياً، إلا إذا طبعها سطر cout آخر لاحقاً.
سطر الكود
كيف نقرأه
cout << "Enter age:";
اعرض رسالة طلب على الشاشة.
cin >> age;
اقرأ قيمة واحدة وخزّنها في age.
cin >> a >> b;
اقرأ القيمة الأولى في a ثم القيمة التالية في b.
اتجاه العامل مهم. مع cout تتحرك البيانات نحو الشاشة، لذلك نستخدم <<. ومع cin تأتي البيانات من مجرى الإدخال نحو المتغيرات، لذلك نستخدم >>. وقراءة الأسهم على أنها حركة فعلية تساعد كثيراً على عدم الخلط بين السطرين.
Remember: cout shows text; cin stores typed values. If you do not print it again, the user’s input stays invisible on screen.
À retenir : cout affiche du texte ; cin stocke les valeurs saisies. Sans nouvelle ligne cout, la saisie reste invisible à l’écran.
تذكّر: cout تُظهر نصاً، وcin تخزّن ما يكتبه المستخدم. بدون cout لاحق تبقى القيم المكتوبة غير ظاهرة على الشاشة.
1int age;
2cout<<"Enter age:"<<endl;
3cin>> age;
4cout<<"Age = "<< age;
Worked exampleExemple guidéمثال محلولL2
Worked example: prompt, read, then echo two values
Exemple guidé : inviter, lire puis réafficher deux valeurs
مثال محلول: اطلب القيم ثم اقرأها ثم أعد عرض قيمتين
This example has three stages: prompt, read, then echo.
The first line displays Enter two values: and then moves to a new line because of endl. After that, cin >> first >> second; reads the first typed value into first and the second typed value into second. If the user types 4 7, then first becomes 4 and second becomes 7.
The final line prints Second = followed by the current value of second, so the visible result after the prompt is Second = 7. Notice that the program does not automatically print both typed numbers. It prints only what the final cout line asks it to print.
Cet exemple comporte trois étapes : inviter, lire, puis réafficher.
La première ligne affiche Enter two values: puis passe à la ligne suivante grâce à endl. Ensuite, cin >> first >> second; lit la première valeur saisie dans first et la seconde dans second. Si l’utilisateur tape 4 7, alors first devient 4 et second devient 7.
La ligne finale affiche Second = suivie de la valeur actuelle de second, donc le résultat visible après l’invite est Second = 7. Remarquez que le programme ne réaffiche pas automatiquement les deux nombres saisis. Il affiche seulement ce que la dernière ligne cout demande d’afficher.
يتكوّن هذا المثال من ثلاث مراحل: اطلب، ثم اقرأ، ثم أعد الطباعة.
يعرض السطر الأول Enter two values: ثم ينتقل إلى سطر جديد بسبب endl. بعد ذلك يقرأ السطر cin >> first >> second; القيمة الأولى في first والقيمة الثانية في second. فإذا كتب المستخدم 4 7 تصبح قيمة first هي 4 وقيمة second هي 7.
أما السطر الأخير فيطبع Second = ثم القيمة الحالية للمتغير second، ولذلك تكون النتيجة المرئية بعد رسالة الطلب هي Second = 7. لاحظ أن البرنامج لا يعرض الرقمين اللذين كتبهما المستخدم تلقائياً. فهو يطبع فقط ما يطلبه سطر cout الأخير.
Takeaway: the prompt is visible output; typed numbers are not echoed here unless another cout prints them. In this example, only Second = 7 appears after the prompt line.
À retenir : l’invite est une sortie visible ; les nombres saisis ne sont pas réaffichés ici sans une autre ligne cout. Dans cet exemple, seul Second = 7 apparaît après la ligne d’invite.
الخلاصة: رسالة الطلب مخرجات مرئية، أما الأرقام التي يكتبها المستخدم فلا تُعاد طباعتها هنا ما لم يطبعها سطر cout آخر. في هذا المثال يظهر بعد سطر الطلب فقط Second = 7.
1int first, second;
2cout<<"Enter two values:"<<endl;
3cin>> first >> second;
4cout<<"Second = "<< second;
5// User types: 4 7
PracticePratiqueتمرينL2
Now combine prompts, input order, and exact stream syntax. Keep the conversation model in mind: prompt first, input stored silently, and only later output becomes visible if cout prints it.
Combinez maintenant les invites, l’ordre de lecture et la syntaxe exacte des flux. Gardez le modèle de conversation en tête : d’abord l’invite, ensuite l’entrée stockée silencieusement, puis seulement plus tard une sortie visible si cout l’imprime.
اجمع الآن بين رسائل الطلب وترتيب الإدخال والصياغة الدقيقة لأسطر المجرى. احتفظ بنموذج الحوار في ذهنك: أولاً رسالة الطلب، ثم تُخزَّن القيم بصمت، ثم تظهر المخرجات لاحقاً فقط إذا طبعتها cout.
4 exercises below
4 exercices ci-dessous
4 تمارين أدناه
Practice 1 / 4Pratique 1 / 4تمرين 1 / 4L2
Write the exact visible output using \n for the line break.
Écrivez la sortie visible exacte en utilisant \n pour le saut de ligne.
اكتب المخرجات المرئية الدقيقة مستخدماً \n للدلالة على السطر الجديد.
1int first, second;
2cout<<"Enter two values:"<<endl;
3cin>> first >> second;
4cout<<"Second = "<< second;
5// User types: 3 8
The first cout line appears before the input is read.
La première ligne cout apparaît avant la lecture de l'entrée.
يظهر سطر cout الأول قبل قراءة الإدخال.
The second number typed by the user becomes the value of second.
Le second nombre saisi par l'utilisateur devient la valeur de second.
الرقم الثاني الذي يكتبه المستخدم يصبح قيمة second.
Solution
Solution
الحل
The program first prints the prompt, then reads 3 into first and 8 into second, then prints Second = 8. The typed values are used, but they are not automatically shown on the screen by cin.
Le programme affiche d'abord l'invite, puis lit 3 dans first et 8 dans second, puis affiche Second = 8. Les valeurs saisies sont utilisées, mais cin ne les réaffiche pas automatiquement à l'écran.
يطبع البرنامج أولاً رسالة الطلب، ثم يقرأ 3 في first و8 في second، ثم يطبع Second = 8. تُستخدم القيم المكتوبة، لكن cin لا تعرضها تلقائياً على الشاشة.
Common mistakeErreur fréquenteخطأ شائع: Do not include the typed input as if the program printed it. Unless the code uses cout again, cin only stores the values.N'ajoutez pas la saisie comme si le programme l'imprimait. Tant que le code n'utilise pas cout à nouveau, cin ne fait que stocker les valeurs.لا تضف القيم التي كتبها المستخدم كما لو أن البرنامج طبعها. ما لم يستخدم الكود cout مرة أخرى، فإن cin تقوم فقط بتخزين القيم.
Practice 2 / 4Pratique 2 / 4تمرين 2 / 4L1
Fill the blank with the exact operator between two input targets.
Remplissez le blanc avec l'opérateur exact entre deux cibles d'entrée.
املأ الفراغ بالعامل الدقيق بين متغيري الإدخال.
1cin >> first second;
This line reads from the keyboard, not writes to the screen.
Cette ligne lit au clavier ; elle n'écrit pas vers l'écran.
هذا السطر يقرأ من لوحة المفاتيح، ولا يكتب إلى الشاشة.
Both arrows point right when data leaves cin and enters variables.
Les deux flèches pointent vers la droite quand les données quittent cin pour entrer dans les variables.
يتجه السهمان نحو اليمين عندما تخرج البيانات من cin وتدخل إلى المتغيرات.
Solution
Solution
الحل
The correct operator is >> again. Each >> extracts the next typed value from cin into the variable that follows it.
L'opérateur correct est encore >>. Chaque >> extrait la valeur suivante de cin vers la variable qui le suit.
العامل الصحيح هو >> مرة أخرى. فكل >> تسحب القيمة التالية من cin إلى المتغير الذي يليها.
Common mistakeErreur fréquenteخطأ شائع: Using << would point the data the wrong way. Here the values move from the input stream toward the variables.Utiliser << enverrait les données dans le mauvais sens. Ici les valeurs vont du flux d'entrée vers les variables.استعمال << سيجعل اتجاه البيانات خاطئاً. هنا تنتقل القيم من مجرى الإدخال إلى المتغيرات.
Practice 3 / 4Pratique 3 / 4تمرين 3 / 4L1
Choose the exact stream object that reads from the keyboard.
Choisissez l'objet flux exact qui lit au clavier.
اختر كائن التدفق الدقيق الذي يقرأ من لوحة المفاتيح.
1 >> age;
Think of the line as 'read into age'.
Pensez à la ligne comme 'lire dans age'.
اقرأ السطر على أنه 'اقرأ داخل age'.
The answer is a three-letter C++ stream name.
La réponse est un nom de flux C++ en trois lettres.
الإجابة اسم مجرى في C++ مكوّن من ثلاثة أحرف.
Solution
Solution
الحل
The correct stream object is cin. In beginner C++, cin is the standard input stream.
L'objet flux correct est cin. En C++ débutant, cin est le flux d'entrée standard.
كائن التدفق الصحيح هو cin. ففي C++ للمبتدئين، تمثل cin مجرى الإدخال القياسي.
Common mistakeErreur fréquenteخطأ شائع: Do not write cout. cout is for output, so pairing it with >> is the wrong idea in two different ways.N'écrivez pas cout. cout sert à la sortie, donc l'associer à >> est faux de deux façons.لا تكتب cout. فـcout مخصصة للإخراج، وربطها مع >> يجعل السطر خاطئاً من جهتين.
Practice 4 / 4Pratique 4 / 4تمرين 4 / 4L2
Which variable is echoed in the last output box?
Quelle variable est réaffichée dans la dernière boîte de sortie ?
أي متغير يُعاد طباعته في صندوق الإخراج الأخير؟
Read the flowchart from top to bottom.
Lisez l'organigramme de haut en bas.
اقرأ المخطط من الأعلى إلى الأسفل.
There are two output boxes. Focus on the second one.
Il y a deux boîtes de sortie. Concentrez-vous sur la seconde.
يوجد صندوقا إخراج. ركز على الثاني.
The answer should be a variable name, not a sentence.
La réponse doit être un nom de variable, pas une phrase.
يجب أن تكون الإجابة اسم متغير، لا جملة.
Solution
Solution
الحل
The last output box prints code. The same variable is read first, then echoed later.
La dernière boîte de sortie affiche code. La même variable est lue d'abord, puis réaffichée ensuite.
يطبع صندوق الإخراج الأخير code. فالبرنامج يقرأ المتغير نفسه أولاً ثم يعيد طباعته لاحقاً.
Common mistakeErreur fréquenteخطأ شائع: Do not answer with the prompt text. The question asks about the last output box, not the first one.Ne répondez pas avec le texte de l'invite. La question vise la dernière boîte de sortie, pas la première.لا تجب بنص رسالة الطلب. فالسؤال عن صندوق الإخراج الأخير، وليس الأول.
ConceptConceptمفهومL2
Formatting with \n, endl, \t, and I/O flowcharts
Formatage avec \n, endl, \t et organigrammes d'E/S
التنسيق باستخدام \n وendl و\t ومخططات الإدخال والإخراج
Formatting characters change how output is laid out on the screen. \n starts a new line inside a string literal. endl also starts a new line, but it is written as a stream manipulator after <<. \t inserts a horizontal tab space.
Formatting tool
Where you usually write it
Effect
\n
inside a string literal
next output continues on a new line
endl
after << in a cout chain
next output continues on a new line
\t
inside a string literal
insert a tab space
A straight-line I/O flowchart tells the same story as the code, but with boxes instead of semicolons and arrows. An output box corresponds to a cout action, an input box corresponds to a cin action, and the boxes stay in the same top-to-bottom order as the code. When you convert between code and flowchart, keep the sequence and the purpose of each step, not the punctuation.
Les caractères de formatage changent la disposition de la sortie à l’écran. \n démarre une nouvelle ligne à l’intérieur d’un littéral de chaîne. endl démarre aussi une nouvelle ligne, mais s’écrit comme un manipulateur de flux après <<. \t insère un espacement de tabulation horizontal.
Outil de formatage
Où on l’écrit en général
Effet
\n
dans un littéral de chaîne
la sortie suivante continue sur une nouvelle ligne
endl
après << dans une chaîne cout
la sortie suivante continue sur une nouvelle ligne
\t
dans un littéral de chaîne
insérer une tabulation
Un organigramme d’E/S linéaire raconte la même histoire que le code, mais avec des boîtes au lieu de points-virgules et de flèches. Une boîte de sortie correspond à une action cout, une boîte d’entrée correspond à une action cin, et les boîtes gardent le même ordre vertical que le code. Quand vous passez du code à l’organigramme ou inversement, conservez la séquence et le rôle de chaque étape, pas la ponctuation.
تغيّر محارف التنسيق شكل المخرجات على الشاشة. فـ\n يبدأ سطراً جديداً داخل سلسلة نصية. وendl يبدأ أيضاً سطراً جديداً، لكنه يُكتب كعنصر تنسيق بعد << داخل تعليمة cout (وليس داخل النص بين علامتي اقتباس). أما \t فيدرج مسافة جدولة أفقية.
أداة التنسيق
أين تُكتب غالباً
أثرها
\n
داخل سلسلة نصية
يبدأ الجزء التالي من المخرجات في سطر جديد
endl
بعد << داخل سلسلة cout
يبدأ الجزء التالي من المخرجات في سطر جديد
\t
داخل سلسلة نصية
يضيف مسافة جدولة
يروي مخطط الإدخال والإخراج الخطي القصة نفسها التي يرويها الكود، لكن بصناديق بدلاً من الفواصل المنقوطة. فصندوق الإخراج يقابل خطوة cout، وصندوق الإدخال يقابل خطوة cin، وتحافظ الصناديق على الترتيب العمودي نفسه الموجود في الكود. وعند التحويل بين الكود والمخطط، حافظ على تسلسل الخطوات ووظيفة كل خطوة، لا على علامات الترقيم.
\n lives inside a string; endl is chained after <<. Both move the next output to a new line, but the syntax lives in different places.
\n se place dans une chaîne ; endl se chaîne après <<. Les deux passent à la ligne suivante, mais l’écriture n’est pas au même endroit.
\n يُكتب داخل سلسلة نصية، أما endl فيُكتب بعد <<. كلاهما ينقل المخرجات التالية إلى سطر جديد، لكن موضع الكتابة مختلف.
1int count;
2cout<<"Enter count:"<<endl;
3cin>> count;
4cout<<"Double = "<< count * 2<<"\tunits";
Worked exampleExemple guidéمثال محلولL2
Worked example: convert straight-line I/O between code and flowchart
Exemple guidé : convertir une E/S linéaire entre code et organigramme
مثال محلول: حوّل تسلسل الإدخال والإخراج الخطي بين الكود والمخطط
To convert straight-line code into a flowchart, keep the same order and ask what each line does.
cout << "Enter total:"; becomes an output box because it shows a prompt.
cin >> total; becomes an input box because it reads one value into total.
cout << total; becomes another output box because it echoes the stored value.
Going the other way works the same way. If a flowchart says output, then input, then output, your code should follow that same sequence. The names inside the boxes become the exact tokens you place after cin >> or cout <<.
Pour convertir un code linéaire en organigramme, gardez le même ordre et demandez-vous ce que fait chaque ligne.
cout << "Enter total:"; devient une boîte de sortie parce qu’elle affiche une invite.
cin >> total; devient une boîte d’entrée parce qu’elle lit une valeur dans total.
cout << total; devient une autre boîte de sortie parce qu’elle réaffiche la valeur stockée.
Le trajet inverse fonctionne de la même manière. Si l’organigramme dit sortie, puis entrée, puis sortie, votre code doit suivre exactement cette séquence. Les noms à l’intérieur des boîtes deviennent les jetons exacts à placer après cin >> ou cout <<.
لتحويل كود خطي إلى مخطط انسيابي، حافظ على الترتيب نفسه واسأل نفسك ماذا يفعل كل سطر.
يتحول السطر cout << "Enter total:"; إلى صندوق إخراج لأنه يعرض رسالة طلب.
ويتحول السطر cin >> total; إلى صندوق إدخال لأنه يقرأ قيمة داخل total.
ثم يتحول السطر cout << total; إلى صندوق إخراج آخر لأنه يعيد طباعة القيمة المخزنة.
ويعمل الاتجاه العكسي بالطريقة نفسها. فإذا كان المخطط يقول: إخراج ثم إدخال ثم إخراج، فيجب أن يتبع الكود التسلسل نفسه تماماً. وتصبح الأسماء الموجودة داخل الصناديق هي العناصر الدقيقة التي تضعها بعد cin >> أو cout <<.
Takeaway: flowchart boxes mirror the top-to-bottom order of code. Output boxes show prompts or values; input boxes name the variable that receives keyboard input.
À retenir : les boîtes de l’organigramme suivent le même ordre vertical que le code. Les boîtes de sortie montrent des invites ou des valeurs ; les boîtes d’entrée nomment la variable qui reçoit la saisie.
الخلاصة: صناديق المخطط تعكس ترتيب الكود من الأعلى إلى الأسفل. صناديق الإخراج تعرض رسائل الطلب أو القيم، وصناديق الإدخال تسمّي المتغير الذي يستقبل الإدخال من لوحة المفاتيح.
1int total;
2cout<<"Enter total:";
3cin>> total;
4cout<< total;
PracticePratiqueتمرينL2
This final set mixes formatting with flowchart completion and translation. The tasks are still deterministic: exact token, exact output shape, or one missing flowchart label at a time.
Cette dernière série mélange le formatage avec la complétion et la traduction d’organigrammes. Les tâches restent déterministes : jeton exact, forme exacte de la sortie, ou une étiquette manquante d’organigramme à la fois.
تجمع هذه المجموعة الأخيرة بين التنسيق وإكمال المخططات وترجمتها. وما تزال التمارين حتمية وواضحة: عنصر دقيق، أو شكل مخرجات دقيق، أو تسمية ناقصة واحدة في كل مرة.
4 exercises below
4 exercices ci-dessous
4 تمارين أدناه
Practice 1 / 4Pratique 1 / 4تمرين 1 / 4L2
Write the output using \t and \n exactly.
Écrivez la sortie en utilisant exactement \t et \n.
اكتب المخرجات مستخدماً \t و\n كما هما تماماً.
1cout<<"A\tB\nC";
\t separates A and B horizontally.
\t sépare A et B horizontalement.
يفصل \t بين A وB أفقياً.
\n moves C to the next line.
\n place C sur la ligne suivante.
تنقل \n الحرف C إلى السطر التالي.
Solution
Solution
الحل
The output contains a tab between A and B, then a new line before C. Because the task asks you to write those formatting effects explicitly, the answer is A\tB\nC.
La sortie contient une tabulation entre A et B, puis un saut de ligne avant C. Comme la consigne demande d'écrire ces effets de formatage explicitement, la réponse est A\tB\nC.
تحتوي المخرجات على مسافة جدولة بين A وB، ثم سطراً جديداً قبل C. ولأن السؤال يطلب كتابة أثر التنسيق صراحة، فالإجابة هي A\tB\nC.
Common mistakeErreur fréquenteخطأ شائع: Do not remove \t or \n. Those symbols are the required way to represent the tab and line break in this answer box.Ne supprimez pas \t ni \n. Ces symboles sont la manière demandée pour représenter la tabulation et le saut de ligne dans cette zone de réponse.لا تحذف \t ولا \n. فهذان الرمزان هما الطريقة المطلوبة لتمثيل الجدولة والسطر الجديد في خانة الإجابة هذه.
Practice 2 / 4Pratique 2 / 4تمرين 2 / 4L2
Complete the missing flowchart labels with exact code tokens.
Complétez les étiquettes manquantes de l'organigramme avec les jetons de code exacts.
أكمل تسميات المخطط الناقصة باستخدام عناصر الكود الدقيقة.
The same variable can appear in more than one box.
La même variable peut apparaître dans plusieurs boîtes.
قد يظهر المتغير نفسه في أكثر من صندوق.
The input box and the final output box refer to the same stored value.
La boîte d'entrée et la dernière boîte de sortie désignent la même valeur stockée.
يشير صندوق الإدخال وصندوق الإخراج الأخير إلى القيمة المخزنة نفسها.
Each answer is a variable name, not a full C++ statement.
Chaque réponse est un nom de variable, pas une instruction C++ complète.
كل إجابة هي اسم متغير، وليست تعليمة C++ كاملة.
Solution
Solution
الحل
Both blanks are age. The program reads age, then echoes the same variable later.
Les deux blancs valent age. Le programme lit age, puis réaffiche la même variable plus tard.
الفراغان كلاهما age. فالبرنامج يقرأ age ثم يعيد طباعة المتغير نفسه لاحقاً.
Common mistakeErreur fréquenteخطأ شائع: Do not copy the prompt text into the blanks. The missing labels belong to the input and output data, not to the message shown before input.Ne recopiez pas le texte de l'invite dans les blancs. Les étiquettes manquantes correspondent aux données d'entrée et de sortie, pas au message affiché avant la saisie.لا تنسخ نص رسالة الطلب داخل الفراغات. فالتسميات الناقصة تخص بيانات الإدخال والإخراج، لا الرسالة المعروضة قبل الإدخال.
Practice 3 / 4Pratique 3 / 4تمرين 3 / 4L2
Convert this flowchart into the exact code tokens.
Convertissez cet organigramme en jetons de code exacts.
حوّل هذا المخطط إلى عناصر الكود الدقيقة.
1cin >> ;
2cout << ;
Read the flowchart in order: input first, output second.
Lisez l'organigramme dans l'ordre : entrée d'abord, sortie ensuite.
اقرأ المخطط بالترتيب: إدخال أولاً ثم إخراج.
The word inside each box is the token you need in code.
Le mot à l'intérieur de chaque boîte est le jeton dont vous avez besoin dans le code.
الكلمة داخل كل صندوق هي العنصر الذي تحتاج إليه في الكود.
Both blanks should match each other.
Les deux blancs doivent être identiques.
يجب أن يتطابق الفراغان.
Solution
Solution
الحل
Both blanks are total. The flowchart first reads total, then prints total, so the code uses the same variable name in both lines.
Les deux blancs valent total. L'organigramme lit d'abord total, puis affiche total, donc le code utilise le même nom de variable dans les deux lignes.
الفراغان كلاهما total. فالمخطط يقرأ total أولاً ثم يطبع total، لذلك يستخدم الكود اسم المتغير نفسه في السطرين.
Common mistakeErreur fréquenteخطأ شائع: Do not invent a second variable just because there are two lines. The diagram shows one variable used twice.N'inventez pas une seconde variable simplement parce qu'il y a deux lignes. Le diagramme montre une seule variable utilisée deux fois.لا تخترع متغيراً ثانياً فقط لأن هناك سطرين. فالمخطط يبيّن متغيراً واحداً مستخدماً مرتين.
Practice 4 / 4Pratique 4 / 4تمرين 4 / 4L2
Convert the code into the missing flowchart output label.
Convertissez le code en étiquette de sortie manquante dans l'organigramme.
حوّل الكود إلى تسمية الإخراج الناقصة في المخطط.
1cout<<"Ready";
Look inside the double quotes of the code line.
Regardez à l'intérieur des guillemets doubles de la ligne de code.
انظر داخل علامتي الاقتباس المزدوجتين في سطر الكود.
A flowchart output label keeps the text being shown.
Une étiquette de sortie d'organigramme conserve le texte affiché.
تحتفظ تسمية الإخراج في المخطط بالنص الذي سيتم عرضه.
This answer needs the quotes because the output is literal text.
Cette réponse a besoin des guillemets parce que la sortie est un texte littéral.
تحتاج هذه الإجابة إلى علامات الاقتباس لأن المخرج نص حرفي.
Solution
Solution
الحل
The missing output label is "Ready". In a flowchart output box, you record the exact text being sent to the screen.
L'étiquette de sortie manquante est "Ready". Dans une boîte de sortie d'organigramme, on note le texte exact envoyé à l'écran.
تسمية الإخراج الناقصة هي "Ready". ففي صندوق الإخراج داخل المخطط نكتب النص الدقيق الذي يُرسل إلى الشاشة.
Common mistakeErreur fréquenteخطأ شائع: Do not answer with cout or <<. The box label should contain the content being output, not the stream syntax around it.Ne répondez pas avec cout ou <<. L'étiquette de la boîte doit contenir le contenu affiché, pas la syntaxe du flux autour de lui.لا تجب بـcout أو <<. فتسمية الصندوق يجب أن تحتوي على المحتوى المطبوع، لا على صيغة المجرى المحيطة به.
RecapSynthèseملخصL1
Recap
Synthèse
ملخص
This section trained one core habit: read I/O in order instead of guessing from a vague memory of the code. cout builds visible output piece by piece. cin stores typed values in order. Formatting tools such as \n, endl, and \t change the shape of the output, and a straight-line flowchart preserves that same sequence in visual form.
Cette section a renforcé une habitude centrale : lire l’E/S dans l’ordre au lieu de deviner à partir d’un souvenir vague du code. cout construit la sortie visible morceau par morceau. cin stocke les valeurs saisies dans l’ordre. Les outils de formatage comme \n, endl et \t changent la forme de la sortie, et un organigramme linéaire conserve cette même séquence sous une forme visuelle.
درّبك هذا القسم على عادة أساسية: اقرأ الإدخال والإخراج بالترتيب بدلاً من التخمين اعتماداً على تذكّر عام للكود. تبني cout المخرجات المرئية جزءاً جزءاً، وتخزن cin القيم المكتوبة بالترتيب، وتغيّر أدوات التنسيق مثل \n وendl و\t شكل المخرجات. أما المخطط الخطي فيحافظ على هذا التسلسل نفسه لكن بصورة بصرية.
Key takeaways
Points clés
النقاط الأساسية
cout << sends visible output to the screen. cin >> reads typed input into variables.cout << envoie une sortie visible à l'écran. cin >> lit l'entrée saisie dans des variables.ترسل cout << المخرجات المرئية إلى الشاشة، بينما تقرأ cin >> الإدخال المكتوب داخل المتغيرات.
Text in quotes stays literal. Unquoted values and expressions are evaluated before they are printed.Le texte entre guillemets reste littéral. Les valeurs et expressions sans guillemets sont évaluées avant d'être affichées.يبقى النص داخل الاقتباس حرفياً، بينما تُحسب القيم والتعابير غير المقتبسة قبل طباعتها.
A straight-line I/O flowchart keeps the same order as the code: start, prompt/output, input, later output, end.Un organigramme d'E/S linéaire conserve le même ordre que le code : début, invite/sortie, entrée, sortie suivante, fin.يحافظ مخطط الإدخال/الإخراج الخطي على الترتيب نفسه الموجود في الكود: بداية، رسالة/إخراج، إدخال، إخراج لاحق، ثم نهاية.