مثال على البرنامج في باسكال. هيكل البرنامج في باسكال. حماية الإدخال غير صالحة


الجلسة الأولى لكتابة برنامج جديد.

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

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

الهيكل العام للبرامج في لغة باسكال:

البرنامج اسم البرنامج قسم الوصف بداية قسم البيان نهاية .

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

يجب أن يحتوي البرنامج المكتوب وفقًا لقواعد لغة باسكال القياسية في نسخته الكاملة (عندما يتعلق الأمر بجميع أنواع كائنات البرنامج) على البنية التالية:

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

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

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

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

"؛" - هذا المحدد في لغة باسكال يعني نهاية العبارة أو الوصف، ويسمح لك استخدامه بوضع عدة عبارات في سطر واحد.

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

اسم ثابت ثابت = القيمة؛

يتم الفصل بين اسم الثابت وقيمته بعلامة المساواة.

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

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

اسم المتغير var: نوع المتغير؛

في Turbo Pascal، يجب أن يبدأ اسم المتغير بحرف لاتيني، أو يتكون من أحرف لاتينية، أو أرقام، أو الشرطة السفلية "_". يجب أن يتكون الاسم مما لا يزيد عن 63 حرفًا (لا يقبل المترجم أكثر من ذلك). لا يمكنك استخدام مسافة في اسم متغير.

عادة، يبدأ تعلم أي لغة برمجة بكلمة Hello,world! لكننا سنصل إلى هذا بعد قليل، لأنني الآن أريد أن أخبركم عن الكميات وأنواع البيانات في باسكال.

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

عادة، يبدأ تعلم أي لغة برمجة بكلمة Hello,world! لكننا سنصل إلى هذا بعد قليل، لأنني الآن أريد أن أخبركم عن الكميات وأنواع البيانات في باسكال. ما هو الحجم؟ الكمية عبارة عن كائن معلومات منفصل مخزن في ذاكرة الكمبيوتر. هناك تصنيفان للكميات. وسوف ننظر في كل واحد على حدة.


وسنتحدث عنهم بمزيد من التفصيل في الدروس اللاحقة.

الرقمية، بدورها، تنقسم إلى نوعين.


أعطي على الفور تسمية هذا النوع في باسكال

وتنقسم الشخصيات أيضًا إلى نوعين.

التصنيف الثاني للكميات.
ثابت - القيمة لم تتغير. متغير - يمكن أن تتغير القيمة أثناء تشغيل البرنامج. يتم تعريف المتغيرات بأسماء رمزية تسمى المعرفات. كيفية تعيين قيمة لمتغير؟ باستخدام أمر التعيين! أمر الإسناد في باسكال: < переменная >:= < выражение >

البرنامج الأول في باسكال

هيكل البرنامج في باسكال

عنوان

برنامج< имя переменной >;

الإعلان عن المتغيرات والثوابت

مقدار ثابت<Символическое имя> = <выражение>;
فار<Однотипные переменные> : <тип>;

قسم المشغلين

يبدأ
<оператор 1>;
<оператор 2>;

نهاية.

الإدخال والإخراج في باسكال

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

للدخول:

  • قراءة (متغير)
  • قراءة (متغير)

و بالنسبة للإخراج:

  • الكتابة (النص في ")
  • writeln(نص في ")

"ما الفرق بين القراءة والقراءة والكتابة والكتابة؟": سوف تشعر بالحيرة مرة أخرى. الجواب بسيط. إذا قمت بإضافة "ln" (الذي يرمز إلى الخط)، فسينتقل المؤشر إلى السطر التالي.

مرحبا، العالم في باسكال

أنت الآن جاهز لكتابة برنامجك الأول.

برنامج Hello_World; (تسمح لك علامات الاقتباس المتعرجة بإدراج تعليق على الكود) Begin Write("Hello, World!"); نهاية.

حسنًا، كل شيء واضح هنا. لتنويع الحل أقترح حل العديد من المشاكل من هذا النوع.

المشكلة 1. مطلوب للمطالبة باسم المستخدم ثم عرض "مرحبا،<имя>!» لحل هذه المشكلة، نحتاج إلى نوع بيانات سلسلة - سلسلة.

برنامج Hello_boy_girl; (تسمح لك علامات الاقتباس المتعرجة بإدراج تعليق على الكود) var name: string; (نعلن أن الاسم متغير جديد) Begin Write("أدخل اسمك:"); (نظرًا لأننا نستخدم الكتابة، سيومض المؤشر بعد النقطتين) Read(name); (نقرأ كل ما أدخله المستخدم) Write("Hello,, name,"!"); (يرجى ملاحظة أنه يتم فصل المتغير عن علامتي الاقتباس بفاصلة End. !}

المهمة 2.تحتاج إلى معرفة عمر المستخدم، ثم عرض "أنت".<возраст>سنين".من الواضح أننا بحاجة إلى نوع بيانات صحيح لحل هذه المشكلة.

برنامج How_old_are_you; سنوات فار: عدد صحيح؛ (أعلن أن السنوات هي متغير جديد) Begin Writeln("كم عمرك؟"); (نظرًا لأننا نستخدم writeln، فسوف تومض علامة الإقحام أسفل التسمية التوضيحية) قراءة (سنوات)؛ (نقرأ كل ما أدخله المستخدم) Write("أنت "، سنوات،" سنة."); نهاية.

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


ملاحظة. دعونا نسلط الضوء على ميزتين لباسكال:

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

P.S. هناك ثلاثة أنظمة تشغيل مشهورة في العالم: Linux، وMac OS، وWindows. ماذا لو لم يكن لديك ويندوز؟ أي مترجم يجب أن أختار بعد ذلك؟ سنتحدث عن هذا في الدرس رقم ن.

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

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

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

ومن الجدير بالذكر أن هناك عددًا كافيًا من إصدارات Pascal وBasic، ولكن الأنواع مثل Turbo Pascal 7.0 وQBasic أكثر شيوعًا في المدارس. إذا قمنا بمقارنتها على وجه التحديد، فإن الأخير مصمم أكثر لكتابة برامج صغيرة يصل طولها إلى 50 سطرًا. Turbo Pascal أقوى وأسرع.

البرنامج الأول في باسكال

يمكن العثور بسهولة على أمثلة لبرامج باسكال على الإنترنت، ومن الصعب فهم كيفية عملها.

من أجل فهم كيفية عمل هذه اللغة، تحتاج إلى كتابة "مهمة" صغيرة. لنفترض أنك بحاجة إلى إنشاء برنامج يضيف رقمين: Q+W=E. ما الذي يجب فعله لإنشائه؟

سيكون الحرف E بمثابة متغير (في الرياضيات - x). تأكد من إعطائه اسمًا (لا يزيد عن 250 حرفًا). قد تتكون من:

  • الحروف (أ..ي) ؛
  • الأرقام من 0 إلى 9. لكن تذكر أن الاسم يجب ألا يبدأ برقم؛
  • شخصية "_".

يجب ألا يحتوي العنوان على:

  • الحروف الروسية
  • علامات الترقيم؛
  • متخصص. رموز مثل التجزئة "#"، والنسبة المئوية "%"، والدولار "$"، والتيلدا "~"، وما إلى ذلك.

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

كل شيء واضح فيما يتعلق بنوع المتغيرات، ولكن يجب تخصيصه لجميع المتغيرات الرقمية حتى يمكن التعامل معها بحرية.

بناء على ما هو مكتوب أعلاه، يمكنك بسهولة كتابة "مشكلة" صغيرة. سيبدو برنامج باسكال كما يلي:

برنامج شي_ني؛

فار Q، W، E: عدد صحيح؛

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

يتم وصف المتغيرات في السطر الثاني بفضل عامل التشغيل "var". ومن الضروري سرد ​​جميع المتغيرات التي تظهر في البرنامج وإضافتها مفصولة بنقطتين

يبدأ زوج من العبارات "BEGIN" - "END" وبالتالي ينهي تنفيذ البرنامج. وهم الأهم؛ بينهما جميع الإجراءات التي وصفها المبرمج.

بناء جملة اللغة

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

لتعيين قيمة لخلية، على سبيل المثال، E=15، يجب وضع نقطتين قبل علامة المساواة:

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

اختبارات

بعد إطلاق Turbo Pascal، تحتاج إلى طباعة البرنامج وترتيب الأحرف المطلوبة بشكل صحيح وتعيين ترتيب السطر المطلوب. يمكن تشغيل البرنامج من خلال أو باستخدام مفاتيح Ctrl + F9. إذا تم إدخال كل شيء بشكل صحيح، فسوف تومض الشاشة قليلاً. إذا كان هناك خطأ، فسيتوقف البرنامج مؤقتًا وسيتم وضع المؤشر على السطر الذي يوجد فيه. في هذه الحالة، سيظهر وصف الخطأ نفسه في سطر "الإخراج"، على سبيل المثال، الخطأ 85: "؛" متوقع. يشير هذا السطر إلى أن الفاصلة المنقوطة مفقودة في مكان ما. ومع ذلك، لا ينبغي عليك الاهتمام بمثل هذه المشكلات في الوقت الحالي؛ فأنت بحاجة إلى فهم البنية باستخدام البرامج النموذجية في باسكال.

ماذا يجب أن تدرس أولا؟

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

مصفوفات أحادية البعد

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

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

(الأمثلة أدناه) يمكن أن تحتوي على نوع واحد فقط تنتمي إليه جميع عناصره. لا يحدث أن تكون إحدى الخلايا من النوع الحقيقي والأخرى من النوع الصحيح.

في بيئة البرمجة، يتم إدخال بيانات مصفوفة أحادية البعد (أي بسيطة) خطيًا:

var a: مجموعة من الأحرف؛

بالنسبة إلى i:=5 إلى 40، اقرأ (ch[i]);

بالنسبة إلى i:=5 إلى 40، اكتب (ch[i]:3);

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

صفائف ثنائية الأبعاد

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

يتم وصف مثل هذه البيانات في لغة باسكال (يمكن رؤية الأمثلة أدناه) بطريقتين: "مصفوفة من النوع" أو "مصفوفة من نوع".

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

مثال على مهمة تستخدم قسم نوع خاص:

كونست ب = 24؛ و = 13؛

اكتب الكرز = مجموعة حقيقية؛

من الأسهل إلى حد ما وصف المصفوفة من خلال قسم المتغيرات (للمبتدئين):

كونست ب = 24؛ و = 13؛

var n: مجموعة حقيقية؛

سيكون كلا الخيارين صحيحين؛ ولن يتغير تشغيل البرنامج بأي شكل من الأشكال حسب طريقة التسجيل المحددة.

فتح المصفوفات

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

Seulgi1: مصفوفة من الأحرف؛

ييري: مجموعة من الحقيقي؛

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

الرسومات في باسكال

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

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

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

عادة، عند وصف البيانات الرسومية، يتم استخدام هذا الإجراء:

InitGraph(var driver, choke: real; Path: string);

السائق هنا هو متغير نوعه عدد صحيح؛ خنق - متغير، نوع حقيقي؛ والمسار يسمح لك بتنشيط برامج التشغيل.

دعونا نلقي نظرة على مثال بسيط لبرنامج في Pascal ABC.NET. في البداية، فكرت في إعطاء مثال أكثر تعقيدًا للنظر فيه، لكنني أدركت أن شرحه لك سيستغرق وقتًا طويلاً، لذلك سننظر إلى المثال القياسي "Hello World!".

برنامج باسكال. ابدأ writeln("باسكال ABC.NET"); نهاية.

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

برنامج باسكال. ابدأ writeln("باسكال ABC.NET"); نهاية.

القيد الوحيد لمثل هذا الكود (في سطر واحد) هو وجود مسافات بين الأوامر (في هذا المثال، مسافة بين begin و writeln)، ومسافة بين سطر جديد وسطر ينتهي بـ ";" غير مطلوب. أي لنفترض الكود التالي:

برنامج باسكال؛ بدء الكتابة ("باسكال ABC.NET")؛ النهاية.

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

برنامج باسكال؛ ابدأ الكتابة("باسكال ABC.NET"); نهاية.

يعادل تماما الكود السابق.

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

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

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

برنامج باسكال. const my_text="باسكال ABC.NET"; ابدأ بالكتابة(my_text); نهاية.

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

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

Const Mytext="أنا أحب لغة Pascal ABC.NET، ولذلك أقوم بإنشاء موقع يمكنك من خلاله تعلم هذه اللغة";

وحيثما كان ذلك ضروريا، فمن الأفضل كتابة اسم هذا "Mytext" الثابت، بدلا من هذه الجملة الطويلة.

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

فار و:نص؛ أنا: عدد صحيح؛ ابدأ في التعيين (f، "data.bat")؛ إعادة تعيين (و)؛ قراءة (و، ط)؛ أنا:=(i*10 - 125)*(-1); إغلاق (و)؛ تعيين(f, "data.bat"); إعادة كتابة(و); اكتب (و، ط)؛ إغلاق (و)؛ نهاية.

على الأرجح، لم تفهم شيئًا تقريبًا في هذا الرمز (لم أرغب في إعطاء هذا المثال، ولكن لمزيد من الوضوح قررت تقديمه). ليس عليك الخوض في هذا الرمز الآن (لأنني كتبته بشكل عشوائي). يفتح هذا الرمز ملف "data.bat"، ويقرأ قيمة منه، ويحول تلك القيمة، ويكتب القيمة الجديدة مرة أخرى إلى هذا الملف. ولكن هذا ليس نقطة. يمكنك أن ترى في هذا الكود السطور "ass(f, "data.bat");" في هذا المثال هناك سطرين. إذا تغير اسم الملف فجأة، فسيتعين علينا إعادة كتابة هذين السطرين. تخيل لو كان هناك الآلاف من هذه الخطوط. سيتعين إعادة كتابتهم جميعًا. ولهذا السبب تم إدخال المتغيرات والثوابت.

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

Const my_text = "باسكال ABC.NET"؛

الاسم الثابت هو "my_text" وقيمته هي "Pascal ABC.NET". قد يكون لديك شعور بأن الثوابت لا يمكن تخصيصها إلا لقيم سلسلة، لكن هذا ليس صحيحًا:

كونست my_Pi=3.1428;

وهنا مثال يثبت العكس. وبالتالي، يمكنك تحديد أي شيء في ثابت.

في مثالنا، يحتوي قسم البيانات على عبارة واحدة فقط، "writeln("Pascal ABC.NET");". الأمر "writeln" هو روتين فرعي (سنتعرف عليه بعد قليل) يعرض كل ما هو موجود بين قوسيه (في حالتنا، سيعرض البرنامج "Pascal ABC.NET").

كلمة "نهاية" تنهي البرنامج بأكمله. تشير هذه المجموعة من الأحرف إلى نهاية البرنامج. كل ما يتبع هذا الأمر لا يتم تنفيذه.

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

يحتوي أي برنامج بلغة برمجة باسكال على ثلاثة مكونات: 1) الرأس؛ 2) قسم الأوصاف. 3) جسم البرنامج.

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

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

✎ 3) جسم البرنامج عبارة عن كتلة من العبارات التي يتم فيها كتابة الأوامر المطلوب تنفيذها. تبدأ هذه الكتلة بالكلمة يبدأ("البداية")، وتنتهي بالكلمة نهاية.("النهاية") مع نقطة في النهاية (الفقرتان 6، 7 من نفس المادة).

وبالتالي، بشكل عام، يبدو برنامج باسكال كما يلي:


عند حل أبسط المسائل، سنقتصر أولاً على الأعداد الصحيحة. قبل أن نبدأ البرمجة، سنشير إلى أبسط 4 عمليات على الأرقام بالباسكال: "+" - الجمع، "-" - الطرح، "*" - الضرب، "/" - القسمة. كما ترون، في البرمجة والرياضيات، يتم الإشارة إلى العمليات الأولية على الأرقام بنفس الطريقة. دعنا نحل المشكلة التالية:

مهمة.دع الأعداد الصحيحة A و B تجد مجموعها.


دعنا نسمي البرنامج لإيجاد المجموع Summa. بعد ذلك سيبدو جزء الكود المسؤول عن اسم البرنامج كما يلي:

1 برنامجالخلاصة؛ (البرنامج اسمه Summa)

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

لذلك، دعونا نعطي قيم الرقمين A و B، تساوي على سبيل المثال 23 و 76 على التوالي. وبما أننا نعرف القيم مسبقًا، فإن A وB سيكونان كذلك مقدار ثابت، وسيتم وصف S كـ فار. وباعتبار أن وصف الثوابت يأتي قبل وصف المتغيرات، فإن قسم الوصف في هذه الحالة سيكون على النحو التالي:


وبالتالي فإن جسم البرنامج سيتكون من حساب المبلغ S وعرضه على الشاشة. في لغة باسكال، لحساب مجموع A وB، لا يمكنك ببساطة كتابة S = A + B؛ مثل هذا التدوين ممكن إذا كنت بحاجة إلى التحقق مما إذا كان الرقم S يساوي المجموع A + B. A لكي تكتب قيمة المجموع A + B في المتغير S، عليك "إسناد" قيمة هذا المجموع إلى المتغير S، أي. اكتب المجموع A + B في المكان المخصص للمتغير S في ذاكرة الكمبيوتر. وهذا يشبه "دفع" قيمة أحد الأرقام إلى قيمة رقم آخر. يتم كتابة المهمة مثل هذا:

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

write("مجموع الأرقام 23 و 76 هو: S = ", S);

من خلال الجمع بين 1) رأس البرنامج و2) قسم الوصف و3) نص البرنامج، نحصل على رمز صغير يمكن نسخه إلى PascalABC.Net أو إصدار آخر من Pascal:


بعد تنفيذ هذا البرنامج سنرى على الشاشة:

مجموع الأرقام 23 و 76 هو: S = 99

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


في هذه الحالة ستكون النتيجة على الشاشة كما يلي:

مجموع العددين 23 و 76 هو 99

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


في الصفحة التالية سنتحدث عن النسب المئوية. في غضون ذلك، إذا كنت من محبي World of Warcraft، فهذا سيساعدك