نصائح مفيدة

الكود الكاذب والرسم البياني

شبة الكود - لغة مدمجة ، غالبًا ما تكون غير رسمية لوصف الخوارزميات التي تستخدم الكلمات الأساسية في لغات البرمجة الضرورية ، ولكنها تتجاهل التفاصيل وصياغتها المحددة التي ليست ضرورية لفهم الخوارزمية. مصممة لتقديم الخوارزمية للبشر ، وليس للترجمة الحاسوبية والتنفيذ اللاحق للبرنامج.

شبة الكود (شبة الكود)

عند تدريس الشفرة الزائفة ، يحاول العديد من المؤلفين إضفاء الطابع الرسمي على الشفرة الزائفة وجعلها تبدو وكأنها نوع من لغة البرمجة ، وعادةً ما تكون لغة Pascal (fu ، تمتص). سوف أستخدم مقاربة مختلفة قليلاً - سيكون لدينا جمل معتادة برمز زائف.

ما هو الرمز الزائف؟ هذا هو سجل لأوامر الكمبيوتر في اللغة البشرية المشتركة. نتيجة لذلك ، يحصل المبرمج على شكل وسيط بين اللغة اليومية ولغة البرمجة.

لنأخذ مثالا. عادة ، يتم اختيار الحالات التي لا علاقة لها بالممارسة كأمثلة. سننظر في مثال مختلف تمامًا ، والذي يوجد دائمًا في الممارسة العملية. لنفترض أن لدينا في لعبة استراتيجية خريطة بحجم 64 × 64 خلية. لكل شخصية في اللعبة ، تحتاج إلى التحقق من أنه لا يتجاوز الخريطة. يتم الإشارة إلى الإحداثيات بواسطة x (أفقي) ، y (عمودي). من الواضح أن إحداثيات أي شخصية يجب أن تكون في النطاق [1. 64]. الجملة السابقة هي فكرة يجب التعبير عنها بلغة برمجة.

نظرًا لأننا لم نبدأ بعد في تعلم C ++ ، فلنكتب هذه الفكرة باستخدام الكود الكاذب. علاوة على ذلك ، يجب بناء المقترحات فقط بمساعدة الإنشاءات الأساسية التي درسناها في الدرس السابق:

هذه الجمل الأربع تحد من حركة الشخصية. هذا هو الرمز الزائف. تمكنا من تنفيذ المهمة بأكملها بمساعدة أربعة فروع مع فرع واحد ، لكل منها مشغل واحد. الآن يمكن ترجمة هذا الرمز الزائف بسهولة إلى أي لغة برمجة. دعونا نفعل ذلك ل C ++. للقيام بذلك ، في الشفرة الكاذبة ، تحتاج إلى استبدال بعض الكلمات بمكافئات اللغة الإنجليزية ، ويجب كتابة الإجراءات الرياضية باللغة الرياضية. الكلمة إذا باللغة الإنجليزية سوف يكون إذا (اقرأ باسم IF):

هذا أيضًا رمز زائف ، على الرغم من أنه بالفعل أقرب إلى لغات البرمجة. في هذا الإصدار من الرمز الكاذب ، فقدنا شيئًا ما. الذي يتم التحقق من الإحداثيات هنا؟ للإشارة إلى أن x ، y هي إحداثيات الشخصيات في اللعبة ، سنكتبها عبر نقطة: unit.x، unit.y. هنا يمكنك رؤية أن x و y ينتميان إلى الوحدة ، وليس إلى المبنى أو الشجرة. لنلقِ نظرة على الخيار الجديد:

هذا لا يزال رمزًا زائفًا ، لكنه لا يحتوي على أي تكرار - لقد تخلصنا من كل الكلمات الإضافية. هذا الخيار قريب جدًا من لغات البرمجة. في C ++ ، سيبدو الرمز النهائي كما يلي:

هذا الرمز سي + + يعمل تماما! بالمناسبة ، سوف نستخدم رمزًا مشابهًا جدًا في أركانويد للتحكم في الكرة.

وأظهرت هنا ثلاثة خيارات للرمز الكاذب. في البداية ، سوف تستخدم الخيار الأول ، وتدوين الرمز في شكل جمل باللغة الروسية. إذا كنت مشغولاً بما فيه الكفاية ، فإن الرمز الكاذب يصبح غير ضروري بعد حوالي ثلاثة أسابيع ، عندما تتمكن من تعلم الإنشاءات الأساسية للغة البرمجة ، لكن في المرحلة الأولية ، يكون هذا مفيدًا جدًا.

المثال البسيط الذي درسناه أعلاه يوضح لنا بوضوح ما يفعله المبرمج.

ما الذي يجب أن يكون المبرمج قادرًا على فعله؟

المهمة الرئيسية للمبرمج هي كما يلي: ترجمة الأفكار إلى لغة يفهمها الكمبيوتر. دعونا نلقي نظرة أخرى على كيفية حدوث ذلك.

أولاً ، أردنا إنشاء استراتيجية ، ثم نبدأ في التفكير في الأجزاء الفردية للبرنامج المستقبلي. لذلك ، نريد أن تجري اللعبة في حقل محدود مكون من 64 * 64 خلية. تتبع القاعدة التالية من هنا: يجب أن تكون أي شخصية في اللعبة ضمن هذا الحقل. كل حرف لديه الإحداثيات التي تحدد موقعه على الخريطة. للتأكد من وجود الحرف داخل الحقل ، يجب عليك التحقق مما إذا كان الحرف قد تجاوز أي من الجوانب الأربعة للحقل. الآن يمكننا كتابة الكود الكاذب (أو الكود على الفور ، إذا كنا نعرف بعض لغة البرمجة جيدًا بما يكفي):

نتيجةً لذلك ، من جملة واحدة: "يجب أن تكون أي شخصية في اللعبة ضمن الحقل 64 * 64" - تم إيقاف أربعة فروع ، كل منها سيتألف من مشغل واحد.

إن أصعب وأهم شيء في المرحلة الأولى من تدريس البرمجة هو تعلم كيفية ترجمة الأفكار من اللغة البشرية إلى لغات البرمجة (الأدوات الرئيسية التي ناقشناها في الدرس الأخير).

خرائط (blockschemes)

المخطط الانسيابي هو تمثيل رسومي للبرنامج.

مخططات انسيابية مبنية من كتل فردية. علاوة على ذلك ، يتم توضيح وسائل مختلفة من لغات البرمجة في كتل مختلفة على الرسوم البيانية كتلة. على سبيل المثال ، للشرط الذي تم بناء الفرع على أساسه ، يتم عرض المعين. ويمثل المشغل الذي تتم فيه معالجة المعلومات بواسطة مستطيل. دعنا نناقش الكتل المختلفة بمزيد من التفصيل.

أي برنامج له بداية ونهاية. في المخططات الانسيابية ، تتم الإشارة إلى بداية البرامج ونهايتها بواسطة مستطيلات ذات زوايا مستديرة. داخل هذه المستطيلات مكتوبة الكلمات: "ابدأ" ، "نهاية".

يتم تمييز نوعين من العوامل في المخططات الانسيابية: مشغلي معالجة البيانات ومشغلي الإدخال / الإخراج.

يتم تمثيل وحدة معالجة البيانات بواسطة مستطيل. في مشغل معالجة البيانات ، تتم الحسابات المختلفة (الجمع والطرح والقسمة وضرب الأرقام). دعنا ننظر إلى برنامج بسيط مع ثلاثة مشغلين:

كما ترون ، يتم توصيل الكتل بواسطة خطوط مع السهام. الأسهم تشير إلى تسلسل الكتل.

النوع الثاني من العوامل في الرسوم البيانية للكتل هو كتل إدخال / إخراج البيانات. تم تعيينهم على شكل رباعيات مع جوانب مشطوفة. في هذه الكتل ، تكون البيانات هي الإدخال / الإخراج: طباعة البيانات على الشاشة ، والحصول على إحداثيات مؤشر الماوس ، وتلقي مفاتيح لوحة المفاتيح التي ضغط عليها المستخدم:

في الصورتين السابقتين ، نرى التنفيذ المتسلسل للبيانات. الآن دعونا نرى كيف يتم عرض الفروع في المخططات الانسيابية. لإنشاء فروع في مخططات كتلة ، يتم استخدام كتلة شرط ، والتي يشار إليها بواسطة المعين:

إذا تم استيفاء الحالة المسجلة في المعين ، فسيتم تنفيذ الكود على طول خط نعم ، وإذا لم يكن مستوفياً ، يتم تنفيذ الفرع بلا.

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

من الممكن أيضًا إنشاء فروع بفرع واحد. في المخططات الانسيابية ، سيبدو كما يلي:

لاحظ أنه ليس من الضروري رسم خطوط إلى اليسار وإلى يمين كتلة الشرط ، بل يمكن أيضًا من الأسفل. في هذه الحالة ، يجب ترك فرعين فقط كتلة الفرع: أحدهما يفي بالشرط ، والآخر لا يفي بالشرط.

في نفس الصورة ، عرضت شيئين جديدين: علامات الحذف والدوائر.

يتم استخدام علامة القطع للإشارة إلى أن العديد من العوامل مفقودة في هذه المرحلة.

تقول الدائرة إنها استمرار للرمز الذي تم تشغيله في مكان آخر ، أو أن الرمز سوف يستمر في مكان آخر. تكون الدوائر مفيدة بشكل خاص عند رسم مخططات الكتلة على الورق. باستخدام الدوائر ، يمكنك كسر الشفرة إذا لم يكن البرنامج في صفحة واحدة.

إذا كنت بحاجة إلى كسر الشفرة بعدة فروع ، فسيتم ترقيم الدوائر.

يتم استخدام الكتلة التالية للإشارة إلى دورات في المخططات كتلة:

داخل البنتاغون ، تتم كتابة شرط استمرار الدورة. إذا تم استيفاء الشرط ، فسيتم أيضًا تنفيذ رمز الحلقة. لاحظ أن رمز الحلقة يعود دائمًا إلى بداية الحلقة. إذا لم يتم استيفاء الشرط ، يتم تنفيذ العبارة التالية بعد الحلقة.

والآن ، لنرى كيف سيبدو الشكل التوضيحي للكتلة للبرنامج ، الكود الكاذب الذي درسناه أعلاه:

لقد قمت بتحسين البرنامج قليلا. هنا ، لا يتم فحص إحداثيات وحدة واحدة فقط ، ولكن يتم التحقق من إحداثيات جميع وحدات اللعبة. يتم تخزين الوحدات نفسها في مجموعة الوحدات. هناك عشرين وحدة في اللعبة. للتحقق من إحداثيات جميع الوحدات ، استخدم المتغير الحالي (الحالي - الحالي ، اقرأ كـ karrent). لا يتم عرض شيئين في الصورة: كيفية زيادة التيار المتغير والتحقق من x و y للتحقق من الوحدة الحالية.

يجب أن تحدث الزيادة في التيار بعد كل الفروع ، ولكن قبل عودة المعالج إلى بداية الدورة. فاتني هذه اللحظة عندما كنت أرسم صورة (والآن أنا أحجم عن تصحيحها).

استنتاج

هنا ، بشكل عام ، وكل ذلك وفقًا للرمز الزائف ومخططات انسيابية. فاتني بعض النقاط ، وآمل أن أضيف بعد ذلك.

أهم شيء يجب أن تتعلمه: كلاً من الكود الزائف ومخططات انسيابية هي أدوات مساعدة لإنشاء البرامج. استخدامك أو عدم استخدامه أمر متروك لك - لسنا في المدرسة. من الممكن أن يساعدك إنشاء رمز pseudocode وبناء المخططات الانسيابية على فهم البرامج الأولى. لكن عليك أن تفعل ذلك بنفسك ، في دروسي ، لا أستخدم أحدهما أو الآخر.

خيارات الكود الكاذب الأخرى

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

على عكس لغات البرمجة ، لا يتم وضع معايير لغوية الكود الزائف ، ويمكن لمؤلف كل منشور استخدام الكود الزائف الأصلي. في الممارسة العملية ، يستعير المؤلفون عادةً التركيبات التي يحتاجونها من واحدة أو أكثر من لغات البرمجة المعروفة والمشتركة. في الوقت الحاضر ، يتم عادةً استعارة عناصر بناء جملة لغات مثل Pascal و C و Java ، وغالبًا ما يتم استخدام Algol في المنشورات القديمة.

يتم استبعاد العناصر الفنية من الشفرة الزائفة ، مثل وصف المتغيرات والرمز المعتمد على النظام وتخصيص الذاكرة وعمليات إلغاء تخصيصها ، ما لم تكن عناصر أساسية في الخوارزمية قيد النظر. غالبًا ما يتم تضمين التعبيرات الرياضية في الكود الكاذب بالشكل الذي تتم كتابته عادةً في الرياضيات وليس في لغات البرمجة ، وقد تكون بعض أجزاء الكود الكاذب عبارة عن عبارات بلغة طبيعية (الروسية والإنجليزية وغيرها).

خيارات الكود الكاذب الأخرى

في بعض الحالات ، تكون الكود الزائف عبارة عن نظام لتعليمات آلة تجريدية ، على سبيل المثال ، كود P ، كود زائف لجهاز MIX خيالي ، إلخ. وأطلقت في برنامج المحاكي لهذه الآلة الافتراضية.

شاهد الفيديو: متى تشتري و تبيع العملة تحليل المبيان في منصات تداول خط مقاومة خط دعم MACD (شهر فبراير 2020).