أجهزة الكمبيوتر شبابيك إنترنت

الإجراءات في عرض باسكال. الإجراءات والوظائف في باسكال. العودية. غالبًا ما تتطلب منك مهمة ما تكرار سلسلة معينة من العبارات في أجزاء مختلفة من البرنامج. تمرير المعلمات. المعلمات الرسمية

لاستخدام معاينة العروض التقديمية ، قم بإنشاء حساب Google لنفسك (حساب) وقم بتسجيل الدخول إليه: https://accounts.google.com


تعليق على الشرائح:

الإجراءات والوظائف في باسكال. العودية قام بها مدرس المعلوماتية بمدرسة GBOU 1362 Sanina Marina Sergeevna

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

عمل إجراءات روتينية وظيفة PROCEDURE FUNCTION

يتم الإعلان عن الإجراءات والوظائف في باسكال في قسم التصريح بعد قسم المتغيرات.

الوظائف والإجراءات لها معلمات (المتغيرات التي تمرر بعض القيمة). وهي من نوعين: 1) الرسمية - تلك الموجودة في وصف الروتين الفرعي 2) الفعلية - تلك التي يتم تمريرها من البرنامج الرئيسي إلى وظيفة أو إجراء. يجب أن تتوافق المعلمات الفعلية مع المعلمات الرسمية من حيث الكمية والترتيب والنوع.

أيضًا ، يحتوي الروتين الفرعي على متغيرات. التي تعمل معها. يتم تقسيمها مرة أخرى إلى نوعين: 1) المتغيرات العامة ، أي تلك التي تعمل في البرنامج بأكمله 2) المحلية - تلك التي تعمل فقط في إجراء أو وظيفة

الإجراءات المستخدمة في الحالات التي تتطلب نتائج متعددة في إجراء فرعي. هناك نوعان من الإجراءات: مع معلمة؛ بدون معلمة.

يشبه هيكل الإجراء بنية البرنامج ويتكون من رأس وكتلة (جسم الإجراء). الإجراء اسم الإجراء ؛ var ... start… // نهاية جسم الإجراء ؛ تبدأ // نهاية جسم البرنامج الرئيسي.

إجراءات بدون معلمات الإجراء العلاقات العامة ؛ var i: عدد صحيح ؛ ابدأ بـ i: = 1 إلى 60 اكتب ('* ")؛ writeln؛ end. begin pr؛ end يطبع هذا البرنامج سلسلة من 60 نجمة.

إجراء المعلمة. قم بعمل برنامج لتبادل رقمين مع = 5 و d = 7 برنامج obmenDan ؛ فار ج ، د: عدد صحيح ؛ إجراء obmen (أ ، ب: عدد صحيح) ؛ فار م: عدد صحيح ؛ تبدأ م: = أ ؛ أ: = ب ؛ ب: = م ؛ writeln (أ ، ب) ؛ نهاية؛ ابدأ الكتابة ("أدخل رقمين:") ؛ readln (ج ، د) ؛ obmen (ج ، د) ؛ writeln (ج ، "" ، د) ؛ نهاية.

تحليل المشكلة 1) عند استدعاء إجراء obmen مع معلمتين 5 و 7 ، يتم وضع الرقمين 5 و 7 أيضًا في المتغيرين a و b ، على التوالي: c 5 d 7 a 5 b 7

لكي يشير المتغيران c و d و a و b إلى نفس خلايا الذاكرة (إذا تغيرت قيم a و b ، ستتغير قيم c و d) ، عند وصف المعلمات الرسمية ، أضف كلمة VAR قبل المتغيرات المطلوبة: الإجراء obmen (var a ، b: صحيح) ؛ ق 5 د 7 أ ب

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

السمات المميزة للوظائف: - نتيجة التنفيذ - قيمة واحدة يتم تخصيصها لاسم الوظيفة وتحويلها إلى البرنامج الرئيسي ؛ - يمكن تضمين اسم الوظيفة في التعبير كمعامل.

وصف الوظيفة: الوظيفة (): النوع ؛ (قسم يصف الأسماء المحلية) ابدأ (قسم العبارات القابلة للتنفيذ): =؛ (المعلمة المطلوبة) النهاية ؛

استدعاء الوظيفة :: = () ؛ 1. على الجانب الأيمن من عامل التخصيص. 2. في التعبير في حالة عامل المتفرعة. 3. في إجراء الإخراج ، كنتيجة للوظيفة.

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

اكتب دالة تعاودية تحسب مضروب الرقم n على النحو التالي: n! = 1 إذا كان n = 1 n! = (N -1)! N إذا كانت n> 1

الوظيفة f (n: عدد صحيح): عدد صحيح ؛ ابدأ إذا كان n = 1 ثم f: = 1 else f: = n * f (n -1) ؛ (الوظيفة f تستدعي نفسها) end ؛

المهام قم بتغيير قيم المتغيرات أ ، ب ، ج بحيث يتم ترتيبها بترتيب غير تنازلي (أ ، ب ، ج). يتم إعطاؤك عدد n من الأعداد الصحيحة. أوجد بينهم الرقم الذي يحتوي مجموع أرقامه على أقصى قيمة.



روتين الخامس تيربو باسكال


  • روتين فرعي إنها مجموعة أوامر مسماة كاملة منطقيًا يمكن استدعاؤها لتنفيذ أي عدد من المرات من أماكن مختلفة في البرنامج.

أسباب استخدام الإجراءات الفرعية

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

أنواع الإجراءات الفرعية

إجراءات

المهام

  • إجراءهو جزء مسمى مستقل من برنامج مصمم لأداء إجراءات محددة.

إجراءات بلا حدود

  • تنسيق التسجيل :

إجراء ;

نهاية ;

  • يتم وصف جميع المتغيرات المستخدمة في الإجراءات بدون معلمات في البرنامج الرئيسي (في وحدة Var).

مثال . قم بعمل برنامج لإيجاد حجم الاسطوانة.

اسطوانة البرنامج

Var R، H، V: حقيقي ؛

إدخال الإجراء (إجراء إدخال البيانات)

Writeln ('أدخل قيمة نصف القطر') ؛

writeln ('أدخل قيمة الارتفاع') ؛

صيغة الإجراء { إجراء العمليات الحسابية الصوت }

الخامس: = PI * sqr (R) * H ؛

إخراج الإجراء ؛ (إجراء لعرض النتائج)

writeln ('V ='، V) ؛


إجراءات ج العوامل

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

إجراءات ج العوامل

  • المتغيرات العالمية

مثال .

برنامج zadacha.

فار أ ، ب: عدد صحيح ؛

الإجراء lokal

فار أ ، س: شار ؛ ل إجراءات لوكال:

يبدأ عامل x - متغير محلي

أ: = '! "؛ (البرنامج لا يستطيع تغيير قيمته)

ب: = ب +1 ؛ عامل ب - المتغير الشامل

نهاية؛ (كل التغييرات في قيمة هذا المتغير في الإجراء

يتم حفظ BEGIN بعد الخروج من الإجراء)

ب: = 100 ؛ عامل أ في البرنامج الرئيسي النوع الكامل ،

lokal. وفي الإجراء ، يكون من نوع الشخصية. متغير أ

writeln ('أ =' ، أ) ؛ نوع العدد الصحيح غير متاح في الإجراء lokal.

writeln ('ب =' ، ب) ؛

نتيجة تنفيذ البرنامج: أ = 0 ؛ ب = 101.


) ؛ يبدأ؛ نهاية؛ "العرض =" 640 "

تمرير المعلمات إلى توربيني باسكال

  • 1. تمرير المعلمات من حيث القيمة
  • معلمات القيمة المتغيرات الموصوفة بعد اسم الإجراء بين قوسين. لا توجد كلمة خدمة فار أمامهم.
  • تنسيق التسجيل :

إجراء (:

عامل)؛

نهاية ;


  • المعلمات الرسمية .
  • المعلمات الفعلية .

مثال .

برنامج بارامتر ؛

فار م ، ن: عدد صحيح ؛

ملخص الإجراء (أ ، ب: عدد صحيح) ؛

writeln ('S ='، S) ؛

الخلاصة (م ، ن) ؛ أو الخلاصة (100،10) ؛

المتغيرات أ و ب هي المعلمات الرسمية والمتغيرات م و ن - فعلي. قيم المعلمات الفعلية م = 100 و ن = 10 يتم تمريرها إلى المعلمات الرسمية أ و ب .

تحدث التغييرات على المعلمات الفعلية فقط ضمن الإجراء ولا تؤثر عليها خارج هذا الإجراء.


؛ متغير فار :) ؛ يبدأ؛ نهاية؛ "العرض =" 640 "

تمرير المعلمات إلى توربيني باسكال

  • 2. تمرير المعلمات بالاسم
  • المتغيرات المتغيرة المتغيرات الموصوفة بعد اسم الإجراء بين قوسين ويسبقها كلمة الخدمة Var.
  • تنسيق التسجيل :

إجراء (:

عامل؛ فار

عامل :)؛

نهاية ;



b ثم min: = b ؛ إذا كان min c ثم min: = c ؛ نهاية؛ BEGIN writeln ("أدخل ثلاثة أرقام") ؛ readln (a1، b1، c1) ؛ writeln ("أدخل ثلاثة أرقام") ؛ readln (a2، b2، c2) ؛ الحد الأدنى (a1، b1، c1، min1) ؛ الحد الأدنى (a2، b2، c2، min2) ؛ S: = min1 + min 2 ؛ writeln ('S ='، S) ؛ نهاية. مثال. بالنظر إلى اثنين من الأرقام الثلاثة: أ 1 ، ب 1 ، ج 1 ، أ 2 ، ب 2 ، ج 2. أوجد قيمة المجموع: S = min (a1، b1، c1) + min (a2، b2، c2) "العرض =" 640 "

Var a1، b1، c1، a2، b2، c2، min1، min2، S: حقيقي ؛

الحد الأدنى للإجراء (أ ، ب ، ج: حقيقي ؛ فار مين: حقيقي) ؛

إذا كان min b ثم min: = b ؛

إذا كان min c ثم min: = c ؛

writeln ("أدخل ثلاثة أرقام") ؛

readln (a1، b1، c1) ؛

writeln ("أدخل ثلاثة أرقام") ؛

readln (a2، b2، c2) ؛

الحد الأدنى (a1، b1، c1، min1) ؛

الحد الأدنى (a2، b2، c2، min2) ؛

S: = min1 + min 2 ؛

writeln ('S ='، S) ؛

مثال... بالنظر إلى اثنين من الأرقام الثلاثة: أ 1 ، ب 1 ، ج 1 ، أ 2 ، ب 2 ، ج 2. أوجد قيمة المجموع: S = min (a1، b1، c1) + min (a2، b2، c2)


وظيفةهو روتين فرعي ، تكون نتيجته ذات قيمة ما.

  • تنسيق التسجيل :

وظيفة (:

نهاية ;

  • في جسم الوظيفة ، يجب تعيين اسم الوظيفة نتيجة تنفيذها.
  • عند استدعاء دالة ، يجب تضمين اسمها مع قائمة المعلمات الفعلية في التعبير كمعامل.

برنامج vyrazenie.

نموذج الوظيفة (أ: حقيقي): حقيقي ؛

writeln ('أدخل قيمة المتغير') ؛

y: = modul (x-3) + modul (x + 6) ؛

writeln ('y ='، y) ؛

مثال . احسب قيمة التعبير: y = | × -3 | + | x +6 |

الصف 8. برمجة ABC باسكال

مدرس المعلوماتية NIS Uralsk FMN Zelenov Boris Aleksandrovich


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

  • تشكيل مفهوم الإجراءات والوظائف في لغة البرمجة.

  • يعرف الطلاب مفاهيم "الإجراءات" و "الوظائف" ، ويحدد المعلمات الرسمية والفعلية

النتائج المتوقعة - الواصفات:

1. يعرف تعريف "الإجراء"

2. يعرف تعريف "الوظيفة"

3. يحدد المعلمات الفعلية والرسمية

4- يميز بين معاملات القيمة والمتغيرات

5. البحث عن استدعاء لإجراء أو وظيفة في رمز البرنامج



خطة الفيرا القياسية

1. إزالة الأوراق

2. سقي الزهور

3. اغسل المناضد

4. امسح الزجاج

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

كيف يمكننا تحسين تنظيم هذه العملية؟




موضوع الدرس

الروتينات الفرعية:


Ішкі baғdarlama

روتين فرعي

إجراء

إجراء

المعلمة

عبارات مفيدة:

لنقل قيم المتغيرات إلى إجراء (وظيفة) ، يتم استخدام المعلمات الفعلية ...

من أجل وصف الإجراء ، يجب على المرء أولاً .... ، ثم ...


مفهوم الروتين الفرعي

تعريف

روتين فرعيهو جزء مستقل وظيفيًا من البرنامج.

روتين

إجراءات


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

  • ارسم سياجًا باستخدام لغة برمجة

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


  • صف كيفية تنفيذ رسم شجرة عيد الميلاد بعقلانية في بيئة البرمجة

  • إنها أجزاء مستقلة من البرامج ، مصممة بطريقة خاصة ولها اسمها الخاص.

التفاعل بين البرنامج الرئيسي والروتين الفرعي



مخطط كتلة

  • كتلة استدعاء روتين فرعي (إجراء أو وظيفة)

اسم الروتين الفرعي (إجراء أو وظيفة)


مخطط كتلة


وصف الإجراء كما يلي:

إجراءالاسم (قائمة المعلمات الرسمية) ؛ قسم الوصف يبدأالعاملين نهاية ;


يبدو وصف الوظيفة كما يلي:

وظيفةالاسم (قائمة المعلمات الرسمية): نوع الإرجاع ؛

قسم الوصف يبدأالعاملين نهاية ;


الموقع في البرنامج

برنامج ...;

// وصف قسم الاستخدامات ، Const ، Var ، ...

إجراء أ ;

يبدأ ....... نهاية ;

إجراء ب ;

يبدأ ........ نهاية ;

الوظيفة ج ;

يبدأ ........ نهاية ;

// البرنامج الرئيسي

يبدأ ........ نهاية .


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

إجراءات

المهام

قد يكون لها نتائج متعددة أو القيام ببعض الإجراءات

نتيجة واحدة فقط ، يتم تحديد نوعها بشكل منفصل عند إعلان الوظيفة.

يمكن أن تكون النتائج قيمًا من أي نوع ، أو مصفوفات ، أو سلاسل ، أو أرقام ، إلخ.

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

أمر استدعاء الإجراء هو أمر منفصل يتم استخدامه بشكل مستقل

لا يمكن استخدام استدعاء دالة إلا كمكون لتعبير من النوع المناسب.

يجب أن يحتوي نص الوظيفة على عامل تعيين واحد على الأقل مع اسم الوظيفة على اليسار.


b ثم max: = a else max: = b ؛ MaxNumber: = ماكس ؛ النهاية ؛ "العرض =" 640 "

الإجراء أو الوظيفة؟

MaxNumber (أ ، ب: عدد صحيح): عدد صحيح ؛

فار ماكس: عدد صحيح ؛

MaxNumber: = ماكس ؛


b ثم max: = a else max: = b ؛ النهاية ؛ "العرض =" 640 "

الإجراء أو الوظيفة؟

MaxNumber (أ ، ب: عدد صحيح ؛ فار ماكس: عدد صحيح) ؛

إذا كان ab ثم max: = a else max: = b ؛


الإجراء أو الوظيفة؟

ChangeColor (C1، C2: Word) ؛

TextBackGround (C2)


الإجراء أو الوظيفة؟

إضافة (X ، Y: عدد صحيح): عدد صحيح ؛


الفعلية

  • مبين في قسم البرنامج الرئيسي

رسمي

  • يشار إليه في روتين فرعي
  • يشار إليه في روتين فرعي

يتم استدعاء الإجراء من قبل عامل بالتنسيق التالي:

اسم الإجراء (قائمة المعلمات الفعلية) ؛

  • قائمة المعلمات الفعلية- هذه قائمة مفصولة بفواصل.

  • في معيار لغة باسكال ، يمكن تمرير المعلمات بطريقتين - بالقيمة وبالمرجع. يتم استدعاء المعلمات التي تم تمريرها من خلال القيمة معلمات القيمةمرت عن طريق الارتباط - معلمات متغيرة... يختلف الأخير في أن كلمة الوظيفة var توضع أمامهم في رأس الإجراء (الوظيفة).

تمرير المعلمات. المعلمات الرسمية

المتغيرات

القيم

المعلمات من حيث القيمة

المعلمات الرسمية

المتغيرات


المعلمات الرسمية

المعلمات من حيث القيمة

  • في الطريقة الأولى (التمرير بالقيمة) ، يتم نسخ قيم المعلمات الفعلية إلى المعلمات الرسمية المقابلة.

إجراء

اسم الإجراء (أ ، ب: عدد صحيح) ؛

البرنامج الرئيسي

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


فار ج ، د: عدد صحيح ؛

  • عند المرور بالمرجع ، تؤدي جميع التغييرات التي تحدث في جسم الإجراء (الوظيفة) مع المعلمات الرسمية إلى تغييرات مماثلة فورية في المعلمات الفعلية المقابلة.

إجراء

اسم الإجراء (أ ، ب: عدد صحيح ، فار ج: حقيقي) ؛

البرنامج الرئيسي

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


انت تكتب:

1.المعلمات الفعلية ___________

الإجراء Kvad (R: real ؛ var S: real) ؛

2-المعلمات الرسمية ___________

3-قيم المعلمات الرسمية __________

5.اسم الإجراء ___________

6- الرجوع إلى الإجراء من البرنامج _____________________


مهمة تفاعلية

http://www.bzfar.net/load/podprogrammy_procedury_i_funkcii_parametry/23-1-0-498


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


خطة الفيرا المتقدمة

الروتينات الفرعية:

أرسين - يزيل الأوراق

ميلا - سقي الزهور

فيتالي - مكاتب غسيل

إنديرا - تمسح الزجاج

1. نفذ Arsen

2. تشغيل Mila

3. نفذ فيتالي

4. قم بتنفيذ إنديرا

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


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

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

  • كيف تحدد موضوع الدرس؟ (تعال باسمك)
  • ماذا تعتقد أنه يجب أن تتعلمه في الدرس التالي؟

اقابلك

في الدرس القادم!

شريحة 1

شريحة 3

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

شريحة 4

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

شريحة 5

شريحة 6

وصف إجراء برنامج Pr1 ؛ كونست ... نوع ... فار ... إجراء () ؛ الجزء الوصفي يبدأ نص الإجراء ؛ يبدأ ... ()؛ ... نهاية. عندما يتم استدعاء الإجراء ، يتم استبدال المعلمات الرسمية بالمعلمات الفعلية.

شريحة 7

إجراء حساب مجموع رقمين برنامج pr1 ؛ يستخدم CRT. فار أ ، ب ، ق: حقيقي ؛ ملخص الإجراء (x ، y: real ؛ var z: real) ؛ تبدأ ض: = س + ص ؛ نهاية؛ تبدأ clrscr ؛ writeln ("أدخل أ ، ب") ؛ readln (أ ، ب) ؛ الخلاصة (أ ، ب ، ق) ؛ writeln ("مجموع الأرقام" ، أ: 3: 1 ، "و" ، ب: 3: 1 ، "=" ، s: 3: 1) ؛ readln. نهاية. x ، y ، z - المعلمات الرسمية ، المتغيرات المحلية a ، b ، s - المتغيرات العامة a ، b ، s - المعلمات الفعلية х y z a b s معلمات القيمة المعلمة المتغيرة

شريحة 8

شريحة 9

شريحة 10

احسب قيمة التعبير أ: = (3n! + 2m!) / (M + n)! لإيجاد العامل ، ما نوع المتغيرات التي يُنصح باستخدامها؟ برنامج pr2 ؛ يستخدم CRT. Var m، n، x، y، z: عدد صحيح ؛ أ: حقيقي ؛ حقيقة الإجراء (د: عدد صحيح ؛ فار ف: عدد صحيح) ؛ var i: عدد صحيح ؛ تبدأ ف: = 1 ؛ بالنسبة إلى i: = 1 to d do q: = q * i؛ نهاية؛ تبدأ clrscr ؛ writeln ("أدخل القيم n ، m") ؛ readln (ن ، م) ؛ حقيقة (ن ، س) ؛ حقيقة (م ، ص) ؛ حقيقة (م + ن ، ض) ؛ أ: = (3 * س + 2 * ص) / ض ؛ writeln ("قيمة التعبير عند m =" ، m: 4 ، "و n =" ، n: 4 ، "يساوي" ، a: 8: 3) ؛ readln. نهاية. ن! = 1 · 2 · 3 · ... · ن

شريحة 11

إخراج عناصر مصفوفة أحادية البعد تقوم الدالة Random (X) بإنشاء رقم عشوائي من 0 إلى X من عدد صحيح أو نوع حقيقي (قبل استدعاء الوظيفة ، يجب تهيئتها باستخدام إجراء Randomize). إذا لم يتم تحديد المعامل X ، فستكون النتيجة من النوع Real ، وتتراوح من 0.0 إلى 1.0. للحصول على مجموعة من الأعداد الصحيحة العشوائية من النطاق العشوائي (BA + 1) + A المهمة: نفِّذ إدخال عناصر مصفوفة أحادية البعد باستخدام مولد أرقام عشوائي (نطاق القيم من -10 إلى 20) و إخراج العناصر كإجراء. بالنسبة إلى A = -10 B = 20 عشوائي (20 - (- 10) +1) + (- 10)

شريحة 12

شريحة 13

شريحة 14

وصف الوظيفة صُممت الوظائف لحساب قيمة واحدة فقط ، 1. وبالتالي فإن الاختلاف الأول بينها هو أن الإجراء يمكن أن يكون له قيم جديدة للعديد من المعلمات ، ويمكن أن يكون للدالة واحدة فقط (ستكون هذه هي النتيجة). 2. الاختلاف الثاني في عنوان الوظيفة. يتكون من الكلمة FUNCTION ، متبوعة باسم الوظيفة ، ثم توجد بين قوسين قائمة بالمعلمات الرسمية ، وبعد ذلك يتم كتابة نوع نتيجة الوظيفة مفصولة بنقطتين. 3. يجب أن يحتوي نص الوظيفة على عامل تعيين واحد على الأقل ، حيث يكون اسم الوظيفة على اليسار وقيمتها على اليمين. الوظيفة (): بدء الجزء الوصفي جسم الوظيفة: = ؛ نهاية؛

شريحة 15

احسب قيمة التعبير أ: = (3n! + 2m!) / (M + n)! برنامج fn2 ؛ يستخدم CRT. فار م ، ن: عدد صحيح ؛ أ: حقيقي ؛ حقيقة الوظيفة (د: عدد صحيح): longint ؛ var i: عدد صحيح ؛ س: طويل. تبدأ ف: = 1 ؛ بالنسبة إلى i: = 1 to d do q: = q * i؛ حقيقة: = q ؛ نهاية؛ تبدأ clrscr ؛ writeln ("أدخل القيم n ، m") ؛ readln (ن ، م) ؛ أ: = (3 * حقيقة (ن) + 2 * حقيقة (م)) / حقيقة (م + ن) ؛؛ writeln ("قيمة التعبير عند m =" ، m: 4 ، "و n =" ، n: 4 ، "يساوي" ، a: 8: 3) ؛ readln. نهاية.

شريحة 16

قم بإنشاء برنامج سيجد ab ، أي القوة b-th للرقم A ، حيث A و B عبارة عن عدد صحيح و B> 0 ، يتم إدخالها من لوحة المفاتيح. بناء برنامج عن طريق استبدال الوظيفة بإجراء pr2 البرنامج ؛ يستخدم CRT. فار أ ، ب: عدد صحيح ؛ ج: طويل. وظيفة stepen (x ، y: عدد صحيح): longint ؛ var i: عدد صحيح ؛ ق: طويل. تبدأ s: = 1 ؛ بالنسبة إلى i: = 1 to y do s: = s * x ؛ Stepen: = s ؛ نهاية؛ تبدأ clrscr ؛ writeln ("أدخل القيم أ ، ب") ؛ readln (أ ، ب) ؛ C: = stepen (أ ، ب) ؛ writeln ("s =" ، ق) ؛ readln. نهاية.

شريحة 17

شريحة 18

آلية تمرير المعلمات إلى الوظائف والإجراءات ما الذي سيطبعه الإجراء وماذا عن طريق البرنامج؟ المتغيرات العامة المتغيرات المحلية أ ب 3 3 -3 العنوان ج أ ب ج 48 العنوان ج أ: = ب + 3 ب: = 3 * أ ج: = أ + ب حالة ج 24 5 8 رد

شريحة 19

الغرض من الدرس

التعليمية

  • لتشكيل للطلاب نظام موحد من المفاهيم المتعلقة بمفاهيم الإجراء والوظيفة ؛
  • تعليم كيفية استخدام الإجراءات الفرعية في حل المشكلات في باسكال ، وكذلك تعليم كيفية فهم نوع الإجراء الفرعي المطلوب عند حل مشكلة معينة ؛
  • عرض التقنيات الأساسية لاستخدام الإجراءات الفرعية ؛

التعليمية

  • إبراز الدقة والانتباه والتنظيم ؛
  • ثقافة مهارات الحوسبة.

تطوير

  • تطوير التفكير المنطقي والثقافة الحسابية للطلاب ؛
  • تطوير المعرفة والمهارات لتأليف وتصحيح الإجراءات الفرعية بلغة باسكال.

يجب على الطلاب:

  • معرفة قواعد كتابة الإجراءات بدون معلمات ومع المعلمات ؛
  • معرفة قواعد كتابة الوظائف ؛
  • أن تكون قادرًا على استخدام الإجراءات والوظائف لحل المشكلات البسيطة.

خلال الفصول

I. Org. الوقت الحاضر

ثانيًا. مقدمة. ملاءمة

إصدار مهمة على قطع من الورق ( المرفق 1 ). البحث عن الاعادة.

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

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

يتم تقسيم الروتين الفرعي إلى إجراءات ووظائف.

الإجراءات والوظائف المضمنة (القياسية) هي جزءاللغة ويمكن استدعاؤها بالاسم بدون وصف مسبق.على سبيل المثال , abs ، sqrt ، ln ، الخطيئة ... - الوظائف (إرجاع نتيجة) ، readln ، الكتابة ... - الإجراءات (لا تُرجع نتيجة). وجودهم يسهل بشكل كبير تطوير برامج التطبيق. ومع ذلك ، في معظم الحالات ، بعض محددالإجراءات الخاصة بهذا البرنامج لا تجد نظائرها المباشرة في مكتبات Turbo Pascal ، ومن ثم يتعين على المبرمج أن يطور خاصته غير قياسيالإجراءات والوظائف.

ثالثا. شرح المادة الجديدة

تتم كتابة إجراءات المستخدم بأنفسنامبرمج وفقًا لقواعد اللغة في قسم وصف الروتين الفرعي.

يكرر هيكل الإجراء بنية البرنامج ، فهو "برنامج مصغر" - يتم تمثيله أيضًا بالعنوان والجسم.

يتكون الرأس من كلمة الإجراء المحجوزة ، والمعرف (اسم)إجراءات.

VAR ... // قسم يصف متغيرات البرنامج الرئيسي

الإجراء اسم الإجراء ؛

// جسم البرنامج الرئيسي

يتم تسجيل استدعاء إجراء للتنفيذ اللاحق في نص البرنامج الرئيسي.

مثال 1. برنامج حساب المساحة والمحيط.

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

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

مثال 2. يقوم المستخدم بإدخال جانبي المستطيلات الثلاثة. اعرض منطقتهم.

يمكنك حل المشكلة مثل هذا:

بالنسبة إلى i: = 1 إلى 3 do

writeln ("أدخل أ و ب:") ؛

writeln ("المنطقة =" ، أ * ب) ؛

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

حساب

حساب

حساب

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

الإجراء رر (ج ، د: عدد صحيح) ؛

writeln ("منطقة المستطيل مع جوانب" ، ج ، "" ، د ، "=" ، S) ؛

المعلمة هي متغير يتم تعيين بعض القيمة له. موجود المعلمات الرسمية المحددة في عنوان الروتين الفرعي ، و المعلمات الفعلية - التعبيرات التي تحدد قيمًا محددة عند الإشارة إلى إجراء فرعي.

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

يجب أن تكون المعلمات الفعلية هي نفسها في النوع والكمية مع المعلمات الرسمية.

إذن البرنامج الرئيسي:

بالنسبة إلى i: = 1 إلى 3 do

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

دعنا نؤلف إجراء التحقق:

خطأ في الإجراء (f ، g: عدد صحيح) ؛

إذا (ص<0) or (g<0) then begin

writeln ("جوانب المستطيل لا يمكن أن تكون سالبة") ؛

وقف؛ // انقطاع البرنامج

البرنامج النهائي - الملحق 4

إذن شكل الإجراء:

إجراء<имя>(المعلمات الرسمية) ؛

<операторы>;

مثال 3. ضع برنامجًا لتبادل الأماكن المكونة من رقمين بـ = 5 و d = 7.

برنامج obmenDan ؛

فار ج ، د: عدد صحيح ؛

إجراء obmen (أ ، ب: عدد صحيح) ؛

م: = أ ؛ أ: = ب ؛ ب: = م ؛

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

writeln (ج ، "" ، د) ؛

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

1) عند استدعاء إجراء obmen مع معلمتين 5 و 7 ، يتم وضع الرقمين 5 و 7 أيضًا في المتغيرين a و b ، على التوالي:

3) ولكن في المتغيرين c و d لم تتغير البيانات منذ ذلك الحين هم في مواقع الذاكرة الأخرى.

للمتغيرات c و d و a و b يشار إلى نفس مواقع الذاكرة (إذا تغيرت قيم a و b ، ستتغير قيم كل من c و d) عند وصف المعلمات الرسمية ، أضف كلمة VAR قبل المتغيرات المطلوبة:

إجراء obmen (var a ، b: عدد صحيح) ؛

تعديل برنامج obmenDan:

خطأ بسبب var. الأرقام هي ثوابت لا يمكن تغييرها في إجراء.

مثال 4. ابحث عن مساحة الدائرة باستخدام إجراء يحسب فقط ، لكنه لا يعرض النتيجة على الشاشة.

دائرة الإجراء (r: حقيقي) ؛

يجب أن يعيد الإجراء النتيجة:

دائرة الإجراء (r: حقيقي ؛ var S: حقيقي) ؛

readln (أ ، هـ) ؛

تعليق:يتم استخدام متغير في الإجراء S لإرجاع نتائج الإجراء إلى البرنامج الرئيسي. عندما يتغير ، يتغير أيضًا المعامل الفعلي في برنامج الاستدعاء ، أي متغير ه.

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

الوظيفة هي نفس الإجراء ، ولكن هناك اختلافان.

  • تمرر الوظيفة نتيجة عملها إلى البرنامج - القيمة الوحيدة التي يكون حاملها هو اسم وظيفتها.
  • يمكن تضمين اسم الوظيفة في التعبير كمعامل. ترجع الدالة النتيجة عند نقطة استدعائها.

على سبيل المثال ، سوف تقوم sqr (x) - بتربيع قيمة x وإرجاع القيمة المحسوبة لمربع الرقم x إلى نقطة الاستدعاء: y: = sqr (x) ؛

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

وظيفة<имя>(المعلمات الرسمية):<тип результата>;

<операторы>;

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

مثال 5. دعنا نعيد حل مسألة مساحة الدائرة.

دائرة الوظيفة (r: حقيقي): حقيقي ؛

أ: = دائرة (5) ؛ (تعيين إلزامي)

مثال 6. البحث عن 1! +2! +… + N!

نستخدم دالة إيجاد العامل ، لأننا نعطيها للمدخل ونحصل على النتيجة.

حقيقة الوظيفة (أ: عدد صحيح): عدد صحيح ؛

لأني: = 1 للقيام به

في حقيقة الخط: = حقيقة * أنا ؛

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

عاملي البرنامج

فار سوم ، ن ، ي: عدد صحيح ؛

حقيقة الوظيفة (أ: عدد صحيح): عدد صحيح ؛

var i، d: عدد صحيح ؛

لأني: = 1 للقيام به

لـ j: = 1 to n do

المجموع: = المبلغ + الحقيقة (ي) ؛

رابعا. ملخص الدرس

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

V. الواجب المنزلي

حل المهام (كتابة):

  1. اكتب إجراءً يستبدل جميع الأحرف a بـ * في السلسلة التي تم إدخالها.
  2. يتم إعطاء جملتين. أوجد العدد الإجمالي للأحرف "n" فيها. (حدد وظيفة لحساب عدد الأحرف "n" في الجملة.)