مخطط ناسي-شنايدرمان

مثال على مخطط ناسي - شنايدرمان

مخطط ناسي - شنايدرمان (NSD) في برمجة الحاسوب هو تمثيل تصميمي رسومي للبرمجة الهيكلية . [ 1 ] طُوّر هذا النوع من المخططات عام 1972 على يد إسحاق ناسي وبن شنايدرمان ، وكلاهما كانا طالبين في الدراسات العليا بجامعة ستوني بروك . [ 2 ] تُسمى هذه المخططات أيضًا بالمخططات الهيكلية ، [ 3 ] لأنها تُظهر هياكل البرنامج.

ملخص

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

نادرًا ما تُستخدم مخططات ناسي - شنايدرمان في البرمجة الرسمية. فمستوى تجريدها قريب من مستوى شيفرة البرامج المهيكلة، وتتطلب التعديلات إعادة رسم المخطط بالكامل، إلا أن برامج تحرير الرسومات أزالت هذا القيد. تُوضّح هذه المخططات الخوارزميات والتصاميم عالية المستوى، مما يجعلها مفيدة في التدريس. وقد أُدرجت في برنامج مايكروسوفت فيزيو وعشرات البرامج الأخرى، مثل برنامج EasyCODE الألماني. [ 4 ]

في ألمانيا، تم توحيد مخططات ناسي - شنايدرمان في عام 1985 تحت مسمى DIN 66261. [ 5 ] ولا تزال تُستخدم في الكتب الألمانية التمهيدية للبرمجة، على سبيل المثال مقدمة بوتشر وكنيسل للغة C، [ 6 ] ومقدمة بيومل-كورت وشميدت للغة C [ 7 ] ومقدمة كيرش للغة C#. [ 8 ]

يمكن أيضًا استخدام مخططات ناسي – شنايدرمان في الكتابة التقنية . [ 9 ]

الرسوم البيانية

وحدات المعالجة: تمثل وحدة المعالجة أبسط الخطوات ولا تتطلب أي تحليل. عند الوصول إلى وحدة معالجة، يتم تنفيذ الإجراء الموجود داخلها، ثم ننتقل إلى الوحدة التالية.

كتل المعالجة

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

كتل التفرع الصواب/الخطأ

النوع الثاني من كتل التفرع هو كتلة التفرع المتعدد. تُستخدم هذه الكتلة عند الحاجة إلى تحديد حالة في البرنامج. تحتوي الكتلة عادةً على سؤال أو تحديد حالة. تُزوّد ​​الكتلة البرنامج بمصفوفة من الخيارات، وغالبًا ما تُستخدم بالتزامن مع كتل العمليات الفرعية لتوفير المساحة.

كتل تفرع متعددة

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

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

اختبر كتلة الحلقة الأولى

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

اختبار كتلة الحلقة الأخيرة

يمكن رسم التنفيذ المتوازي على النحو التالي:

المعالجة المتوازية

انظر أيضاً

المنشورات

مراجع

  1. هانز-جورج فيل (2009). التصور لأنظمة المعلومات الدلالية . ص 32
  2. نبذة تاريخية عن المخططات الانسيابية المنظمة (مخططات ناسي-شنايدرمان) . مسودة ويب دوك: 27 مايو 2003. ( المصدر )
  3. رولف إيزرمان (1988). التحكم الآلي: أوراق مختارة من المؤتمر العالمي الذي يُعقد كل ثلاث سنوات للاتحاد الدولي للتحكم الآلي  : ميونيخ، جمهورية ألمانيا الاتحادية، 27-31 يوليو 1987، المجلد 10؛ المجلد 14. ص 89
  4. "التنفيذ باستخدام مخططات الهيكل" . شركة EASYCODE GmbH . تم الاطلاع عليه بتاريخ 2023-02-07 .
  5. ^ المعهد الألماني للنورمونج إي. V. (DIN): DIN 66261: Informationsverarbeitung؛ Sinnbilder für Struktogramme nach Nassi-Shneiderman .
  6. ^ بوتشر ، أكسل. كنايسل، فرانز: المعلوماتية للهندسة: Grundlagen und Programmierung in C. الطبعة الثالثة. ميونيخ: أولدنبورغ، 2012. ISBN 978-3-486-70527-0انظر بشكل خاص الفصل 10: "Kontrollstrukturen" (تدفق التحكم).
  7. ^ بيوملي كورت، بيتر؛ شميدت، تورستن: الممارسة العملية في C. ميونيخ: أولدنبورغ، 2012. ISBN 978-3-486-70799-1انظر بشكل خاص الفصل 6: "Kontrollstrukturen" (تدفق التحكم).
  8. أولا كيرتش: تعلم لغة C# واحترافيتها . هايدلبرغ: ميتب، 2009. ISBN 978-3-8266-5915-7. انظر بشكل خاص الفصل الخامس: "Schleifen und Verzweigungen" (الحلقات والفروع).
  9. فايس، إدموند هـ.: "تصور إجراء باستخدام مخططات ناسي-شنايدرمان"، مجلة الكتابة التقنية والاتصالات ، المجلد 20، العدد 3 (1990): 237-54.