يجب أن يصف الكود الكاذب المنطق الكامل للخوارزمية بحيث تصبح البرمجة مهمة ترجمة سطور الكود الكاذب إلى كود حقيقي.
لكل مما يلي، دعونا نناقش لماذا يمكن اعتبار كل كود زائف أمثلة "جيدة" أو "ضعيفة" للكود الكاذب:
مثال 1.1:
PROGRAM IsEvenOrOdd:
var num = number;
IF (num % 2 === 0)
THEN Print "even";
ELSE Print "odd";
ENDIF;
END.
س: ماذا نعتقد؟
ج: هذا ليس مثالاً رائعًا. نحن هنا نستخدم "var" في الكود الكاذب الخاص بنا عندما يجب أن يُقرأ باللغة الإنجليزية البسيطة! أيضًا، لا ينبغي لنا استخدام بناء جملة جافا سكريبت "===" في شرطنا. هل يعرف غير المبرمج أن
num % 2 === 0
يشير إلى رقم زوجي؟
مثال 1.2:
PROGRAM IsEvenOrOdd:
Read number;
IF (number divided by two has no remainder)
THEN Print the number is even;
ELSE Print the number is odd;
ENDIF;
END.
س: ماذا نعتقد؟
ج: هذا أفضل. إنها أقرب إلى اللغة الإنجليزية. فهو يوضح بوضوح ما نحاول تحقيقه وكيف، دون التورط في التفاصيل الدقيقة للتعليمات البرمجية. حتى الشخص الذي لا يقوم بالبرمجة يمكنه مساعدتنا في التحقق من منطقنا. هل أي عدد يمكن قسمته على اثنين، بدون ترك باقي، متساوي؟ هل هناك أي شيء آخر غريب؟
من احصل على الإبداع اليوم
مثال 2.1:
Make PB&J Sandwich:
Gather bread, peanut butter and jelly.
Apply peanut butter to slice of bread.
Apply jelly to another slice of bread.
Bring the two slices of bread together.
Eat and enjoy.
س: ماذا نعتقد؟
ج: هذا مكان جيد للبدء. إنها مجموعة جيدة من التعليمات وبديهية بالنسبة لنا لنتبعها. ومع ذلك، ما زلنا لا نعرف ما هي الخطوات المادية المطلوبة.
خذ ثانية لتتخيل. تخيل لو أنك لم تصنع شطيرة من قبل. أبدًا. فكر في التعليمات التي ستحتاجها لتلك الساندويتش الأولى. الكمبيوتر ليس لديه ذاكرة حقيقية. في كل مرة يبدأ فيها مهمة ما، لا يتذكر أنه قام بها من قبل. يجب أن نخبرها في كل خطوة وفي كل مرة. نحتاج إلى تقسيم هذه الخطوات إلى خطوات أصغر حتى يفهمها الكمبيوتر.
مثال 2.2:
PROGRAM MakePB&JSandwich:
Grab a paper plate;
Open bread container;
Grab bread package;
Untwist bread package;
Open bread bag and remove two slices;
Place slices on paper plate;
Grab a plastic knife;
Open peanut butter jar;
Use knife to scoop out peanut butter;
Apply peanut butter to one slice of bread;
Spread peanut butter on slice;
Place knife on plate;
Close peanut butter jar;
Open jelly bottle;
Squeeze jelly onto second bread slice;
Close jelly bottle;
Place down jelly;
Pick up knife;
Spread jelly on slice;
Bring two slices of bread together;
Cut slices in half down the middle;
Throw knife in the trash;
Pick up one half of sandwich;
Enjoy;
END.
س: ماذا نعتقد؟
ج: تسلسل هذا المثال دقيق جدًا! ومع ذلك، فإننا لا نزال نفترض شروطًا معينة بأن أدواتنا أو مكوناتنا موجودة بالفعل. ماذا لو خرجنا من اللوحات؟ هل سنأخذ منديلًا بدلاً من ذلك لوضع شطيرتنا عليه؟ ماذا لو نفد الجيلي؟ هل سترمي الساندويتش أم ستأكله مع زبدة الفول السوداني فقط؟
أجهزة الكمبيوتر ليست ذكية. نحن بحاجة إلى أن نعطيهم تعليمات خطوة بخطوة لمراعاة الظروف. لا يمكنهم التكيف لإجراء تغييرات دون أن يتم إخبارهم صراحةً. البرمجة عبارة عن سلسلة من المهام، والتي لا يمكن إكمالها إلا إذا تم استيفاء عدد معين من الشروط.
أجهزة الكمبيوتر لا تستطيع التكيف، ولكننا نستطيع ذلك. ربما لن يغطي تمريرك الأول في الكود الكاذب كل شيء. بمجرد معرفة المزيد، يمكنك العودة لتحديث وإعادة صياغة الكود الكاذب الخاص بك.
الكود الكاذب لا يتعلق فقط بكتابة الخطوات التي تعرفها بالفعل. إنها أداة لمساعدتك في حل المشكلة. قبل أن نتمكن من كتابة كود زائف لحل المشكلة، علينا أن نعرف المشكلة.
فيما يلي بعض الخطوات التي يمكن أن تساعد في حل المشكلة:
وأخيرا، فإننا نتخذ بعض الإجراءات. وهذا عندما نبدأ أخيرًا في كتابة التعليمات البرمجية. نحن نكافح بشدة لاتخاذ خطوات صغيرة، والتحقق من أن كل خطوة تحقق ما نريد، وما نتوقعه، قبل الاستمرار. إذا فعلنا الكثير في وقت واحد وتعطلت الأشياء، وهو ما يحدث دائمًا، فلن نعرف سبب المشكلة. لن نعرف أي جزء نثق به. يزدهر البشر بالانتصارات السهلة. نحن بحاجة لرؤية التقدم إلى الأمام. تذكر ذلك. استخدم ذلك. احتفل بانتصاراتك.
س: أين يتناسب الكود الكاذب مع هذه الخطوات؟
أ. قم بتقسيمها أو ابدأ صغيرًا
هذه العملية متكررة. نستمر في الدوران وتكرار الخطوات السابقة، على مستوى مختلف فقط.
عندما نتعامل مع مشكلة لأول مرة، نرى الصورة الكبيرة. "تقسيمها" يعطينا خطوات كبيرة. ثم نتخذ إحدى تلك الخطوات و"نكسرها". الآن، نبدأ صغيرًا، نكتب كودًا زائفًا للمساعدة في توضيح المشكلة.
يثبت التشفير الزائف أننا حددنا المشكلة، وفهمناها من الناحية المفاهيمية ، وقمنا بتقسيمها إلى خطوات صغيرة يمكننا اتباعها.
لا يوجد بناء جملة ثابت للكود الكاذب. يجب فقط أن تكون واضحة وبسيطة وموجزة.
إذا شعرت أنك عالق، فلا تتردد في استخدام بناء الجملة هذا:
المرجع: مقدمة إلى الكود الزائف
الهيكل العام للكود الزائف
PROGRAM <ProgramName>:
<Do Stuff>
END.
التحديد: عبارات IF/ELSE
IF (<Condition>)
THEN <Statements>;
ELSE <Statements>;
ENDIF;
التكرار: حلقة
WHILE (<Condition>)
ENDWHILE;
اتبع الإرشادات الموجودة في starter_code/pseudo_code_practice.md