اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله تعالى وبركاته،

البرمجة الإجرائية (Procedural Programming) هي نمط برمجة يعتمد على تقسيم البرنامج إلى مجموعة من الإجراءات أو الدوال (Functions) التي تنفذ سلسلة من الأوامر خطوة بخطوة.

وفي هذا النمط يكون التركيز على "ما يجب فعله" من خلال تسلسل منطقي من التعليمات ويتم تنظيم الكود بشكل هرمي حيث تبدأ التعليمات من الأعلى للأسفل ويستخدم التفرع مثل if-else والحلقات مثل for وwhile لتوجيه سير التنفيذ وأما البيانات عادة فتكون منفصلة عن الدوال ولا يتم ربطها مع السلوك كما في البرمجة الكائنية.

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

  • 0
نشر

البرمجة الإجرائية (Procedural Programming) هي نموذج برمجي يعتمد على تنظيم الكود في شكل إجراءات أو دوال منفصلة تستدعى بتسلسل محدد fpde يقوم هذا النموذج على مبدأ "فرµق تسد" حيث يتم تقسيم المشكلة الكبيرة إلى مشاكل أصغر يتم حلها بواسطة دوال منفصلة والبيانات والدوال تكون منفصلة عن بعضها البعض وتمرر البيانات كمعاملات للدوال التي تعالجها وترجع النتائج.

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

من أشهر لغات البرمجة الإجرائية: C و Pascal و COBOL و FORTRAN و أجزاء من JavaScript و Python.

يمكنك التعرف عليها أكثر من هنا:

  • 0
نشر

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

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

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

للتوضيح:

account_balance = 0.0

def deposit(amount):
    """Procedure to add an amount to the overall balance"""
    global account_balance  
    account_balance += amount
    print(f"Deposited {amount}. New balance: {account_balance}")

def withdraw(amount):
    global account_balance
    if amount <= account_balance:
        account_balance -= amount
        print(f"Withdrew {amount}. New balance: {account_balance}")
    else:
        print("Error: Insufficient balance.")

def show_balance():
    print(f"Current balance is: {account_balance}")

show_balance()
deposit(1000)
withdraw(300)
show_balance()

account_balance = -5000.0  
print("Balance manipulated from outside the functions!")
show_balance()

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

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

ونفس الكود السابق يُصبح كالتالي:

class BankAccount:
    def __init__(self, initial_balance=0.0):
        self.balance = initial_balance
    
    def deposit(self, amount):
        if amount > 0:
            self.balance += amount
            print(f"Deposited {amount}. New balance: {self.balance}")

    def withdraw(self, amount):
        if amount <= self.balance:
            self.balance -= amount
            print(f"Withdrew {amount}. New balance: {self.balance}")
        else:
            print("Error: Insufficient balance.")

    def show_balance(self):
        print(f"Current balance is: {self.balance}")


account1 = BankAccount(1000) 
account2 = BankAccount(5000)

account1.show_balance()
account1.deposit(200)
account1.withdraw(50)

account2.show_balance()
account2.withdraw(1000)

print("Final balance of the first account:")
account1.show_balance()
print("Final balance of the second account:")
account2.show_balance()

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...