مخطط الكتلة عبر الإنترنت: كيفية تقديم المعلومات بشكل هيكلي. مخططات تدفق الخوارزمية

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

من السهل جدًا رسم الخوارزميات في Pencil. لهذا هناك مكتبة مخصصة للأوليات مع اللبنات الأساسية والموصلات. تبدو هكذا:

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

إذا قمت بالمرور فوق كتلة ما وقمت بالنقر فوق الماوس مرة واحدة ، فسيكون هناك وضع لتغيير حجم الكتلة والسحب. إذا نقرت مرة ثانية ، يمكن تدوير الكتلة (ستظهر نقاط حمراء مستديرة عند الحواف).

تتوفر الميزات الأساسية الأساسية ، كما هو الحال في Visio تقريبًا: يمكن تجميع الكتل وسحبها ونسخها ووضعها فوق أو أسفل في طبقات ، ويمكن أن تتمركز الموصلات مغناطيسيًا ، إلخ.

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

2.1 تطوير الخوارزمية.

الخوارزمية- هو - هي

أ. وصف لتسلسل الإجراءات لحل مشكلة أو تحقيق هدف ؛

ب. قواعد أداء عمليات معالجة البيانات الأساسية ؛

ج. وصف العمليات الحسابية بالصيغ الرياضية.

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

من الناحية العملية ، تعد الأشكال التالية لعرض الخوارزميات أكثر شيوعًا:

اللفظية (تسجيلات اللغة الطبيعية) ؛

رسوم بيانية (صور من رموز بيانية) ؛

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

البرمجة (نصوص بلغات البرمجة).

الطريقة اللفظية لكتابة الخوارزميات هي وصف للمراحل المتسلسلة لمعالجة البيانات. تم تعيين الخوارزمية في شكل حر بلغة طبيعية.

مثال. اكتب الخوارزمية لإيجاد القاسم المشترك الأكبر (GCD) لرقمين طبيعيين.

يمكن أن تكون الخوارزمية على النحو التالي:

1. ضبط رقمين ؛

2. إذا كانت الأرقام متساوية ، فخذ أيًا منها كإجابة وتوقف ، وإلا استمر في الخوارزمية ؛

3. تحديد أكبر من الأرقام.

4. استبدل الرقم الأكبر بالفرق بين الرقمين الأكبر والأصغر ؛

5. كرر الخوارزمية من الخطوة 2.

الخوارزمية الموصوفة قابلة للتطبيق على أي أعداد طبيعية ويجب أن تؤدي إلى حل المشكلة. انظر بنفسك باستخدام هذه الخوارزمية لتحديد القاسم المشترك الأكبر بين 125 و 75.

الطريقة اللفظية غير منتشرة للأسباب التالية:

لم يتم صياغة هذه الأوصاف بشكل صارم ؛

يعاني من الإسهاب في السجلات ؛

أنها تسمح بالغموض في تفسير الوصفات الفردية.

تعد الطريقة الرسومية لعرض الخوارزميات أكثر إحكاما ووضوحًا مقارنة بالطريقة اللفظية.

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

هذا التمثيل الرسومي يسمى مخطط انسيابي أو مخطط انسيابي.

الكود الكاذب هو نظام تدوين وقواعد مصمم لتسجيل الخوارزميات باستمرار.

تحتل مكانة وسيطة بين اللغات الطبيعية والرسمية.

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

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

2.2 مخطط كتلة.

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

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

فيما يلي الرموز الأكثر استخدامًا.

اسم الرمز تعيين ومثال التعبئة تفسير
معالجة العمل الحسابي أو تسلسل الإجراءات
المحلول التحقق من الشروط
تعديل بداية الدورة
عملية محددة مسبقا الحسابات بالروتين الفرعي القياسي
إخراج الإدخال عام I / O
بدء توقف البداية ، ونهاية الخوارزمية ، والدخول والخروج إلى روتين فرعي
وثيقة نتائج الطباعة

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

يتم استخدام كتلة "القرار" للإشارة إلى انتقالات التحكم الشرطي. يجب أن تشير كل كتلة "حل" إلى السؤال أو الحالة أو المقارنة التي تحددها.

يتم استخدام كتلة "التعديل" لتنظيم الهياكل الدورية. (كلمة التعديل تعني التعديل ، التحويل). تتم كتابة معلمة الحلقة داخل الكتلة ، والتي يتم تحديد قيمتها الأولية وشرط الحدود وخطوة تغيير قيمة المعلمة لكل تكرار.

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

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



أين ص = (أ + ب + ج) / 2.
المحلول. دعونا نقدم التدوينثم h a = t / a، h b = t / b، h c = ر / ج. يجب أن يحتوي المخطط الانسيابي على start ، و input a ، و b ، و c ، و p ، و t ، و hأ ، ح ب ، ح ج وإخراج النتائج والتوقف.

2.3 هياكل الخوارزمية.

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

يمكن تمثيل البنية المنطقية لأي خوارزمية من خلال مجموعة من ثلاثة هياكل أساسية: التالية ، المتفرعة ، والحلقة.

تتميز الهياكل الأساسية بوجود مدخل واحد ومخرج واحد.

1. الهيكل الأساسي يتبع.يتكون من سلسلة من الإجراءات التي تتبع واحدًا تلو الآخر:

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

بنية المتفرعةيوجد في أربعة أنواع رئيسية:

إذا-ثم-خلاف ذلك ؛

الاختيار مختلف.

1) if-then if الشرط ثم الإجراء ينتهي إذا 2) إذا - ثم - وإلا إذا كان الشرط ثم الإجراء 1 وإلا سينتهي الإجراء 2 إذا 3) التحديد تحت الشرط 1: الإجراء 1 تحت الشرط 2: الإجراء 2. ... ... ... ... ... ... ... ... ... ... ... تحت الشرط N: الإجراءات N نهاية الاختيار 4) الاختيار - خلاف ذلك الاختيار بموجب الشرط 1: الإجراء 1 بموجب الشرط 2: الإجراء 2. ... ... ... ... ... ... ... ... ... ... ... إذا كان الشرط N: الإجراءات N وإلا الإجراءات N + 1 في نهاية الاختيار

مثال. ارسم مخطط انسيابي لخوارزمية حساب الوظيفة

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

توجد بنية الحلقة في ثلاثة متغيرات رئيسية:

نوع الحلقة ل.

يوجه لتنفيذ جسم الحلقة لجميع قيم بعض المتغيرات (معلمة حلقة) في النطاق المحدد.

نوع الحلقة وداعا.

يوجه لتنفيذ نص الحلقة طالما تم استيفاء الشرط المكتوب بعد الكلمة حتى الآن.

نوع الحلقة افعل اثناء.

يوجه لتنفيذ نص الحلقة طالما تم استيفاء الشرط المكتوب بعد الكلمة حتى الآن. يتم فحص الحالة بعد تنفيذ جسم الحلقة.

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

حلقة لـ i من i1 إلى i2 ، الخطوة i3 جسم الحلقة (تسلسل الإجراءات) نهاية الحلقة loop while condition loop body (تسلسل الإجراءات) نهاية الحلقة حلقة تفعل جسم الحلقة (تسلسل الإجراءات) بينما الشرط هو نهاية الحلقة

بدقة معينة (بالنسبة لسلسلة طاقة متناوبة معينة ، سيتم تحقيق الدقة المطلوبة عندما يصبح المصطلح التالي أقل في القيمة المطلقة).

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

عند تجميع الخوارزمية ، من الضروري مراعاة أن إشارات المصطلحات تتناوب وتزداد درجة الرقم x في بسط المصطلحات.

حل هذه المشكلة "وجهاً لوجه" عن طريق الحساب في كل خطوة من الدرجة الأولى من المجموع الجزئي

S: = S + (- 1) ** (i-1) * x ** i / i ،

نحصل على خوارزمية غير فعالة تتطلب الكثير من العمليات. من الأفضل بكثير تنظيم العمليات الحسابية على النحو التالي: إذا أشرنا إلى بسط أي مصطلح بالحرف p ، فسيكون للمصطلح التالي البسط -p * x (تضمن علامة الطرح تبديل علامة المصطلحات) ، والمصطلح م نفسه

سيكون مساويًا لـ p / i ، حيث i هو رقم المصطلح.

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

حلقات متداخلة.

هناك حالات يكون فيها من الضروري تكرار سلسلة معينة من العبارات داخل جسم الحلقة ، أي لتنظيم الحلقة الداخلية. تسمى هذه البنية حلقة داخل حلقة أو حلقات متداخلة. يمكن أن يختلف عمق تداخل الحلقات (أي عدد الحلقات المتداخلة).

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

مثالحلقات متداخلة لـ. احسب مجموع عناصر المصفوفة المعطاة A (5.3).

مثالحلقات متداخلة حتى الآن. احسب حاصل ضرب تلك العناصر من المصفوفة A (10،10) ، والتي تقع عند تقاطع الصفوف الزوجية وحتى الأعمدة.

العناصر الرئيسية لمخطط الكتلة. أنواع المخططات القُطرية.

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

تمثيل المخطط الانسيابي لخوارزمية البرنامج له عيبان:

يقترح مستوى منخفض جدًا من التفاصيل ، والذي غالبًا ما يخفي جوهر الخوارزميات المعقدة

ويسمح لك باستخدام ليس تركيبيطرق نقل التحكم (goto) ، وغالبًا ما تبدو أبسط على مخطط الخوارزمية من تلك الهيكلية المكافئة.

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

يتوافق كل رمز Flow Shape مع بنية تحكم ويتم عرضه كمستطيل. لإثبات تداخل الهياكل ، يتناسب رمز التدفق مع المنطقة المقابلة من مستطيل أي رمز آخر. يوضح الشكل A1 رموز شكل التدفق المقابلة لهياكل التحكم الرئيسية والإضافية.

<Действие>
أ)
ب)
الخامس)
ز)
ه)

الشكل أ 2 - رموز مخططات ناسي شنايدرمان للبنى الأساسية:

أ - التالية ؛ ب - المتفرعة в - الاختيار ؛ د - دورة وداعا. د - دورة إلى

يتمثل الاختلاف الرئيسي بين مخططات Nassi-Shneiderman و Flow-Forms في أن منطقة تعيين الشروط وخيارات التفرع يتم تصويرها في شكل مثلثات (الشكل A2). يوفر هذا التعيين وضوحًا أكبر في عرض الخوارزمية.

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

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

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

اعتمادًا على تسلسل تنفيذ الإجراءات في الخوارزمية ، يتم تمييز الخوارزميات:

خطي،

متفرعة

· وهيكل دوري.

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

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

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

الحلقة التكرارية هي حلقة ، لم يتم تحديد عدد مرات التكرار لها ، ولكن يتم تحديدها أثناء تنفيذ الحلقة. في هذه الحالة ، يسمى التكرار الواحد للحلقة التكرار.

لذلك: مع كل الخوارزميات المتنوعة لحل المشكلات ، يمكن تمييز ثلاثة أنواع رئيسية من العمليات الحسابية فيها:

· خطي,

· متشعب

· و دورية,

لتنفيذ التي تستخدم هياكل التحكم الأساسية المقابلة في البرامج:

· التالية,

· المتفرعة,

· دورة وداعا.

بالإضافة إلى لغات البرمجة الإجرائية الأساسية عالية المستوى ، تستخدم ثلاثة تراكيب أخرى (الهياكل) ، والتي يمكن تنفيذها بسهولة من خلال الأساسيات:

· خيار,

· دورة المتابعة,

· حلقة مع عدد معين من التكرارات.

تم استخدام التصاميم الستة المدرجة كأساس برمجة منظمة... تؤكد كلمة "هيكلي" في العنوان على حقيقة أن التركيبات المذكورة أعلاه فقط هي المستخدمة في البرمجة. ومن هنا جاء مفهوم "البرمجة بدون الذهاب إلى". تسمى البرامج المكتوبة باستخدام مشغلي التحكم المنظم فقط منظم , للتأكيد على اختلافها عن البرامج في التنفيذ التي استخدمت فيها طرق منخفضة المستوى لنقل السيطرة.

يتم تنفيذ الخوارزمية المطورة على شكل أكواد برنامج ( البرامج) بإحدى لغات البرمجة.

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

السرية ، الطابع الجماعي ، التحديد ، الفعالية ، شكلي.

التكتم(عدم الاستمرارية) هي خاصية لخوارزمية تميز هيكلها: كل خوارزمية تتكون من إجراءات كاملة منفصلة ، كما يقولون ، "مقسمة إلى خطوات".

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

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

فعالية- الخاصية التي يجب أن تكملها أي خوارزمية بعدد محدود (قد يكون كبيرًا جدًا) من الخطوات. الشكليات - تشير هذه الخاصية إلى أن أي مؤدٍ قادر على إدراك وتنفيذ تعليمات الخوارزمية ، يتصرف بشكل رسمي ، أي يصرف الانتباه عن محتوى المهمة ويتبع التعليمات بدقة فقط. أن يجادل "ماذا وكيف ولماذا؟" يجب على مطور الخوارزمية ، والمنفذ رسميًا (بدون تفكير) ينفذ الأوامر المقترحة بالتناوب ويحصل على النتيجة المطلوبة.

1.2.طرق وصف (أنواع) الخوارزميات.

ضع في اعتبارك الطرق التالية لوصف الخوارزمية: لفظي الوصف ، الكود الكاذب ، مخطط الكتلة ، البرنامج.

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

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

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

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

برنامج- وصف بنية الخوارزمية بلغة البرمجة الخوارزمية.

لقد أثبت تحديد الخوارزميات باستخدام المخططات الانسيابية أنه وسيلة مريحة للغاية لتصوير الخوارزميات وانتشر على نطاق واسع.

مخطط كتلة الخوارزمية - تمثيل رسومي للخوارزمية في شكل مترابط عن طريق الأسهم (خطوط الانتقال) و كتل- الرموز الرسومية ، كل منها يتوافق مع خطوة واحدة من الخوارزمية. يتم إعطاء وصف للإجراء المقابل داخل الكتلة.

يعرض الجدول الرموز الأكثر استخدامًا.

اسم الرمز

تعيين ومثال التعبئة

تفسير

العمل الحسابي أو تسلسل الإجراءات

التحقق من الشروط

تعديل

بداية الدورة

عملية محددة مسبقا

الحسابات بالروتين الفرعي القياسي

إخراج الإدخال

عام I / O

بدء توقف

البداية ، ونهاية الخوارزمية ، والدخول والخروج إلى روتين فرعي

وثيقة

مخرجات النتائج

رموز مخطط انسيابي

منع " معالجة»تستخدم للإشارة إلى إجراء أو سلسلة من الإجراءات التي تغير معنى أو شكل عرض أو وضع البيانات. لتحسين وضوح المخطط ، يمكن دمج عدة كتل معالجة منفصلة في كتلة واحدة. تمثيل العمليات الفردية مجاني إلى حد ما.

منع " المحلول"يستخدم للإشارة إلى انتقالات التحكم الشرطي. يجب أن يشير كل "حل" كتلة إلى السؤال أو الشرط أو المقارنة التي تحددها.

منع " تعديل»يستخدم لتنظيم الهياكل الحلقية. (كلمة "تعديل" تعني "تعديل ، تحويل"). تتم كتابة معلمة الحلقة داخل الكتلة ، والتي يتم تحديد قيمتها الأولية وشرط الحدود وخطوة تغيير قيمة المعلمة لكل تكرار.

منع " عملية محددة مسبقا»يستخدم للإشارة إلى الاستدعاءات للخوارزميات المساعدة الموجودة بشكل مستقل في شكل بعض الوحدات المستقلة ، وللمكالمات إلى إجراءات المكتبة.

كمثال ، نقدم مخططات الكتلة للخوارزمية للعثور على أقصى قيمتين:

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

ما هي الخوارزمية؟

ابتدع هذه الكلمة عالم الرياضيات محمد الخوارزمي الذي عاش في الفترة 763-850. إنه الشخص الذي أنشأ قواعد إجراء العمليات الحسابية (وهناك أربعة منهم). وهنا GOST من عام 1974 ، والتي تنص على ما يلي:

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

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

ميزات الخوارزمية

في المجموع ، يمكن تمييز ثماني ميزات للخوارزمية (بغض النظر عن نوعها):

  1. هناك وظيفة لإدخال البيانات الأولية.
  2. هناك استنتاج لبعض النتائج بعد الانتهاء من الخوارزمية. يجب أن نتذكر أن هناك حاجة إلى خوارزمية من أجل تحقيق هدف معين ، وهو الحصول على نتيجة مرتبطة مباشرة بالبيانات الأصلية.
  3. يجب أن تحتوي الخوارزمية على هيكل نوع منفصل. يجب تقديمه في خطوات متسلسلة. علاوة على ذلك ، لا يمكن أن تبدأ كل خطوة تالية إلا بعد الانتهاء من الخطوة السابقة.
  4. يجب أن تكون الخوارزمية لا لبس فيها. يتم تحديد كل خطوة بوضوح ولا تسمح بالتفسير التعسفي.
  5. يجب أن تكون الخوارزمية محدودة - من الضروري تنفيذها في عدد محدد بدقة من الخطوات.
  6. يجب أن تكون الخوارزمية صحيحة - لتعيين حل صحيح للغاية للمشكلة.
  7. القواسم المشتركة (أو الشدة) - يجب أن تعمل مع بيانات المصدر المختلفة.
  8. يجب أن يكون الوقت الممنوح لحل الخوارزمية في حده الأدنى. هذا يحدد فعالية حل المشكلة.

والآن ، بمعرفة المخططات الكتل للخوارزميات ، يمكنك البدء في التفكير في طرق لكتابتها. ولا يوجد الكثير منهم.

التدوين اللفظي

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

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

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

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

تسجيل رسومي

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

الكتابة بلغات البرمجة

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

مخططات الكتلة

مخطط الكتلة هو تمثيل رسومي للخوارزمية. يتم تمثيل جميع الأوامر والإجراءات بأشكال هندسية (كتل). يتم إدخال كافة المعلومات حول الإجراءات التي يتعين القيام بها داخل كل شكل. تظهر الروابط كخطوط عادية مع أسهم (إذا لزم الأمر).

يوجد GOST 19.701-90 لتسجيل المخططات الكتل للخوارزميات. يصف الإجراء والقواعد الخاصة بإنشائها في شكل رسومي ، وكذلك الطرق الرئيسية لحلها. توضح هذه المقالة العناصر الرئيسية للمخططات الانسيابية المستخدمة في حل المشكلات ، على سبيل المثال ، في علوم الكمبيوتر. الآن دعونا نلقي نظرة على قواعد البناء.

القواعد الأساسية لرسم مخطط انسيابي

يمكنك تمييز الميزات التالية التي يجب أن تكون في أي مخطط كتلة:

  1. يجب أن يكون هناك كتلتان - "البداية" و "النهاية". وفي نسخة واحدة.
  2. يجب رسم خطوط الاتصال من الكتلة الأولية إلى الكتلة النهائية.
  3. يجب أن تحتوي جميع الكتل ، باستثناء الكتلة الأخيرة ، على خطوط تدفق.
  4. يجب أن يكون ترقيم جميع الكتل موجودًا: من الأعلى إلى الأسفل ، من اليسار إلى اليمين. يجب لصق الرقم التسلسلي في الزاوية اليسرى العليا ، مما يؤدي إلى انقطاع في النمط.
  5. يجب أن تكون جميع الكتل متصلة ببعضها البعض بواسطة خطوط. يجب عليهم تحديد التسلسل الذي يتم تنفيذ الإجراءات به. إذا تحرك التدفق من أسفل إلى أعلى أو من اليمين إلى اليسار (بمعنى آخر ، بترتيب عكسي) ، فمن المؤكد أنه سيتم رسم الأسهم.
  6. تنقسم الخطوط إلى الصادرة والواردة. وتجدر الإشارة إلى أن أحد الخطوط صادر لكتلة واحدة ووارد لكتلة أخرى.
  7. من الكتلة الأولية في الرسم التخطيطي ، يترك خط التدفق فقط ، لأنه الأول.
  8. لكن الكتلة النهائية لها مدخل فقط. يظهر هذا بوضوح في أمثلة المخططات الانسيابية المتوفرة في المقالة.
  9. لتسهيل قراءة المخططات الانسيابية ، يتم رسم الخطوط الواردة في الأعلى ، والخطوط الصادرة في الأسفل.
  10. يُسمح بالانقطاعات في خطوط التدفق. يتم تمييزها بالضرورة بوصلات خاصة.
  11. لتسهيل المخطط الانسيابي ، يُسمح بكتابة جميع المعلومات في التعليقات.

يتم عرض العناصر الرسومية لمخططات الكتلة لحل الخوارزميات في الجدول:

النوع الخطي للخوارزميات

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

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

خوارزميات التشعب

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

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

  1. "تجاوز" - في هذه الحالة ، لا يوجد عامل تشغيل لأحد الفروع. بمعنى آخر ، فإنه يتجاوز إجراءات متعددة في فرع آخر.
  2. "التشعب" - لكل فرع مجموعة محددة من الإجراءات التي يتعين القيام بها.
  3. "الاختيار من متعدد" هو مفترق به عدة فروع ويحتوي كل منها على مجموعة محددة من الإجراءات التي يتعين القيام بها. علاوة على ذلك ، هناك خصوصية واحدة - اختيار الاتجاه يعتمد بشكل مباشر على قيم التعبيرات المدرجة في الخوارزمية.

هذه خوارزميات بسيطة يسهل حلها. الآن دعنا ننتقل إلى أكثرها تعقيدًا.

خوارزمية دورية

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

  1. من أجلها يُعرف عدد مرات تكرار الإجراءات (يُطلق عليها أيضًا دورات مع عداد).
  2. التي عدد مرات التكرار غير معروف - بشرط لاحق وشرط مسبق.

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

حلقات مع عدادات

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

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

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

عادةً ما يستخدم تدوين المخطط الانسيابي كتلة تسمى "التحضير". يتم كتابة عداد فيه ، ثم يشار إلى البيانات التالية: القيم الأولية والنهائية ، خطوة التغيير. في مخطط الكتلة ، هذه هي المعلمات I n و Ik و h على التوالي. في الحالة التي يكون فيها h = 1 ، لا يتم تسجيل حجم الخطوة. في حالات أخرى ، هذا إلزامي. من الضروري الالتزام بقاعدة بسيطة - يجب أن يدخل خط التدفق من الأعلى. ويجب أن يوضح خط التدفق الذي يخرج من الأسفل (أو إلى اليمين ، اعتمادًا على الخوارزمية المحددة) الانتقال إلى المشغل التالي.

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

  1. لا يسمح للجسم بتغيير (بقوة) قيمة العداد.
  2. يحظر نقل التحكم من الخارج إلى مشغل الجسم. بمعنى آخر ، لا يمكنك دخول الدورة إلا من البداية.

حلقات بشروط مسبقة

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

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

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

يوجد أدناه مخطط انسيابي يصف كل هذه الخطوات:

ما هي حلقة ما بعد الشرط؟

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

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

دورات معقدة

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

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

أو مثال من علم الأحياء لحل المشكلة:

حل المشكلات باستخدام المخططات الانسيابية

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

في هذه الحالة ، يقوم المستخدم بإدخال قيم المتغيرات بشكل مستقل. لنفترض أن x = 16 و y = 2. هذه العملية هي على النحو التالي:

  1. تم إدخال قيمتي x و y.
  2. يتم تنفيذ عملية التحويل: x = √16 = 4.
  3. تم استيفاء الشرط: ص = ص 2 = 4.
  4. يتم الحساب: س = (س + 1) = (4 + 1) = 5.
  5. ثم يتم حساب المتغير التالي: y = (y + x) = (5 + 4) = 9.
  6. يتم عرض الحل: y = 9.

يوضح هذا المثال لمخطط انسيابي لعلوم الكمبيوتر بوضوح كيف يتم حل الخوارزمية. من الضروري الانتباه إلى حقيقة أن قيم x و y قد تم تعيينها في المرحلة الأولية ويمكن أن تكون كذلك.