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، وتحويل تسلسل إدخال/إخراج بسيط بين الكود والمخطط الانسيابي.

Prep guideGuideدليل تحضيري L1

Start here: read I/O as a conversation

Commencez ici : lire l'E/S comme une conversation

ابدأ من هنا: اقرأ الإدخال والإخراج كأنهما حوار

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.

  1. The first chunk is the literal text "Score = ", so the screen begins with Score = .
  2. The second chunk is the variable score. In this example, score stores 9, so the next visible part is 9.
  3. 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.

  1. Le premier morceau est le texte littéral "Score = ", donc l’écran commence par Score = .
  2. Le deuxième morceau est la variable score. Dans cet exemple, score contient 9, donc la partie visible suivante est 9.
  3. 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.

اقرأ السطر cout << "Score = " << score << "/10"; بالترتيب.

  1. الجزء الأول هو النص الحرفي "Score = "، لذلك تبدأ الشاشة بـ Score = .
  2. الجزء الثاني هو المتغير score. وفي هذا المثال تحمل score القيمة 9، لذلك يكون الجزء الظاهر التالي هو 9.
  3. الجزء الأخير هو النص الحرفي "/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 / 4⁩ L1
Type the exact output.
Tapez la sortie exacte.
اكتب المخرجات الدقيقة.
1int age = 14;
2cout << "Age: " << age << " years";
Practice 2 / 4Pratique 2 / 4تمرين ⁦2 / 4⁩ L1
Literal text vs expression: what is the exact output?
Texte littéral vs expression : quelle est la sortie exacte ?
نص حرفي أم تعبير: ما المخرجات الدقيقة؟
1cout << "2 + 3 = " << 2 + 3;
Practice 3 / 4Pratique 3 / 4تمرين ⁦3 / 4⁩ L1
Fill the blank with the exact operator.
Remplissez le blanc avec l'opérateur exact.
املأ الفراغ بالعامل الدقيق.
1 cout "Ready";
Practice 4 / 4Pratique 4 / 4تمرين ⁦4 / 4⁩ L2
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";
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 / 4⁩ L2
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
Practice 2 / 4Pratique 2 / 4تمرين ⁦2 / 4⁩ L1
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.
املأ الفراغ بالعامل الدقيق بين متغيري الإدخال.
1 cin >> first second;
Practice 3 / 4Pratique 3 / 4تمرين ⁦3 / 4⁩ L1
Choose the exact stream object that reads from the keyboard.
Choisissez l'objet flux exact qui lit au clavier.
اختر كائن التدفق الدقيق الذي يقرأ من لوحة المفاتيح.
1 >> age;
Practice 4 / 4Pratique 4 / 4تمرين ⁦4 / 4⁩ L2
Which variable is echoed in the last output box?
Quelle variable est réaffichée dans la dernière boîte de sortie ?
أي متغير يُعاد طباعته في صندوق الإخراج الأخير؟
StartOutput: "Enter code:"Input: codeOutput: codeEnd
DebutSortie : "Enter code:"Entrée : codeSortie : codeFin
ابدأإخراج: "Enter code:"إدخال: codeإخراج: codeنهاية
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";
StartOutput: "Enter count:"Input: countOutput: "Double = " <<count * 2End
DebutSortie : "Entercount:"Entrée : countSortie : "Double = "<< count * 2Fin
ابدأإخراج: "Enter count:"إدخال: countإخراج: "Double = " <<count * 2نهاية
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.

  1. cout << "Enter total:"; becomes an output box because it shows a prompt.
  2. cin >> total; becomes an input box because it reads one value into total.
  3. 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.

  1. cout << "Enter total:"; devient une boîte de sortie parce qu’elle affiche une invite.
  2. cin >> total; devient une boîte d’entrée parce qu’elle lit une valeur dans total.
  3. 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 <<.

لتحويل كود خطي إلى مخطط انسيابي، حافظ على الترتيب نفسه واسأل نفسك ماذا يفعل كل سطر.

  1. يتحول السطر cout << "Enter total:"; إلى صندوق إخراج لأنه يعرض رسالة طلب.
  2. ويتحول السطر cin >> total; إلى صندوق إدخال لأنه يقرأ قيمة داخل total.
  3. ثم يتحول السطر 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 / 4⁩ L2
Write the output using \t and \n exactly.
Écrivez la sortie en utilisant exactement \t et \n.
اكتب المخرجات مستخدماً \t و\n كما هما تماماً.
1cout << "A\tB\nC";
Practice 2 / 4Pratique 2 / 4تمرين ⁦2 / 4⁩ L2
Complete the missing flowchart labels with exact code tokens.
Complétez les étiquettes manquantes de l'organigramme avec les jetons de code exacts.
أكمل تسميات المخطط الناقصة باستخدام عناصر الكود الدقيقة.
StartOutput: "Enter age:"Input: [A]Output: [B]End
DebutSortie : "Enter age:"Entrée : [A]Sortie : [B]Fin
ابدأإخراج: "Enter age:"إدخال: [A]إخراج: [B]نهاية
Practice 3 / 4Pratique 3 / 4تمرين ⁦3 / 4⁩ L2
Convert this flowchart into the exact code tokens.
Convertissez cet organigramme en jetons de code exacts.
حوّل هذا المخطط إلى عناصر الكود الدقيقة.
StartInput: totalOutput: totalEnd
DebutEntrée : totalSortie : totalFin
ابدأإدخال: totalإخراج: totalنهاية
1 cin >> ;
2 cout << ;
Practice 4 / 4Pratique 4 / 4تمرين ⁦4 / 4⁩ L2
Convert the code into the missing flowchart output label.
Convertissez le code en étiquette de sortie manquante dans l'organigramme.
حوّل الكود إلى تسمية الإخراج الناقصة في المخطط.
1cout << "Ready";
StartOutput: [A]End
DebutSortie : [A]Fin
ابدأإخراج: [A]نهاية
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.يحافظ مخطط الإدخال/الإخراج الخطي على الترتيب نفسه الموجود في الكود: بداية، رسالة/إخراج، إدخال، إخراج لاحق، ثم نهاية.