أنت هنا:برمجها»اللغة ج»الدرس 11: الخوارزميات والدوال
الدرس 11: الخوارزميات والدوال الدرس 11: الخوارزميات والدوال
قيم الموضوع
(2 أصوات)

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


تمهيد

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


1. الخوارزميات

تسمى البرامج الفرعية في لغة ج بالخوارزمياتوالخوارزمية هي برنامج فرعي، لها اسم خاص بها، ولها جسم (أو جسمفيه جمل تنجز عملاً محدداًوتُعرَّف الخوارزمية بواسطة أمر تعريف لها الصيغة العامة التالية:

الخوارزمية<اسم> <قائمة متغيرات معيارية> <فقرة>

أما قائمة المتغيرات المعيارية فلها الصيغة العامة التالية:

( [ [الثابت] <اسم> [، <اسم> …] : <نوع> … ] )

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

مثال

الخوارزمية تربيع(س حقيقي)
{
أكتب س^2
}
تعرف هذا الأمر خوارزمية اسمها تربيع لها متغير معياري وحيد اسمه س، وهو متغير حقيقيويتكون جسم الخوارزمية من إيعاز واحد أكتب س^2 - يعمل عند تنفيذه على كتابة مربع القيمة س على شاشة الكتابةبعد تعريف الخوارزمية يمكن إستدعائها في أي نقطة من البرنامج، بواسطة أمر أنفذ، كما هو مبين أدناه.

 

 تنفيذ الخوارزميات

تنفذ الخوارزمية بواسطة أمر أنفذ التي لها الصيغة العامة التالية:

 [أنفذ] <اسم (خوارزمية أو تابع)> <قائمة متغيرات فعلية>

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

 ( [<عبارة> [، <عبارة> …] )

مثال

الخوارزمية تربيع (س حقيقي)
{
أكتب س^2
}
أنفذ تربيع (25.5)

في هذا المثال ، بعد تعريف الخوارزمية تربيع، تنفذ الخوارزمية بواسطة الإيعاز أنفذ تربيع(25.5)، الذي يستخدم العدد 25.5 كقيمة للمتغير المعياري سوتستخدم هذه القيمة كقيمة فعليةللمتغيرس في الأمرأكتب س^2 ، وتكون نتيجة تنفيذ هذا البرنامج أن تظهرالقيمة 650.25، وهي مربع العدد 25.5، على شاشة الكتابة. 

ويجب أن يكون عدد المتغيرات (أو العباراتفي قائمة المتغيرات الفعلية مساوياً لعدد المتغيرات المعيارية في تعريف الخوارزمية، وأن يتطابق نوع العبارة مع نوع المتغير المعياريالموافق لهلذلكفالأمر التالي:

أنفذ تربيع (25.5 ، 12)

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

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

يعتبر العدد12 عددا مناسبا لأنه يمكن ترقية العدد الصحيح إلى عدد حقيقي في هذه الحالة.
ويمكن تلخيص قواعد تمرير المتغيرات الفعلية إلى الخوارزميات بما يلي:
  1. عدد المتغيرات الفعلية يجب أن يساوي تماماً عدد المتغيرات المعيارية.
  2. نوع المتغير الفعلي يجب أن يطابق نوع المتغير المعياري، إلا إذا كان نوع المتغير المعياري نصياً (صفيفة حروف)، عندها يمكن للمتغير الفعلي أن يكون من أي نوع نصي.
  3. إذا كان المتغير الفعلي عبارة يسارية (أي لا يمكن أن تسند إليها قيمةعندئذ يجب أن يتوافق نوع العبارة مع نوع المتغير المعياري حسب القواعد التالية:
  • إذا لم يكن نوع المتغير المعياري أحد الأنواع الحسابية، عندئذ يجب أن يكون نوع العبارة مطابق تماماً لـنوع المتغير المعياري.
  • إذا كان المتغير المعياري من النوع "حقيقي"، يمكن للعبارة الفعلية أن تكون من أي نوع حسابي.
  • إذا كان المتغير المعياري من الأنواع الحسابية الصحيحة (صحيح أو صغير أو حرفيمكن للعبارة أن تكون من أي نوع حسابي صحيح (صحيح أو صغير أو حرف)لكن يجب على المبرمج في هذه الحالة الانتباه إلى أن قيمة العبارة يجب أن لا تزيد على القيمة العظمى التي يمكن تمثيلها بنوع المتغير المعياري.

المتغيرات الخاصة والمتغيرات العامة

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

مثال

!! تعريف المتغيرات العامة
!! ----------------------
المتحول س صحيح
!! تعريف الخوارزميات
!! -----------------
الخوارزمية تربيع ()
{
المتحول ع صحيح
ع = 10
س ع
}
!! البرنامج الرئيسي
!!-----------------
أنفذ تربيع ()
أكتب س = " ، س
في هذا المثال، يحتوي البرنامج الرئيسي على الأمر "المتحول سصحيحالذي يعرف المتغير س بأنه متغير صحيحولأن هذا الأمر يقع في البرنامج الرئيسي، يصبح المتغير س معرفا في كافة مواضع البرنامج التي تلي أمر تعريفه بما في ذلك جسم الخوارزمية تربيع().
أما الخوارزمية تربيع() فتحتوي على تعريف لمتغير خاص علكن هذا المتغير لا يكون معرفاً إلا داخل جسم هذه الخوارزميةوفي جسم الخوارزمية، يـسند الأمر ع=10 القيمة 10 إلى المتغير الخاص ع، أما الأمر س=ع فيسند قيمة المتغير الخاص ع (10) إلى المتغير العام سأخيراً، يـكتب الأمر الأخير في هذا البرنامج قيمة المتغير سوتبين الصورة التالية نتيجة تنفيذ هذا البرنامج.

تمرير البيانات إلى الخوارزميات والدوال

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

مثال

!! تعريف الخوارزميات
!!-------------------
الخوارزمية تربيع (س حقيقي)
{
س = 15
}
!! البرنامج الرئيسي
!! ----------------
المتحول ع حقيقي
ع = 12.0
أكتب قيمة المتغير ع قبل تنفيذ الخوارزمية تربيع = " ، ع
أكتب سطر
تربيع (ع)
أكتب قيمة المتغير ع بعد تنفيذ الخوارزمية تربيع = " ، ع
أكتب سطر
عندما ينفذ هذا البرنامج، يظهر التالي على شاشة الكتابة:
أي أن تنفيذ الخوارزمية على المتغير الفعلي ع أدى إلى تغيير قيمته بواسطة الأمر س = 15الموجود في جسم الخوارزميةتذكر أن المتغير المعياري س يُستبدل أثناء تنفيذ الخوارزمية بالمتغير الفعلي ع.

 مثال خوارزمية لـتبديل قيمة متحولين

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

مثال

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

أمر أرجع

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

مثال

الخوارزمية مقلوب (ص صحيح)
{
إذا ص=0
{
أكتب "لا يمكن حساب مقلوب س لأن قيمته تساوي الصفر"
أرجع
}
أكتب "مقلوب ، ص ، " = " ، 1 ÷ ص
}
يعرف هذا المثال الخوارزمية "مقلوبالتي تقوم بحساب مقلوب متغير صحيحوقبل حساب مقلوب المتغير يجب التأكد من أنه لا يـساوي الصفرفإذا كانت قيمته فعلاً، تكتب الخوارزمية تنبيها للمستخدم يشير إلى ذلك، وينتهي تنفيذها بواسطة أمر أرجع الذي يعيد التنفيذ إلى النقطة التي استدعيت منها الخوارزميةأما إذا لم تكن قيمة المتغير س مساوية للصفر فتقوم الخوارزمية بكتابة قيمة مقلوب المتغير بواسطة الأمرأكتب "مقلوب "، ص ، " = " ، 1 ÷ ص.

2. الدوال (التوابع)

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

 التابع<اسم الدالة> <متغيرات معيارية-> <نوع (حسابي أو منطقي)> <فقرة>

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

 أرجع<عبارة>

ويجب أن يطابق نوع العبارة في أمر أرجع نوع الدالة المعلن عنه بعد الرمزين -> في أمر تعريف الدالةفإذا كانت الدالة صحيحة لزم أن تكون كل العبارات في أوامر أرجع من النوع الصحيح أيضاً.

مثال

!!تعريف الدالة
!!------------
التابع تا (س حقيقي) -> حقيقي
{
أرجع س^2 + 1
}
!!البرنامج الرئيسي
!!----------------
المتحول ع حقيقي
ع تا (4)
تعرف الجملة الأولى في هذا المثال دالة اسمها تا تأخذ متغيرا حقيقياً واحداً اسمه س وترجع قيمة عددية حقيقيةيحتوي جسم الدالة على أمر واحد هوأرجع س^2+1 الذي يقوم بإنهاء تنفيذ الدالة، ويمنحها في الرجوع قيمة العبارة س^2+1.
وفي الأمر الأخير من هذا المثال يتم استدعاء الدالة تا ضمن العبارة اليسارية لجملة الإسناد ع تا(4). وبنتيجة تنفيذ هذا البرنامج يأخذ المتغير ع القيمة 17 وهي قيمة العبارة 4^2+1.

تمارين تطبيقية

 

التمرين 11.1
قم بترجمة الخوارزم التالي إلى لغة ج
:

المشروع
صحيح أ،ب
0 = أ
0 = ب
تبديل(أ,ب
اكتب أ،ب
نهاية_المشروع

الخوارزمية تبديل(س صحيح ,ش صحيح )
1+سس
1+شش
اكتب ش،س
نهاية_الدالة

 


التمرين 11.2
قم بترجمة الخوارزم التالي إلى لغة ج:

المشروع
صحيح 
أ
2 = أ
اكتب 
أ
آلة(أ) 
اكتب 
أ
نهاية
_المشروع

الخوارزمية آلة(س صحيح)
اكتب 
س
س 1000
اكتب 
س
نهاية
_الدالة

 


التمرين 11.3
قم بترجمة الخوارزم التالي إلى لغة ج
:

المشروع
صحيح أ,ب,ج
أ 
= 2
ب 
= -8
ج 
= 12
اكتب أ
,ب,ج
تغيير
(أ,ب,ج
اكتب أ
,ب,ج
نهاية
_المشروع

الخوارزمية تغيير
(س صحيح ,ش صحيح ,ص صحيح )
صحيح ض

ض 
س
س 
ش
ش 
ص
ص ض
نهاية
_الدالة

 


التمرين 11.4
قم بترجمة الخوارزم التالي إلى لغة ج
:


المشروع
صحيح أ 
,ب,ج
أ 
= 208
ب 
= 5
ج 
= -34
اكتب أ
,ب,ج
معالجة
(أ,ب,ج
اكتب أ
,ب,ج
نهاية
_المشروع


الخوارزمية معالجة(س صحيح ,ش صحيح ,ص صحيح)
صحيح ض

س 
س÷2
ش 
ش×2
ص 
ش+س
اكتب س
,ش,ص
نهاية
_الدالة


 


الأنواع البسيطة

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

 


التمرين 11.6
أنجز الدالة 
سمها متوسط من النوع حقيقي تقوم بإعطاء متوسط عددين حقيقيين مطلوب إدخالهما من طرف المستعمل.

 


التمرين 11.7
أنجز دالتين لحساب القيمة 
دن حيث د من النوع حقيقي وَن من النوع صحيح :
1الدالة أس_1 تكون نتيجتها هي القيمة دن
2الدالة أس_2 تقوم بإعطاء القيمة دن إلى د
أنجز مشروعا لتجربة عمل الدالتين
.

 


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

 


التمرين 11.9
أنجز مشروعا يحتوي على الدالة 
التالية من أجل إظهار جدول قيم الدالة المعرفة كالتالي:

f(x) = sin(x) + ln(x) - 

بحيث س محصور بين و 11.

 


التمرين 11.10
أنجز الدالة 
عدد_الأرقام من نوع صحيح تقوم بأخذ القيمة ن(موجبة أو سالبةمن النوع صحيح، وتكون نتيجتها هي عدد الأرقام المكونة للعدد ن. أنجز مشروعا يقوم بتجربة هذه الدالة.

مثال:

عدد صحيح: 6457392
العدد 6457392 يحتوي علىأرقام.

 


التمرين 11.11

أنجز الدالة عاملي من نوع حقيقي تقوم بأخذ القيمة الصحيحة ن من النوع صحيح، وتكون نتيجتها هي عامل ن.
تذكيرالعاملي  ن! = ن(ن – 1)(ن –2)....3.2.1  لعدد صحيح طبيعي ن مع اعتبار أن  1=!0 .
أنجز مشروعا يقوم تجريب هذه الدالة
.

 


التمرين 11.12
أنجز مشروعا يقوم بإنشاء وإظهار مثلث 
عمر الخيام:

1
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
. . .


لا تقم باستعمال الجدول لكن استعمل العلاقة التالية :




 


الجداول أحادية البعد

التمرين 11.13
أنشئ الدالة 
قراءة_جدول لها معايير أو مداخيل ج و ن و قن تقوم بقراءة البعد أو الرتبة ن وكذلك عناصر جدول نسميه ج من النوع صحيح الرتبة ن يجب أن تكون أصغر من قن. (يجب أن تقوم أنت بتحديد نوع المداخيل)


مثال 
لاستدعاء الدالة نكتبقراءة_جدول(جن, 10)
تقوم هذه الدالة بإعطاء ما يلي ولقراءة الأعداد من لوحة المفاتيح 
:

بعد الجدول (أقصى حد هو 10): 11
بعد الجدول (أقصى حد هو 10): 4
الخانة[1] : 43
الخانة[2] : 55
الخانة[3] : 67
الخانة[4] : 79

 


التمرين 11.14
أنشئ الدالة 
كتابة_جدول لها معيارين أو مدخلين ج و ن تقوم بإعطاء عناصر الجدول ج ذي النوع صحيح.

مثال لاستدعاء الدالة نكتبكتابة_جدول(جن)
تقوم هذه الدالة بإعطاء ما يلي 
:
43 55 67 79

 


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

 


التمرين 11.16
باستعمال دالة التمرين السابق، أنجز مشروعا يمكن من قراءة عناصر جدول 
ج ذي الرتبة أصغر من أو تساوي 100، أظهر الجدول ومجموع عناصره، وكل ذلك باستعمال الدوال.


 


ترتيب عناصر الجدول

التمرين 11.17

أعد كتابة الدالة ترتيب_شال المكتوبة بالخوارزم بلغة ج استعمل الدالة تبديل المعرفة في الدرس.

الدالة_اللارجعية ترتيب_شال(T جدول,N صحيح)
|(*
تقوم هذه الدالة بترتيب عناصر جدول بطريقة SHELL *)
|
النتيجة تكون في الجدول نفسه
|(*
التعريفات*)
|
صحيح SAUT, M, K
|
منطقي TERMINE
نضع في SAUT 
|
طالما (SAUT>1) نفذ
| |
نضع 2÷SAUT في SAUT 
| |
نفذ
| | |
نضع صح في TERMINE 
| | |
من M=1 إلى (N-SAUT) نفذ
| | | |
نضع M+SAUT في 
| | | |
إذاكانت (T[M]>T[K]) إذن 
| | | |تبديل(T[M],T[K])

| | | | |
نضع خطأ في TERMINE 
| | | |
نهاية_إذاكانت
| | |
نهاية_من
| |
طالما(TERMINE<>خطأ)
|
نهاية_طالما
نهاية_الدالة


 


التمرين 11.18

حدد القيمة القصوى من بين عناصر جدول ج ذي الرتبة ن من أوجه ثلاثة :

1- الدالة قصوي_1 ترجع القيمة القصوى.

2- الدالة قصوي_2 ترجع موقع القيمة القصوى في الجدول.

3- الدالة قصوي_3 ترجع عنوان القيمة القصوى.

أنجز برنامجا يـقوم بتجربة عمل هذه الدوال.

 


التمرين 11.19

أنجز الدالة ترتيب_العزل التي تقوم بترتيب جدول (انظر التمرين 9.14)، استعمل الدالة تبديل التي تقوم بإبدال قيمتي متغيرينأنجز برنامجا يـقوم بتجربة عمل هذه الدالة.

 


التمرين 11.20

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

 


التمرين 11.21

أنجز الدالة ترتيب_الوضع التي تستعمل الدالة وضع لترتيب جدول تزايدياأنجز برنامجا يـقوم بتجربة عمل هذه الدالةالطريقة :

 


التمرين 11.22

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

 


التمرين 11.23

أنجز الدالة ترتيب_الفقاعات التي تقوم بترتيب جدول (انظر التمرين 9.15)، وتستعمل الدالة قلب للمساعدةأنجز برنامجا يـقوم بتجربة عمل هذه الدالة.

 


التمرين 11.24

أنجز الدالة توحيد التي تقوم بإنشاء جدول موحد مرتب تزايديا الذي يوحد جدولين ج و خ مرتبين تزايديا ذي الرتبتين ن و م فتصبح رتبته هي ن+م (انظر التمرين 9.13).

استعن بالدالة ترتيب_الفقاعات المعرفة في التمرين السابق.


 


المتسلسلات الحرفية

التمرين 11.25

أنجز الدالة طول_جملة التي ترجع بطول متسلسلة من الحروفلا تستعمل داخلها أي متغير للمساعدة.

 


التمرين 11.26

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

 


التمرين 11.27

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

 


التمرين 11.28

أنجز الدالة عكس_جملة تقوم بعكس حروف متسلسلة حاماستعمل الدالة طول_جملة(انظر أعلاهوكذلك دالة تبديل_حرفين التي تقوم بإبدال متغيرين من نوع حرف.

 


التمرين 11.29

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

ملاحظةالفواصل هي { } () . ، ؟ ....

 


التمرين 11.30

أنجز الدالة كلمة_جملة ترجع عنوان (المؤشركلمة مطلوب البحث عنها داخل جملة إذا كانت موجودة، وإلا فسيكون الرجوع هو رمز نهاية الجملة '0\'.

 


التمرين 11.31

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

 


التمرين 11.32

أنجز الدالة بحث_بجملة ترجع عنوان (المؤشرحام داخل سام، (بمساعدة الدالتين تساوي_جملتين و طول_جملةوإلا فسيكون الرجوع هو رمز نهاية الجملة '0\'.

 


التمرين 11.33

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

 


التمرين 11.34

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

 


التمرين 11.35

أنجز الدالة صحيح_جملة تحول قيمة صحيحة من النوع صحيح إلى متسلسلة حام(عكس التمرين 11.33). (استعمل الدالة عكس_جملة المعرفة أعلاه للمساعدة).

 


التمرين 11.36

أنجز الدالة حقيقي_جملة تحول قيمة صحيحة من النوع حقيقي إلى متسلسلة حام(عكس التمرين 11.34). يتوقف التحويل عند الرقم الرابع بعد الفاصلة.

طريقة اضرب ن في 104 واستعمل الدالة صحيح_جملة.

 


المصفوفات

التمرين 11.37

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

 


التمرين 11.38

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

 


التمرين 11.39

أنجز الدالة جمع_مصفوفة ذات النوع صحيح التي تمكن من حساب عناصر مصفوفة ص.
(قم باختيار أنواع المتغيرات المناسبة).

 


التمرين 11.40

أنجز الدالة جمع_مصفوفتين التي تمكن من حساب مصفوفتين ص و ض.
(قم باختيار أنواع المتغيرات المناسبة).

 صصض

 


التمرين 11.41

أنجز الدالة ضرب_مصفوفة التي تمكن من ضرب عدد ع في مصفوفة ص.
(قم باختيار أنواع المتغيرات المناسبة).

 صع×ص

 


التمرين 11.42

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

 


التمرين 11.43

أنجز الدالة ضرب_مصفوفتين التي تمكن من ضرب المصفوفة ص ذات الرتبتين س وش في المصفوفة ض ذات الرتبتين ش و طوتكون النتيجة في مصفوفة ثالثة ذات الرتبتين س و ط. (قم باختيار أنواع المتغيرات المناسبة).

صص×ض

أنجز مشروعا يقوم باختبار هذه الدالة.

 


مشاريع

 

 حساب النسبة الدائرية π

!! الطريقة الأولىبي = 4 × { مجموع[(-1^ي)÷(2×ي+1)] من ي=0 إلى ن }
التابع بي1 (ن:صحيح) -> حقيقي
{
المتحول ي صحيح
المتحول ب حقيقي
أجعل ب = 0
أكرر من ي=0 إلى ن
أجعل ب ب + -1^ي ÷ (2×ي+1)
أرجع ب × 4
}
!! الطريقة الثانيةبي جذر مجموع[6÷(ي^2)] من ي=1 إلى ن}
التابع بي2 (ن:صحيح) -> حقيقي
{
المتحول ي صحيح
المتحول ب حقيقي
أجعل ب = 0
أكرر من ي =1 إلى ن
أجعل ب ب + 6 ÷ ي^2
أرجع جذر ب
}
أكتب "قيمة بي (بالطريقة الأولى) = " ، بي1(1000) ، سطر
أكتب "قيمة بي (بالطريقة الثانية) = " ، بي2(1000) ، سطر

 

 تشفير النصوص

أدرج "حروف"
التابع تشفير (ح:حرف ف حرف)--> حرف
{
المتحول ص صحيح
إذا نفي (أبجدي (ح))
أرجع ح
ص ح
أكرر
{
ص ص ف
إذا ص > ‘ي‘ ص ص - ‘ي‘ -1 + ‘ء‘
ح ص
}حتى أبجدي (ح)
أرجع ح
}
التابع فك_تشفير (ح:حرف ف حرف)--> حرف
{
المتحول ص صحيح
إذا عكس (أبجدي (ح))
أرجع ح
ص ح
أكرر
{
ص ص ف
إذا ص < ‘ء‘ ص = ‘ي‘ - (‘ء‘ ص) + 1
ح ص
}حتى أبجدي (ح)
أرجع ح
}
المتحول ع صفيفة [256] من حرف
المتحول د صغير
المتحول المفتاح حرف
أكتب "أدخل العبارة المراد تشفيرها:" ، سطر
أقرأ ع
أكتب "أدخل المفتاح :"
أقرأ المفتاح
د =1
أكرر طالما ع[د] <> 0
{
أكتب تشفير (ع[د، المفتاح)
د د + 1
}
أكتب سطر
أكتب "أدخل العبارة المراد فك تشفيرها:" ، سطر
أقرأ ع
أكتب "أدخل المفتاح :"
أقرأ المفتاح
د =1
أكرر طالما ع[د] <> 0
{
أكتب فك_تشفير (ع[د، المفتاح)
د د + 1
}
أكتب سطر
ويبين الشكل التالي مثالاً على تنفيذ هذا البرنامج.



مقالات أخرى من نفس الفئة « الدرس 10: البنيات الدرس 12: الملفات »

أضف تعليقا


إصنعها يريد أن يتأكد أنك لست روبوتا، لذلك أحسب ما يلي:

كود امني
تحديث