انتقل إلى المحتوى
Topos Uranos

ملخص

يفتتح هذا الدرس الوحدة الثالثة من الدورة، المخصّصة للتعابير وعواملها. ويشرح الغاية من الوحدة: أن تعلّم بناء تعابير يمكن التنبّؤ بقيمتها يقينًا، بمعرفة أيّ عملية تُجرى أولًا، ومن أيّ نوع تكون النتيجة، وما آثارها الجانبية، وأيّ التعابير لا معنى لها؛ ويعرض دروسها الأربعة والخيط الذي يجمعها، من حساب الأعداد الصحيحة والحقيقية إلى البتات والمكتبة الرياضية، مرورًا بالشروط وبفهرس السلوك غير المعرَّف؛ ويذكّر بما تفترض الوحدة أنه معلوم من الثانية، وهو نوع كل معطى وحدوده وتحويلاته؛ ويصوغ المسألة التي تحلّها الوحدة، مسألة برنامج يُترجَم دون تحذير واحد وأجوبته عن ستة أسئلة مدرسية كلها خاطئة، إن لم تكن غائبة؛ ويبيّن إلى أين تقود، في الوحدات اللاحقة وفي دورة البرمجة بلغة C++ II.

أهداف التعلم

  1. وصف تسلسل محتويات الوحدة، وشرح ما يقدّمه كل درس للدرس الذي يليه.
  2. تذكّر ما يلزم من الوحدة 2 (الأنواع الصحيحة والحقيقية، ومدى قيمها، والفيضان، والتحويلات)، ومراجعته عند الحاجة.
  3. الاستباق، بمثال، إلى أن قيمة التعبير تتوقّف على قواعد في الحساب (الأسبقية، ونوع المعامَلات، وترتيب الآثار) لا تطابق دائمًا قواعد الرياضيات المدرسية.
  4. التعرّف على ما يُنتظر إتقانه في نهاية الوحدة، وتمييزه ممّا سيُتعلَّم في الوحدات اللاحقة.

تقييم الدخول

قبل اجتياز الوحدة يحسن قياس نقطة البداية. وهذا التقييم تقييم ذاتي: لا تُمنح عليه درجة، وغايته الوحيدة توجيه الدراسة. وتتناول الأسئلة الأربعة الأولى ما تفترض الوحدة أنه معلوم من الثانية: القسمة بين الأعداد الصحيحة، والكتابة في الأساس 2، والطرح عديم الإشارة، والفيضان ذا الإشارة. وتتناول الأسئلة الستة التي تليها، بترتيب الدروس، الأفكار المحورية في الوحدة، وينطلق عدد منها من الرياضيات المدرسية أو من المنطق الأوّلي. ولا أحد ملزم بالإصابة فيها بعدُ، وفي اثنين منها يكون «لا أعرف بعدُ» جوابًا صادقًا: فكل جواب، صائبًا كان أو خاطئًا، يشرح المسألة ويسمّي الدرس الذي يعالجها. وتُقاس المهارات نفسها مرة أخرى في النهاية، في درس الخلاصة.

تقييم الدخول

قبل أن تبدأ الوحدة، قِس نقطة انطلاقك. إنه تقييم ذاتي قصير: لا يُمنح عليه درجة، وتُحفظ نتيجته في متصفحك فقط.

  1. السؤال 1من وحدات سابقةيصرّح برنامج بـ const double r{7 / 2}; ثم يكتب r. فماذا يظهر؟

  2. السؤال 2من وحدات سابقةكيف يُكتب العدد 13 في الأساس 2 بثمانية بتات؟

  3. السؤال 3من وحدات سابقةماذا تكتب std::println("{}", 0u - 1); مع unsigned int من 32 بتًّا؟

  4. السؤال 4من وحدات سابقةينفّذ برنامج int count{std::numeric_limits<int>::max()}; ثم count = count + 1;. فماذا يضمن المعيار بشأن قيمة count؟

  5. السؤال 5كم تساوي 2+3⋅42 + 3 \cdot 4 و(2+3)⋅4(2 + 3) \cdot 4؟

  6. السؤال 6وفق مبرهنة القسمة في الرياضيات، ومع تقييد الباقي rr بالشرط 0≤r<20 \leq r < 2، ما خارج القسمة qq وما الباقي rr لقسمة −7-7 على 22؟

  7. السؤال 7ما نفي «السماء تمطر والجو بارد»؟

  8. السؤال 8ماذا تكتب std::println("{}", 3 < 5);؟

  9. السؤال 9بعد int a{5}; وint b{a++ * 2};، كم تساوي a وb؟

  10. السؤال 10ماذا تكتب std::println("{}", 2 ^ 3);؟