الخوارزميات الأولية: الترتيب والبحث وتحليل التعقيد
الخوارزميات (Algorithms) هي الأساس المنطقي لكل برنامج ناجح — فهي التي تحدد كيفية معالجة البيانات، وتنظيمها، واتخاذ القرارات.

البرمجة الكائنية (Object-Oriented Programming - OOP) هي أحد أهم الأساليب الحديثة في تطوير البرمجيات.
تُستخدم في لغات مثل Python وJava وC++ وC#، وتُعتبر حجر الأساس لبناء أنظمة معقدة ومنظمة وسهلة الصيانة.
في هذا المقال، سنأخذك إلى تطبيق عملي شامل لمفاهيم OOP، وسنتعرف على:
البرمجة الكائنية تعتمد على تمثيل العناصر في البرنامج ككائنات (Objects) تحتوي على بيانات وسلوك.
كل كائن ينتمي إلى صنف (Class) يحدد خصائصه ووظائفه.
🎯 الفكرة ببساطة: بدل أن تكتب كودًا ضخمًا ومعقدًا، تقسمه إلى “كائنات” مستقلة — مثل “سيارة”، “مستخدم”، “منتج”، وهكذا.
اقرأ أيضًاالمستقبل الرقمي كيف ستغير تقنيات الواقع المعزز (AR)
هو القالب (Blueprint) الذي نُنشئ منه الكائنات.
يُعرّف الخصائص (Attributes) والدوال (Methods).
هو نسخة حقيقية من الصنف تحتوي على بيانات فعلية.
class Car: def __init__(self, brand, model): self.brand = brand self.model = model def start(self): print(f"{self.brand} {self.model} بدأت التشغيل 🚗") # إنشاء كائنات من الصنف
car1 = Car("Toyota", "Corolla")
car2 = Car("BMW", "X5") car1.start()
car2.start()
🟢 النتيجة:
Toyota Corolla بدأت التشغيل 🚗
BMW X5 بدأت التشغيل 🚗
🔸 __init__: دالة تُسمى البنّاء (Constructor) تُستخدم لتهيئة الكائن عند إنشائه.
🔸 self: تشير إلى الكائن نفسه (مثل “أنا” في الجملة).
الوراثة تسمح لك بإنشاء صنف جديد يعتمد على صنف موجود مسبقًا، بحيث يرث خصائصه ووظائفه.
هذا يوفر الوقت ويُقلل تكرار الكود.
class Vehicle: def __init__(self, brand): self.brand = brand def drive(self): print(f"{self.brand} تتحرك للأمام 🚙") # صنف جديد يرث من Vehicle
class Car(Vehicle): def __init__(self, brand, model): super().__init__(brand) self.model = model def info(self): print(f"السيارة: {self.brand} {self.model}") # كائن من الصنف الفرعي
car = Car("Tesla", "Model S")
car.drive()
car.info()
🟢 النتيجة:
Tesla تتحرك للأمام 🚙 السيارة: Tesla Model S
🔹 الكلمة المفتاحية super() تُستخدم لاستدعاء دوال الصنف الأب.
🔹 الوراثة تُساعد في بناء “سلاسل” من الأصناف بحيث تتشارك الخصائص والوظائف.
التغليف هو حماية بيانات الكائن من الوصول أو التعديل المباشر من خارج الصنف.
يتم ذلك عبر جعل الخصائص “خاصة” واستخدام “دوال تحكم”.
class BankAccount: def __init__(self, owner, balance): self.owner = owner self.__balance = balance # خاص (Private) def deposit(self, amount): self.__balance += amount print(f"تم إيداع {amount} ريال. الرصيد الجديد: {self.__balance}") def withdraw(self, amount): if amount <= self.__balance: self.__balance -= amount print(f"تم سحب {amount} ريال. الرصيد المتبقي: {self.__balance}") else: print("رصيد غير كافٍ ❌") # تجربة الصنف
acc = BankAccount("أحمد", 1000)
acc.deposit(500)
acc.withdraw(200)
acc.withdraw(2000)
🟢 النتيجة:
تم إيداع 500 ريال. الرصيد الجديد: 1500 تم سحب 200 ريال. الرصيد المتبقي: 1300 رصيد غير كافٍ ❌
🔸 الخاصية __balance لا يمكن الوصول إليها من خارج الصنف مباشرة.
🔸 هذه الميزة تمنع التلاعب غير المقصود في البيانات الحساسة.
رغم أننا سنفصل في مقال لاحق، من المفيد الإشارة إلى مفهوم التعدد الشكلي.
وهو يعني أن نفس الدالة يمكن أن تعمل بشكل مختلف بحسب الصنف الذي تستخدمه.
class Animal: def sound(self): print("صوت الحيوان") class Dog(Animal): def sound(self): print("الكلب ينبح 🐶") class Cat(Animal): def sound(self): print("القط يموء 🐱") animals = [Dog(), Cat()]
for a in animals: a.sound()
🟢 النتيجة:
الكلب ينبح 🐶 القط يموء 🐱
| الميزة | الوصف |
|---|---|
| 🧩 التنظيم | تقسم المشروع إلى وحدات مستقلة يمكن العمل عليها بسهولة. |
| 🔁 إعادة الاستخدام | الوراثة تُقلل من تكرار الكود. |
| 🔒 الأمان | التغليف يحمي البيانات الحساسة. |
| ⚙️ التوسعية | يسهل إضافة ميزات جديدة دون كسر الكود القديم. |
| 🧠 الفهم | الكود يصبح أقرب للواقع (أشخاص، سيارات، منتجات...). |
class Product: def __init__(self, name, price): self.name = name self.price = price def info(self): return f"{self.name} - {self.price} ريال" class Electronic(Product): def __init__(self, name, price, warranty): super().__init__(name, price) self.warranty = warranty def info(self): return f"{self.name} - {self.price} ريال (ضمان {self.warranty} سنة)" # الاستخدام
p1 = Product("كتاب برمجة", 50)
p2 = Electronic("حاسوب محمول", 4000, 2) print(p1.info())
print(p2.info())
🟢 النتيجة:
كتاب برمجة - 50 ريال حاسوب محمول - 4000 ريال (ضمان 2 سنة)
البرمجة الكائنية ليست مجرد “أسلوب”، بل طريقة تفكير في تصميم البرامج.
بمجرد أن تتقن مفاهيم الأصناف، الوراثة، والتغليف، ستتمكن من كتابة كود أكثر احترافية وتنظيمًا.
تذكر دائمًا:
“البرمجة الجيدة هي التي تجعل التعقيد يبدو بسيطًا.” 💡

الخوارزميات (Algorithms) هي الأساس المنطقي لكل برنامج ناجح — فهي التي تحدد كيفية معالجة البيانات، وتنظيمها، واتخاذ القرارات.

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

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