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

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

1. البرمجة الحتمية

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

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

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

مثال برنامج حتمي

#تتضمن 
#تتضمن

هيكل العميل
{
معرف العميل الداخلي ؛
رقم الطلب شار [20]؛
اسم الحرف [30] ؛
تعويم ترتيب المجموع؛
};

باطل رئيسي ()
{
هيكل العميل John = {4000، "HK1001"، "John Doe"، 200.00}؛
هيكل العميل Jane = {4001، "HK1002"، "Jane Doe"، 600.00}؛

memcpy (جين. الاسم "جين جونز" ، 10) ؛

instagram viewer

printf ("التكلفة الإجمالية لرقم طلب٪ s٪ s هي: $٪. 2f"، Jane. الاسم جين. رقم الطلب ، جين. الطلب الكلي)؛
}

يقوم برنامج C أعلاه بإنشاء ملف عميل هيكل. ال هيكل النوع هو مثال رئيسي على تجريد البيانات في C.

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

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

التكلفة الإجمالية لطلب Jane Jones رقم HK1002 هو: $ 600.00

2. البرمجة الشيئية

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

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

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

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

ثلاثة من لغات البرمجة الأكثر شيوعًا التي تستخدم النموذج الموجه للكائنات هي Java و C ++ و Python.

مثال برنامج كائني التوجه

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

ملف Discountable.java

عامةواجهه المستخدم خصم {

عامةفارغ grandTotal (String orderNumber ، مزدوج المجموع)؛

}

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

ملف Customer.java

عامةصف دراسي عميل الأدوات خصم {
محميint هوية الزبون؛
محمي سلسلة اسم العميل ؛
محمي سلسلة رمز العميل ؛

عامة عميل() {
هذه.customerId = 0 ؛
هذه.customerName = ""؛
هذه.customerCode = ""؛
}

عامة عميل(int customerId ، String customerName ، String customerCode) {
هذه.customerId = customerId ؛
هذه.customerName = customerName ؛
هذه.customerCode = customerCode ؛
}

عامةint getCustomerId () {
إرجاع هوية الزبون؛
}
عامةفارغ setCustomerId (int هوية الزبون) {
هذه.customerId = customerId ؛
}
عامة سلسلة getCustomerName () {
إرجاع اسم الزبون؛
}
عامةفارغ setCustomerName (String customerName) {
هذه.customerName = customerName ؛
}
عامة سلسلة getCustomerCode () {
إرجاع كود العميل
}

عامةفارغ setCustomerCode (String customerCode) {
هذه.customerCode = customerCode ؛
}

عامةمزدوج customerType (String customerCode) {
مزدوج الخصم = 0 ؛

إذا (customerCode.toLowerCase (). يساوي ("pre")) {
الخصم = 0.10 ؛
} آخرإذا (customerCode.toLowerCase (). يساوي ("gen")) {
الخصم = 0.02 ؛
} آخرإذا (customerCode.toLowerCase (). يساوي ("جديد")) {
الخصم = 0.05 ؛
}
إرجاع خصم؛
}

@تجاوز
عامةفارغ grandTotal (String orderNumber ، مزدوج المجموع) {

مزدوج الخصم = نوع العميل (كود العميل) ؛
مزدوج discountPercentage = إجمالي * الخصم ؛
مزدوج finalTotal = إجمالي - نسبة الخصم ؛

نظام.خارج.println ("For" + getCustomerName () + "رقم الطلب" + رقم الطلب + "الإجمالي الكلي هو: $" + finalTotal)؛
}

}

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

ملف NewCustomer.java

عامةصف دراسي عميل جديد يمتد عميل {
عامة عميل جديد() {
ممتاز();
}

عامة عميل جديد(int customerId ، String customerName ، String customerCode) {
ممتاز(معرف العميل ، اسم العميل ، رمز العميل) ؛
}

}

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

ملف App.java

عامةصف دراسي تطبيق {
عامةثابتةفارغ main (سلسلة [] args) {
جين العميل = الجديد NewCustomer (4001، "Jane Jones"، "new")؛
Jane.grandTotal ("HK1002"، 600) ؛
}
}

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

بالنسبة إلى طلب Jane Jones رقم HK1002 ، فإن الإجمالي الكلي هو: $ 570.0

3. البرمجة الوظيفية

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

تعد JavaScript واحدة من أشهر لغات البرمجة الوظيفية.

مثال برنامج وظيفي

عميل const = {
رقم المعرف: 1002 ،
الاسم: "جين جونز" ،
رمز العميل: "جديد"
}

const main = (customer، func، value) => {
var total = func.apply (null، [customer. كود العميل ، القيمة]) ؛
console.log (`$ {customer. إجمالي Name} هو: $ {total} `)؛
}

const grandTotal = (CustomerCode، total) => {
إذا (رمز العميل == "جديد") {
الخصم = المجموع * 0.05 ؛
mainTotal = إجمالي - الخصم ؛
عودة mainTotal؛
} else if (CustomerCode == "pre") {
الخصم = الإجمالي * 0.10 ؛
mainTotal = إجمالي - الخصم ؛
عودة mainTotal؛
}
}

main (العميل ، grandTotal ، 600) ؛

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

ال المبلغ الإجمالي() تحتوي الوظيفة على العديد من التعبيرات ، و عميلهدف هو مثال على تجريد البيانات. يولد البرنامج أعلاه الإخراج التالي في وحدة التحكم:

مجموع جين جونز: 570 دولار

تعقيد لغات البرمجة

قد تجسد لغة البرمجة مفاهيم نموذج برمجة واحد ، لكن هذا لا يعني أنها مقتصرة على نموذج واحد. العديد من لغات البرمجة الشائعة (مثل Python و Java و JavaScript و C ++) هي لغات متعددة النماذج.

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

البرمجة الشيئية مقابل. البرمجة الإجرائية: ما الذي يجعلهم مختلفين؟

اقرأ التالي

يشاركسقسقةيشاركبريد الالكتروني

مواضيع ذات صلة

  • برمجة
  • برمجة
  • البرمجة الوظيفية
  • البرمجة الشيئية
  • لغات البرمجة

عن المؤلف

قاديشا كين (تم نشر 51 مقالة)

قاديشا كين مطور برامج متكامل وكاتب تقني / تقني. لديها قدرة مميزة على تبسيط بعض المفاهيم التكنولوجية الأكثر تعقيدًا ؛ إنتاج مادة يمكن لأي مبتدئ في مجال التكنولوجيا فهمها بسهولة. إنها شغوفة بالكتابة وتطوير البرامج الشيقة والسفر حول العالم (من خلال الأفلام الوثائقية).

المزيد من Kadeisha Kean

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك