Mission Carthage

الرئيسية › الدروس › الدوال والإجراءات

الدوال والإجراءات (fonctions وprocédures)

الفصل 10 · السنة الثانية ثانوي تكنولوجيات الإعلامية

قسّم مشكل كبير لقطع صغيرة تتعاود تستعملها.

دروس هذا الفصل

  1. الدوال (Fonctions)
  2. الإجراءات (Procédures)
  3. التحليل إلى وحدات

الدرس 10.1 : الدوال (Fonctions)

9 دقيقة

الـ sous-programme هو برنامج صغير عندو اسم تنجم تناديه وقت ما تحب، قدّاش ما تحب من مرّة. يغنيك على نسخ نفس الكود. فما زوز أنواع: الدوال (fonctions) (ترجّع قيمة) والإجراءات (procédures) (تعمل عمل).

كتابة دالة

الـ paramètres

الـ paramètres هي القيم اللي الدالة تاخذها (الـ entrées). return تعطي النتيجة وتوقّف الدالة: السطور اللي بعد return تتخدم ما تتقراش.

انتبه : دالة من غير return ترجّع None (والو). كان البرنامج متاعك يكتب None، أكيد نسيت الـ return.

بـ Python

نعرّفو الدالة قبل ما نستعملوها. البرنامج الرئيسي تحتها.

def carre(x):
    return x * x

print("Donner un nombre :")
n = int(input())
print("Son carré est", carre(n))

بـ algorithme

الدالة تتكتب قبل الـ algorithme الرئيسي.

DEF FN carre (x : Entier) : Entier
Début
  Retourner x * x
Fin

Algorithme Principal
Début
  Ecrire("Donner un nombre :")
  Lire(n)
  Ecrire("Son carré est ", carre(n))
Fin

TDO
Objet | Type/Nature
n | Entier

الدرس 10.2 : الإجراءات (Procédures)

8 دقيقة

الـ procédure تعمل عمل (تكتب، تبدّل…) أما ما ترجّع والو. نناديوها كيما تعليمة. في الـ algorithme: DEF PROC nom (paramètres). في Python، هي دالة من غير return.

نصيحة : قاعدة: كان الـ sous-programme لازم يعطي نتيجة للبرنامج الرئيسي، هو دالة. كان لازم برك يكتب ولا يبدّل حاجة، هو procédure.

انتبه : المتغيّرات اللي تتصنع داخل sous-programme هي locales: موجودة برك وقت يتخدم. البرنامج الرئيسي ما يشوفهاش.

بـ Python

الـ procédure bonjour تتنادى مرّتين، بزوز paramètres مختلفين.

def bonjour(nom):
    print("Bonjour", nom)

bonjour("Amira")
bonjour("Sami")

بـ algorithme

الـ procédure تتنادى بإسمها برك.

DEF PROC bonjour (nom : Chaîne)
Début
  Ecrire("Bonjour ", nom)
Fin

Algorithme Principal
Début
  bonjour("Amira")
  bonjour("Sami")
Fin

الدرس 10.3 : التحليل إلى وحدات

9 دقيقة

الـ analyse modulaire معناها نقسّمو مشكل لـ modules: كل module هو sous-programme يعمل حاجة وحدة. البرنامج الرئيسي يناديهم بالترتيب الصحيح. أسهل في الكتابة والاختبار والتصليح.

الطريقة

نصيحة : في الفرض، يطلبو منك برشا تعطي الـ TDO ودور كل module. تعوّد تكتب في جملة وحدة شنوّة يعمل كل sous-programme.

بـ Python

الـ module est_premier يجاوب على سؤال وحيد. البرنامج الرئيسي يعدّ الأعداد الأولية من 1 لـ n.

def est_premier(n):
    if n < 2:
        return False
    for d in range(2, n):
        if n % d == 0:
            return False
    return True

n = int(input())
c = 0
for k in range(1, n + 1):
    if est_premier(k):
        c = c + 1
print("Nombre de premiers :", c)

بـ algorithme

المتغيّرات الـ locales متاع الـ module تتعرّف في الـ TDO متاعو، قبل الـ Début متاعو.

DEF FN est_premier (n : Entier) : Booléen
TDO
Objet | Type/Nature
d | Entier
Début
  Si n < 2 Alors
    Retourner faux
  FinSi
  Pour d de 2 à n - 1 Faire
    Si n mod d = 0 Alors
      Retourner faux
    FinSi
  FinPour
  Retourner vrai
Fin

Algorithme Premiers
Début
  Lire(n)
  c ← 0
  Pour k de 1 à n Faire
    Si est_premier(k) Alors
      c ← c + 1
    FinSi
  FinPour
  Ecrire("Nombre de premiers : ", c)
Fin

TDO
Objet | Type/Nature
n, c, k | Entier

تدرّب مجانًا

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

افتح الفصل في Mission Carthage جرّب في الكومبيلاتور أونلاين

← الفصل اللي قبل : الجداول (Tableaux) · الفصل اللي بعد : صفحات الويب: HTML →

كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة

الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.