يتم استخدام عامل لعرض النتائج. تيربوباسكال

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

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

بيانات الإدخال الأول (تنسيقات البيان):

يقرأ(<Список ввода>);

Readln (<Список ввода>);

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

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

ملاحظة: البيانات المدخلة مفصولة بمسافات.

الفرق بين تشغيل الإجراءين Read و Readln (من سطر القراءة) هو كما يلي: بعد تنفيذ القراءة ، تتم قراءة قيمة البيانات التالية من نفس السطر ، وبعد تنفيذ Readln ، من سطر جديد.

لعرض المعلومات في باسكال ، يوجد أيضًا أمران:

يكتب(<Список вывода>);

ريتيلن (<Список вывода>);

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

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

فيما يلي مثال على استخدام عوامل الإدخال والإخراج:

واجهة البرنامج ؛

اكتب ("أدخل نصف قطر الدائرة") ؛ (الطباعة على الشاشة لطلب الإدخال)

readln (R) ؛ (إدخال قيمة في المتغير R من لوحة المفاتيح)

S: = 4 * ARCTAN (1) * SQR (R) ؛ (احسب مساحة الدائرة (pR2))

Writeln ("مساحة الدائرة بنصف قطر" ، R ، "تساوي" ، S)

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

مشغلي المدخلات والمخرجات

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

يتم تقسيم هذه الملفات إلى أسطر متغيرة الطول ، مفصولة عن بعضها البعض بواسطة فاصل سطر. يتم تعيين نهاية السطر بالضغط على المفتاح ENTER.

لإدخال البيانات الأولية ، يتم استخدام مشغلي إجراءات الإدخال:

قراءة (A1، A2، ... AK) ؛

ReadLn (A1، A2، ... AK) ؛

أولهم ينفذ قراءة قيم K للبيانات الأولية وتعيين هذه القيم للمتغيرات A1 ​​، A2 ، ... ، AK. يقوم العامل الثاني بتنفيذ قراءة قيم K للبيانات الأولية ، وتخطي القيم المتبقية حتى بداية السطر التالي ، وتعيين قيم القراءة إلى المتغيرات A1 ​​، A2 ، ... ، AK. يقوم العامل الثالث بتنفيذ تخطي خط بيانات الإدخال.

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

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

فار rV ، rS: حقيقي ؛

iW ، iJ: عدد صحيح ؛

................

قراءة (rV ، rS ، iW ، iJ) ؛

يمكن فصل قيم البيانات الأولية عن بعضها عن طريق المسافات والضغط على مفتاحي Tab ومفاتيح Enter.

لعرض نتائج البرنامج على الشاشة يتم استخدام العبارات التالية:

اكتب (A1، A2، ... AK) ؛

WriteLn (A1، A2، ... AK) ؛

يقوم أول هذه العوامل بتنفيذ إخراج قيم المتغيرات A1 ​​، A2 ، ... ، AK إلى خط الشاشة. يقوم العامل الثاني بتنفيذ إخراج قيم المتغيرات A1 ​​و A2 و ... و AK والانتقال إلى بداية السطر التالي. يقوم العامل الثالث بتنفيذ تخطي السطر والانتقال إلى بداية السطر التالي.

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

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

يتوافق شكل تمثيل القيم في حقل الإخراج مع نوع المتغيرات والتعبيرات: يتم إخراج قيم نوع العدد الصحيح كأرقام عشرية صحيحة ، ونوع حقيقي - كأرقام عشرية حقيقية بترتيب عشري ، ونوع حرف وسلسلة - مثل الرموز ، النوع المنطقي - كثوابت منطقية TRUE و FALSE.

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

. . . . . . . . . . . .

var rA، rB: حقيقي ؛ iP ، iQ: عدد صحيح ؛

bR ، bS: منطقي ؛ chT ، chV ، chU ، chW: Char ؛

. . . . . . . . . . . .

WriteLn (rA، rB: 10: 2) ؛

WriteLn (iP، iQ: 8) ؛

WriteLn (bR، bS: 8) ؛

WriteLn (chT، chV، chU، chW) ؛

العلامات. عامل القفز غير المشروط.

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

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

يمكن تسمية عامل واحد فقط بعلامة واحدة. يتم فصل التسمية عن العبارة المصنفة بعلامة النقطتين.

6: اكتب في (14/2) ؛

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

اذهب إلى<метка>;

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

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

عناصر البرمجة الهيكلية

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

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

يُطلق على البناء ، وهو التنفيذ المتسلسل لعمليتين أو أكثر ، ما يلي.

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

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

يمكن اعتبار التركيبات التالية والفرعية والحلقة عمليات ، نظرًا لأن لها مدخلًا واحدًا ومخرجًا واحدًا. يمكن تمثيل التسلسل التعسفي للعمليات كعملية واحدة.

يمكن تنفيذ العملية بواسطة أي عبارة PASCAL (بسيطة أو مركبة) أو بواسطة مجموعة من العبارات ، باستثناء بيان الانتقال GOTO.

في لغة PASCAL ، تم زيادة عدد الهياكل الأساسية إلى ستة ، وهي:

يتبع؛

المتفرعة.

حلقة مع شرط مسبق.

حلقة مع حالة لاحقة.

حلقة مع المعلمة ؛

عامل شرطي

أحد الهياكل الخوارزمية الرئيسية هو التفرع (البديل).

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

1. احصل على قيمة x.

2. إذا كانت x = 0 ، فأبلغ أن التعبير ليس له قيمة ، وإلا فاحسب y كـ 1 / x.

وبالتالي ، يتم استخدام الهيكل الحسابي أعلاه. يمكن التعبير عنها بكلمات بسيطة:

لو<усл.>(إذا تم استيفاء الشرط)

الذي - التي<действие 1>(ثم ​​نفذ الإجراء رقم 1)

خلاف ذلك<действие 2>(خلاف ذلك - تنفيذ الإجراء رقم 2)

كيف تكتبها في باسكال؟ نعم ، بالضبط نفس الشيء ، باللغة الإنجليزية فقط.

تنسيق المشغل الشرطي في باسكال:

لو<условие>

ثم<оператор 1>

آخر<оператор 2>;

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

متغير العامل الشرطي في هذه الحالة:

لو<условие>

ثم ابدأ<группа операторов 1>نهاية

ابدأ آخر< группа операторов 2>نهاية؛

لا يتم وضع علامة "الفاصلة المنقوطة" قبل كلمة خدمة Else ، ولكن يتم فصل العوامل في المجموعات بشكل طبيعي عن بعضها البعض بواسطة هذه العلامة.

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

في ظروف بسيطة ، يمكن استخدام علامات عمليات المقارنة:> (أكبر من) ،<(меньше), =(равно), <>(لا يساوي) ،> = (أكبر من أو يساوي) ،<=(меньше или равно).

أمثلة على الشروط البسيطة: A = 5 (قيمة المتغير A هي 5)

(C + D3)> = (D1 * (45-2)) (قيمة التعبير على الجانب الأيسر أكبر من أو تساوي قيمة التعبير على الجانب الأيمن)

س<>"ABC" (قيمة المتغير S لا تساوي ثابت السلسلة "ABC")

دعنا نعطي مثالاً لحل مشكلة أخرى: "من رقمين ، اختر الأكبر."

للوهلة الأولى ، الحل واضح ، لكنه ليس تافهًا كما يبدو.

مثال البرنامج ؛

فارا ، ب ، ج: ريال ؛ (أ ، ب - لتخزين الوسائط ، ج - النتيجة)

Writeln ("أدخل رقمين") ؛

ReadIn (أ ، ب) ؛ (أدخل وسيطات من لوحة المفاتيح)

إذا كان A> B ثم C: = A آخر C: = B ؛ (إذا كانت A> B ، فإن النتيجة هي A ، وإلا تكون النتيجة B)

ريتيلن (ج) ؛ (ضع النتيجة على الشاشة)

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

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

Var A، B، C، D، X1، X2: حقيقي ؛

Writeln ("أدخل معاملات المعادلة التربيعية") ؛

إذا كان د<0 Then Writeln ("Корней нет! ")

X1: = (- B + SQRT (D)) / 2 / A ؛

X2: = (- B-SQRT (D)) / 2 / A ؛

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

للتوضيح ، دعنا نحل مشكلة أخرى: "حل معادلة بالصيغة A * x ^ 2 + B * x + C = 0". من فضلك لا تخلط بين المعادلة التربيعية التي عرفنا أن المعامل أ لا يساوي صفرًا لها. هنا ، يمكن أن تكون المعاملات أي أرقام. بناءً على التفكير الرياضي الأولي ، نحصل على الخوارزمية التالية:

Var A، B، C، D، X، X1، X2: حقيقي ؛

Writeln ("أدخل معاملات المعادلة (أ ، ب ، ج)") ؛

إذا كانت C = 0 ثم Writeln ("X هي أي رقم")

Else Writeln ("بلا جذور!")

آخر X يبدأ: = - C / B ؛ Writeln ("X ="، X: 8: 3) End

إذا كان د<0 Then Writeln ("Корней нет! ")

X1: = (- B + SQRT (D)) / 2 / A ؛

X2: = (- B-SQRT (D)) / 2 / A ؛

اكتب ("X1 =" ، X1: 8: 3 ، "X2 =" ، X2: 8: 3)

دورة. أنواع الدورات.

الدورة هي تكرار متكرر لنفس النوع من العمل. سيطلق على جسم الدورة نفس الإجراءات التي يجب تكرارها عدة مرات.

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

دورة "وداعا"

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

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

في باسكال ، تتم كتابة بنية حلقة while كما يلي:

بينما<условие>يفعل<оператор>;

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

بينما<условие>يفعل

<оператор #1>;

<оператор #2>;

<оператор #3>;

دورة "إلى"

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

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

10. عوامل الإدخال والإخراج

ضع في اعتبارك تنظيم إدخال وإخراج البيانات من الجهاز

يحتشد. الجهاز الطرفي هو الجهاز الذي تستخدمه

المستخدم ، وعادة ما تكون شاشة (عرض) ولوحة مفاتيح.

تُستخدم إجراءات الإدخال القياسية لإدخال البيانات وإخراجها.

وإخراج القراءة والكتابة التشغيل على ملفات متسلسلة قياسية

المدخلات والمخرجات.

يتم تقسيم هذه الملفات إلى أسطر متغيرة الطول مفصولة بـ

من بعضها البعض بعلامة نهاية السطر ، ويتم تعيين نهاية السطر بالضغط على

لإدخال البيانات الأولية ، يتم استخدام مشغلي إجراءات الإدخال:

قراءة (A1، A2، ... AK) ؛

ReadLn (A1، A2، ... AK) ؛

أولهم ينفذ قراءة K لقيم البيانات الأولية وتعيين-

قياس هذه القيم للمتغيرات A1 ​​، A2 ، ... ، AK. المشغل الثاني

تنفذ قراءة قيم K للبيانات الأولية ، وتخطي القيم المتبقية

حتى بداية السطر التالي ، مع تعيين قيم القراءة لملف

متغير A1، A2، ...، AK. يقوم العامل الثالث بتنفيذ تخطي الخط باستخدام

ادخال البيانات.

عند إدخال البيانات الأولية ، فإن التحول من خارجي

يتشكل التمثيل في نموذج داخلي يحدده نوع المتغيرات. pe-

يمكن أن تنتمي المتغيرات التي تشكل قائمة الإدخال إما إلى عدد صحيح ،

إما الحقيقي أو أنواع الشخصيات. مصدر القراءة

البيانات المنطقية غير مسموح بها في PASCAL.

عوامل الإدخال عند قراءة القيم الصحيحة والمتغيرة

النوع الحقيقي يتخطى المسافات التي تسبق الرقم.

في الوقت نفسه ، لا يتخطى هؤلاء العاملون المسافات التي تسبق القيمة

متغيرات الحرف ، لأن المسافات متساوية

سلسلة الأحرف. مثال على كتابة بيانات الإدخال:

فار rV ، rS: حقيقي ؛

iW ، iJ: عدد صحيح ؛

................

قراءة (rV ، rS ، iW ، iJ) ؛

يمكن فصل قيم بيانات الإدخال عن بعضها بواسطة مسافات

والضغط على علامة التبويب وأدخل المفاتيح.

لعرض نتائج البرنامج على الشاشة ، استخدم

العاملين:

اكتب (A1، A2، ... AK) ؛

WriteLn (A1، A2، ... AK) ؛

يقوم أول هذه العوامل بتنفيذ إخراج قيم المتغيرات A1 ​​،

A2، ..، AK في سطر الشاشة .. العبارة الثانية تنفذ الإخراج

قيم المتغيرات A1 ​​، A2 ، ... ، AK والانتقال إلى بداية التالي

خطوط. يقوم العامل الثالث بتنفيذ تخطي السطر والانتقال إلى البداية

السطر التالي.

يمكن أن تشير المتغيرات التي تشكل قائمة المخرجات إلى عدد صحيح ،

أنواع حقيقية أو شخصية أو منطقية. كعنصر

في قائمة المخرجات ، بالإضافة إلى أسماء المتغيرات ، يمكن استخدام التعبيرات

والخطوط.

يتم إخراج كل قيمة في سطر من الشاشة وفقًا لـ

بعرض حقل إخراج خاص بالتنفيذ

يتوافق شكل تمثيل القيم في حقل الإخراج مع النوع

الأحزمة والتعبيرات: يتم عرض قيم نوع عدد صحيح كأعشار كاملة

الأعداد الحقيقية ، النوع الحقيقي - مثل الكسور العشرية الحقيقية

الأرقام ذات الترتيب العشري ونوع الحرف والسلسلة - في شكل حرف

الثيران ، النوع المنطقي - في شكل ثوابت منطقية TRUE و FALSE.

يسمح لك عامل الإخراج بتعيين عرض حقل الإخراج لكل منهما

عنصر قائمة الإخراج في هذه الحالة

يحتوي عنصر قائمة الإخراج على الشكل A: K ، حيث

A هو تعبير أو سلسلة ، K هو تعبير أو ثابت من نوع عدد صحيح.

إذا كانت قيمة الإخراج تشغل مواقع أقل في حقل الإخراج من K ،

ثم هناك مسافات قبل هذه القيمة ، إذا كانت قيمة الإخراج

لا يتناسب مع عرض الحقل K ، فستكون الإجابة لهذه القيمة

العدد المطلوب من المناصب. لقيم من النوع الحقيقي

يمكن أن يكون عنصر قائمة المخرجات بالصيغة A: K: M ، حيث A متغير أو تعبير

النوع الحقيقي ، K - عرض حقل الإخراج ، M - عدد الأرقام

جزء كسري من القيمة المعروضة K و M - التعبيرات أو الثوابت

نوع عدد صحيح. في هذه الحالة ، يتم إخراج القيم الفعلية في النموذج

رقم عشري بنقطة ثابتة.

مثال على كتابة بيانات الإخراج:

. . . . . . . . . . . .

var rA، rB: Real؛ iP، iQ: عدد صحيح ؛

bR ، bS: منطقي ؛ chT ، chV ، chU ، chW: Char ؛

. . . . . . . . . . . .

WriteLn (rA، rB: 10: 2) ؛

WriteLn (iP، iQ: 8) ؛

WriteLn (bR، bS: 8) ؛

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

عوامل التعيين

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

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

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

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

الجدول 1 - العمليات الحسابية الثنائية على نوع عدد صحيح

كود مصدر البرنامج:

برنامج Op_prisv ؛

ج: = الجذر التربيعي (أ * أ + ب * ب) ؛

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

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

بيانات الإدخال / الإخراج

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

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

يوجد عاملان لإدخال لوحة المفاتيح في باسكال: Read and Readln. لإخراج الشاشة - اكتب و Writeln. تأتي الإضافة "ln" من الكلمة الإنجليزية "line" - line ، line. العوامل المنتهية بـ "ln" تحرك المؤشر إلى سطر جديد كنتيجة لأفعالهم. لذلك ، على سبيل المثال ، أثناء تشغيل جملة Write ، سيبقى المؤشر في الموضع التالي بعد آخر حرف مطبوع. وفي حالة عبارة القراءة ، ستتم قراءة البيانات التالية من نفس السطر الذي يوجد به المؤشر.

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

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

كمثال على استخدام عوامل الإدخال / الإخراج ، نقوم بتعديل مشكلة تحديد وتر المثلث الأيمن على النحو التالي:

برنامج Op_vvod_vyvod ؛

الكتابة ("الساق أ =") ؛

اكتب ("Katet b =") ؛

ج: = الجذر التربيعي (أ * أ + ب * ب) ؛

writeln ("Hypotenuse ="، c: 3: 2) ؛

writeln ("اضغط على أي مفتاح لإنهاء ...") ؛

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


الشكل 9 - مثال للعمل مع عبارات الإدخال / الإخراج

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


الشكل 10 - مثال على عامل الإدخال بدون معلمات

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

عامل التخصيص هو العامل الأساسي. لها تعبير على الجانب الأيمن و indet. النتائج مفصولة بعلامة التعيين: =

على سبيل المثال: y: = x + 5 div 2

يتم استخدام بيان استدعاء الإجراء لتنشيط إجراء محدد من قبل المستخدم أو قياسي. على سبيل المثال: clrscr؛ إلخ.

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

يشير عامل الانتقال غير المشروط goto إلى "go to" ويستخدم في الحالات التي يكون فيها ، بعد تنفيذ بعض العمليات ، من الضروري عدم تنفيذ العامل التالي بالترتيب ، ولكن بعض المشغلين الآخر الذي تم تمييزه بعلامة. مثال: gotometka1؛

إدخال / إخراج البيانات: قراءة الإجراء قراءة إدخال البيانات الرقمية والأحرف والسلاسل وما إلى ذلك. لمزيد من المعالجة بواسطة البرنامج. التنسيق: قراءة (x1، x2، x3 ...)؛ أو اقرأ (FV ، x1 ، x2 ، x3 ...) ؛ ، حيث x1 ، x2 ، x3 .. متغيرات ، FV هو متغير مرتبط بالملف ، حيث سيتم إجراء القراءة. إجراء قراءة Readln مشابه لإجراء القراءة ، يتم تنفيذ الانتقال إلى السطر التالي فقط. ينتج عن إجراء الكتابة "الكتابة" إخراج البيانات الرقمية والأحرف والسلاسل والقيم المنطقية. التنسيق: كتابة (x1، x2، x3 ...)؛ أو اكتب (FV ، x1 ، x2 ، x3 ...) ؛

حيث x متغيرات ، FV هو اسم الملف حيث يتم إنتاج المخرجات. Writeln هو نقل خط.

26. مشغلي إدخال البيانات من لوحة المفاتيح.

قراءة ("قائمة المتغيرات") ؛

Readln ("قائمة المتغيرات") ؛

اكتب ("أدخل القيمة أ =") ؛ readln (أ) ؛

أدخل القيمة a =.

readln (أ) ؛ readln (ب) ؛ readln (ج) ؛ أو Readln (أ ، ب ، ج) ؛

Readln (c1 ، c2 ، c3 ، c4) ؛ (في انتظار إدخال قيم المتغيرات الرمزية c1 و c2 و c3 و c4 ، على سبيل المثال: "U" و "P" و "A" و "!" والضغط على Enter)

Writeln (c1 ، c2 ، c3 ، c4) ؛ سيعرض النقش: مرحى!

27. المشغل المفضل.

الحالة "المعلمة" Of

"قائمة عوامل التشغيل المميزة"

نهاية "بيان" آخر ؛

مثال على عوامل تحديد ترتيب عدد صحيح N من 0 إلى 999:

0..9: writeln ("واحد لواحد") ؛

10..99: writeln ("رقمان") ؛

100..999: writeln ("ثلاثة أرقام")

آخر writeln ("الرقم" N "ليس في النطاق المحدد") النهاية ؛

28. عامل التشغيل الشرطي.

إذا كان "الشرط" ثم "البيان 1" آخر "البيان 2" ؛

على سبيل المثال ، يتم حساب الجذر التربيعي للرقم "أ" وفقًا للشرط أ> = 0 ،

إذا كانت a> = 0 ثم b: = Sqrt (a) ، ثم تبدأ WriteLn ("a<0"); Readln; Halt end;

بيان وقف إنهاء تنفيذ البرنامج.

29. دورة المشغل.

مع المعلمة

بالنسبة إلى i: = N1 To N2 Do "عامل التشغيل" ؛

بالنسبة إلى i: = N1 DownTo N2 Do "عامل التشغيل" ؛

بشرط

أثناء عبارة "الحالة" DO "؛

كرر "العبارات" حتى "الشرط" ؛

"الشرط" هو تعبير من النوع المنطقي.

30 . الانتقال إلى عامل التسمية.

الانتقال إلى "التسمية" ؛

M1: اكتب ("أدخل x> = 0") ؛ readln (x) ؛ إذا كان x<0 Then Goto M1;

يتم وصف الملصقات في قسم الوصف ، على سبيل المثال: Label M1؛

31- المصفوفات الخطية.

وصف المصفوفات:

فارا: مصفوفة [1. .30] بايت ؛

S: مجموعة [1.. 30] من الخيط.

SO: مجموعة [1.. 30] ofstring ؛

تعيين قيم لعناصر المصفوفة:

ج: = 5 ؛ ج: = 4 ؛ إلخ.

S: = "إيفانوف" ؛ S: = "بيتروف" ؛ إلخ.

تعيين قيمة لعناصر المصفوفة "y" حسب التبعية:

y = sin (x) ، حيث x = Pi * i / 180 ، 0<= i <=180 .

بالنسبة إلى i: = 0 إلى 180 Do y [i]: = sin (Pi * i / 180) ؛

تعيين قيم عشوائية في النطاق من -30 إلى +40 مائة عنصر من المصفوفة "R":

عشوائيا. بالنسبة إلى i: = 1 إلى 100 Do R [i]: = - 30 + عشوائي (71) ؛

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

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

عامل التعيين: (: =). يتم استخدام عامل التخصيص لتعيين قيم للمتغيرات ، على سبيل المثال: x: = 1؛ أ: = 5. 02 ؛ ب: = 32 * أ + الخطيئة (خ) ؛ S: = "إيفان إيفانوفيتش".

بيان مركب: ابدأ<операторы>نهاية؛

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

    1. بيانات إدخال / إخراج البيانات

يتم استخدام أربعة عوامل تشغيل لأداء عمليات الإدخال / الإخراج:

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

التنسيق: قراءة (X1، X2، ..، Xn) حيث X1، X2، ..، Xn هي متغيرات من أنواع البيانات الصالحة.

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

بيان الكتابة (الكتابة) ينتج عنه إخراج البيانات.

التنسيق: اكتب (X1 ، X2 ، .. ، Xn) ، حيث X1 ، X2 ، .. ، Xn هي تعبيرات من نوع عدد صحيح ، بايت ، حقيقي ، شار ، منطقي ، إلخ.

مثال: اكتب (125) ؛ (التعبير يمثله القيمة) اكتب (A + B-C) ​​؛ (يتم عرض نتيجة التعبير).

تسمح لك جملة Write بإخراج قيم المتغيرات بالطرق التالية.

    ناتج التمثيل العشري للقيمة I ، بدءًا من موضع المؤشر (I):

    إخراج التمثيل العشري للقيمة I إلى المواضع اليمنى المتطرفة لحقل العرض p (I: p):

Where ַ is a space.

3. إخراج التمثيل العشري للقيمة I إلى المواضع اليمنى القصوى للحقل بالعرض p والجزء الكسري من الرقم بالعرض q (I: p: q):

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

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

أ: = 5.12345678912345678912345 ؛ اكتب ("أ =" ، أ) ؛ سيعرض التسمية التوضيحية.



تحميل...
قمة