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

الفرق بين الكائنات القابلة للتكرار و الغير قابلة للتكرار

Laith Aboshker

السؤال

Recommended Posts

  • 0

إذا كان السؤال خاص بأحد دورات حسوب فأرجو منك طرح السؤال أسفل فيديو الدورة الخاص بالسؤال.

وبخصوص سؤالك:

الكائنات القابلة للتكرار هي الكائنات التي يمكن إنشاؤها أكثر من مرة في نفس الزمن، وتحتفظ بمعرف فريد لكل كائن.

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

أما الكائنات غير القابلة للتكرار، فهي الكائنات التي يمكن إنشاؤها مرة واحدة فقط خلال البرنامج، وبمجرد إنشائها لا يمكن إنشاؤها مرة أخرى.

على سبيل المثال، في لغة البرمجة، قد يكون لدينا ثابت (Constant) معين يحمل قيمة ثابتة، ولا يمكن تغييره أو إعادة إنشائه في أي مكان آخر في البرنامج.

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

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

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

تُشير كلمة "الكائنات القابلة للتكرار" إلى المتغيرات التي تحتوي على مجموعة من العناصر التي يمكن الوصول إليها بشكل فردي باستخدام فهرس معين، مثل قوائم الأشياء والمصفوفات والمجموعات والخرائط وغيرها. يتم التعامل مع هذه الكائنات باستخدام حلقات الـ for أو while أو forEach للوصول إلى كل عنصر في الكائن وتنفيذ العمليات المطلوبة.

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

أمثلة على الكائنات القابلة للتكرار:

  • مصفوفة (Array)، وهي متغير يحتوي على مجموعة من القيم من نفس النوع، ويمكن الوصول إلى كل قيمة في المصفوفة باستخدام فهرس.
  • قائمة (List)، وهي تشابه المصفوفة إلا أنها تستخدم في لغات البرمجة التي تدعم البرمجة الشيئية، وتحتوي على مجموعة من العناصر التي يمكن الوصول إليها باستخدام فهرس.
  • مجموعة (Set)، وهي تحتوي على مجموعة من العناصر الفريدة التي لا تتكرر، ولا يمكن الوصول إلى كل عنصر بشكل محدد باستخدام فهرس.

أمثلة على الكائنات غير القابلة للتكرار:

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

هذا مثال شامل بالكود يوضح الفرق بين الكائنات القابلة للتكرار والكائنات غير القابلة للتكرار باستخدام لغة الجافاسكريبت:
 

// كائنات قابلة للتكرار
// مصفوفة
let myArray = [1, 2, 3, 4, 5];
console.log(myArray[0]); // الوصول إلى القيمة الأولى في المصفوفة
console.log(myArray.length); // طول المصفوفة

// قائمة
let myList = ["apple", "banana", "orange"];
console.log(myList[2]); // الوصول إلى العنصر الثالث في القائمة
console.log(myList.length); // طول القائمة

// مجموعة
let mySet = new Set([1, 2, 3, 4, 5, 5, 5]);
console.log(mySet.has(3)); // التحقق من وجود القيمة 3 في المجموعة
console.log(mySet.size); // حجم المجموعة


// كائنات غير قابلة للتكرار
// متغير
let myVariable = 10;
console.log(myVariable);

// ثابت
const MY_CONST = 5;
console.log(MY_CONST);

// صنف
class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  greeting() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

let person1 = new Person("John", 30);
person1.greeting();

 

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

 

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

في البرمجة، تشير كلمة "الكائن" (Object) إلى أي شيء يمكن التلاعب به في البرنامج. ويمكن تقسيم الكائنات في البرمجة إلى قسمين رئيسيين: الكائنات القابلة للتكرار (Mutable Objects) والكائنات غير القابلة للتكرار (Immutable Objects).

الكائنات القابلة للتكرار (Mutable Objects): هي الكائنات التي يمكن تغييرها أو تعديلها بعد إنشائها. وهذا يعني أن البرنامج يمكنه تغيير قيم الكائنات القابلة للتكرار خلال تنفيذه. وبعض أمثلة الكائنات القابلة للتكرار تشمل: القوائم (Lists)، والمصفوفات (Arrays)، والمجموعات (Sets)، وقواعد البيانات (Databases).

الكائنات غير القابلة للتكرار (Immutable Objects): هي الكائنات التي لا يمكن تغييرها بعد إنشائها. وهذا يعني أن البرنامج لا يمكنه تعديل قيم الكائنات غير القابلة للتكرار. وبعض أمثلة الكائنات غير القابلة للتكرار تشمل: الأعداد (Numbers)، والسلاسل (Strings)، والتفاصيل (Tuples)، والقواميس (Dictionaries).

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

هنا بعض الأمثلة على الكائنات القابلة للتكرار والغير القابلة للتكرار في Python:

الكائنات القابلة للتكرار:

القوائم (Lists)

يمكن إنشاء قائمة جديدة واضافة عنصر جديد إليها باستخدام الدالة append():

my_list = [1, 2, 3, 4] 
my_list.append(5) 
print(my_list) # [1, 2, 3, 4, 5]

المصفوفات (Arrays)

يمكن إنشاء مصفوفة جديدة والتعامل معها باستخدام المكتبة numpy:

import numpy as np 
my_array = np.array([1, 2, 3, 4, 5]) 
print(my_array) # [1, 2, 3, 4, 5]

الكائنات غير القابلة للتكرار:

الأعداد (Numbers)

يمكن إنشاء متغير جديد وتعيينه بقيمة رقمية:

my_number = 10 
print(my_number) # 10

السلاسل (Strings)

يمكن إنشاء سلسلة جديدة والتلاعب بها باستخدام العديد من العمليات المتاحة للسلاسل، مثل الجمع والتكرار:

my_string = "Hello" 
print(my_string + " World") # Hello World print(my_string * 3) # HelloHelloHello

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

في البرمجة، يوجد نوعان من الكائنات: القابلة للتكرار والغير قابلة للتكرار. ويعني الكائن القابل للتكرار كائن يمكن الوصول إليها بطريقة تسلسلية وفي نفس الترتيب الموجود داخله، بينما الكائن غير القابل للتكرار هو كائن لا يوجد فيه ترتيب معين.

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

هنا بعض الأمثلة على الكائنات القابلة للتكرار والغير قابلة للتكرار في لغة بايثون:

الكائنات القابلة للتكرار:
- القوائم (Lists): وهي مجموعة من عناصر متسلسلة مفصولة بفاصلة ومحاطة بقوسين مربعين. يمكن الوصول إلى العناصر المختلفة داخل القائمة باستخدام الفهرسة.
مثال: 

fruits = ["apple", "banana", "orange"]
for fruit in fruits:
    print(fruit)

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

word = "Python"
for letter in word:
    print(letter)

- مدخلات المستخدم: يمكن للمستخدم إدخال العديد من القيم دفعة واحدة، وعادة ما يتم استلام القيم باستخدام دالة input() وتخزن الإدخالات المختلفة كنوع البيانات للقائمة.
مثال:

names = input("Enter names separated by whitespace: ").split()
for name in names:
    print(name)

الكائنات غير القابلة للتكرار: 
- تعتبر القواميس (Dictionaries) كائنات غير قابلة للتكرار (non-iterable)، وذلك لأنها لا تملك مفهومًا للترتيب، وبالتالي لا يمكن الوصول إليها باستخدام الفهرس التقليدي كما هو الحال في القوائم (Lists) والأُتناسقات (Tuples).

بدلاً من ذلك، يتم الوصول إلى قيم القاموس باستخدام المفاتيح (Keys) الموجودة فيه. يمكن تعريف القاموس في بايثون باستخدام الأقواس{}، ويحتوي كل عنصر من عناصر القاموس على مفتاح وقيمة.

فيما يلي مثال يوضح استخدام القاموس في بايثون:

# تعريف القاموس
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}

# الوصول إلى القيم في القاموس باستخدام المفاتيح
print(my_dict['name']) # سيطبع John
print(my_dict['age']) # سيطبع 25
print(my_dict['city']) # سيطبع New York

كما يمكن الوصول إلى جميع المفاتيح والقيم في القاموس باستخدام الدالة items()، ويمكن استخدام حلقة تكرار (loop) للوصول إلى كل مفتاح وقيمته:

# الوصول إلى جميع المفاتيح والقيم في القاموس
for key, value in my_dict.items():
  print(key, value)
  
# سيطبع:
# name John
# age 25
# city New York
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...