Sumayyah A

Members
  • عدد منشوراتي

    2
  • تاريخ الإنضمام

  • تاريخ اخر زياره

السمعه بالموقع

1 Neutral

عن العضو Sumayyah A

  • الرتبه
    مبدع جديد

اخر الزوار

136 زياره للملف الشخصي
  1. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته،، موضوعنا اليوم سيكون عن المصفوفات التي هي من أهم تراكيب البيانات التي نرتب بها البيانات. وهي طريقة مستخدمة في أغلب لغات البرمجة العالية المستوى (high level programming languages). ماهي المصفوفة؟ المصفوفة عبارة عن كائن (Object) يتم فيه تخزين عدد محدد من بيانات من نفس النوع. قد يبدو الكلام النظري هنا صعب الفهم فدعنا نطرح مثالا للتوضيح؛ افترض أن لديك درجة لطالب في مادة الرياضيات وتود تخزينها في البرنامج، سيكون هذا سهلا للغاية كل ما عليك هو إنشاء متغير واحد فقط وتعطيه القيمة (درجة الطالب)، لكن ماذا لو أردت تخزين درجات جميع الطلاب في شعبة الرياضيات (100 طالب)!! من الصعب جدا أن نعرف 100 متغير، غير أن ذلك سيستهلك مساحة كبيرة من الذاكرة. فالحل هو إنشاء مصفوفة! فهنا تكمن فائدة المصفوفات إذ أنك من خلال إنشاء مصفوفة واحدة حجمها 100 ستتمكن من تخزين ال 100 درجة في مكان واحد وباسم متغير واحد. إذن، كيف تنشئ مصفوفة؟ هناك عدة أمور يجب تذكرها جيدًا عند إنشاء المصفوفات: 1- يجب أن تكون جميع البيانات في المصفوفة من نفس النوع (data type). مثال: أن تكون جميع درجات الطلاب من نوع int. 2- يجب أن يكون حجم المصفوفة ثابت لا يتغير (fixed size). مثال: أن يكون حجم مصفوفة درجات الطلاب 100 فلا يمكن إضافة درجة أي طالب بعد ال100. تعريف المصفوفة (Array declaration) يكون كالآتي: مثال: فبعد هذا السطر نكون قد عرفنا المصفوفة فقط ولم ننشئ المصفوفة بعد، بمعنى أنه تم إنشاء اسم متغير يشير إلى null (لا شيء) في الذاكرة. إنشاء المصفوفة (Array creation) يكون كالآتي: مثال: وبعد هذا السطر نكون قد أنشأنا المصفوفة، وأصبح اسم المتغير في الذاكرة يشير إلى المصفوفة التي أنشأناها، والبيانات بداخلها ستكون القيم الابتدائية الخاصة بنوع البيانات. وبإمكاننا أيضا عمل تعريف وإنشاء للمصفوفة في نفس السطر كالآتي: مثال: حسنا، للتو تعلمنا كيف نعرف وننشئ مصفوفة، لكنها ستكون بقيم ابتدائية! ما معنى ذلك؟ أي أن المصفوفة ستكون معبأة بقيم ابتدائية خاصة بنوع البيانات فكما في مثالنا السابق ستكون القيم الابتدائية 0 لأن نوع البيانات هو int بينما لو كان نوع البيانات Boolean ستكون القيم الابتدائية false وهكذا على حسب نوع البيانات. لكننا لا نريد ذلك! نريد أن نعبأ المصفوفة بالقيم التي نريد! ولكن كيف نصل إلى عناصر المصفوفة؟ كل المصفوفات عناصرها مرقمة من 0 إلى (حجم المصفوفة -1) ويسمى هذا الترقيم بال index فهو بمثابة عنوان للعنصر وبه نستطيع الوصول إليه. مثلا لو كان عندي مصفوفة اسمها numbers حجمها 4 لتخزين أربعة أرقام فسيكون ال index لها من 0 إلى 3، إذ أن العنصر الأول سيكون متواجد عند الindex رقم 0 والعنصر الثاني عند الindex رقم 1، وهكذا إلى نهاية المصفوفة. مثلا لو أردنا وضع رقم 5 في العنصر الأول سنقوم بعمل الآتي: ; القيمة المراد وضعها = [index] اسم المتغير ;numbers[0]=5 ولو أردنا وضع رقم 90 في العنصر الأخير سنقوم بعمل الآتي: ; القيمة المراد وضعها = [حجم المصفوفة-1] اسم المتغير ;numbers[numbers.length-1]=90 استخدمنا هنا خاصية خاصة بالمصفوفات تسمى length تعطينا حجم المصفوفة، وقمنا بإنقاص 1 من حجم المصفوفة لأننا سنتعامل مع index وآخر حد للindex هو حجم المصفوفة-1. وكيفية استدعاء هذه الخاصية كالآتي: length.اسم المصفوفة هذه الطريقة مفيدة في حالة أردنا إجراء تعديلات على عناصر محددة، لكن لو أردنا تعبئة المصفوفة كاملة فهذه الطريقة ستكون مضيعة للوقت! لذلك نحتاج أن نسنخدم الloop وهي أن نمر على كل عنصر بالترتيب ونضع فيها القيمة التي نريدها. مثلا لو أردنا إنشاء مصفوفة حجمها 5 فيها الأرقام من 1 إلى 5 سيكون كالآتي: *هنا i+1 لأن index يبدأ من الصفر ونحن نريد المصفوفة تبدأ من رقم 1. ولو أردنا طباعة عناصر المصفوفة سنحتاج إلى loop أيضا كالتالي: Output: وهكذا في جميع العمليات التي تجرى على المصفوفات سنحتاج إلى loop وننتبه إلى أن الloop يجب أن تنتهي عند آخر index في المصفوفة ولا تزيد لكيلا يظهر الخطأ ArraysOutOfBoundException. *المصادر: كتاب Introduction to Java programming, Tenth Edition, Y. Daniel Liang.
  2. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته،، موضوعنا اليوم سيكون عن المصفوفات التي هي من أهم تراكيب البيانات التي نرتب بها البيانات. وهي طريقة مستخدمة في أغلب لغات البرمجة العالية المستوى (high level programming languages). ماهي المصفوفة؟ المصفوفة عبارة عن كائن (Object) يتم فيه تخزين عدد محدد من بيانات من نفس النوع. قد يبدو الكلام النظري هنا صعب الفهم فدعنا نطرح مثالا للتوضيح؛ افترض أن لديك درجة لطالب في مادة الرياضيات وتود تخزينها في البرنامج، سيكون هذا سهلا للغاية كل ما عليك هو إنشاء متغير واحد فقط وتعطيه القيمة (درجة الطالب)، لكن ماذا لو أردت تخزين درجات جميع الطلاب في شعبة الرياضيات (100 طالب)!! من الصعب جدا أن نعرف 100 متغير، غير أن ذلك سيستهلك مساحة كبيرة من الذاكرة. فالحل هو إنشاء مصفوفة! فهنا تكمن فائدة المصفوفات إذ أنك من خلال إنشاء مصفوفة واحدة حجمها 100 ستتمكن من تخزين ال 100 درجة في مكان واحد وباسم متغير واحد. إذن، كيف تنشئ مصفوفة؟ هناك عدة أمور يجب تذكرها جيدًا عند إنشاء المصفوفات: 1- يجب أن تكون جميع البيانات في المصفوفة من نفس النوع (data type). مثال: أن تكون جميع درجات الطلاب من نوع int. 2- يجب أن يكون حجم المصفوفة ثابت لا يتغير (fixed size). مثال: أن يكون حجم مصفوفة درجات الطلاب 100 فلا يمكن إضافة درجة أي طالب بعد ال100. تعريف المصفوفة (Array declaration) يكون كالآتي: مثال: فبعد هذا السطر نكون قد عرفنا المصفوفة فقط ولم ننشئ المصفوفة بعد، بمعنى أنه تم إنشاء اسم متغير يشير إلى null (لا شيء) في الذاكرة. إنشاء المصفوفة (Array creation) يكون كالآتي: مثال: وبعد هذا السطر نكون قد أنشأنا المصفوفة، وأصبح اسم المتغير في الذاكرة يشير إلى المصفوفة التي أنشأناها، والبيانات بداخلها ستكون القيم الابتدائية الخاصة بنوع البيانات. وبإمكاننا أيضا عمل تعريف وإنشاء للمصفوفة في نفس السطر كالآتي: مثال: حسنا، للتو تعلمنا كيف نعرف وننشئ مصفوفة، لكنها ستكون بقيم ابتدائية! ما معنى ذلك؟ أي أن المصفوفة ستكون معبأة بقيم ابتدائية خاصة بنوع البيانات فكما في مثالنا السابق ستكون القيم الابتدائية 0 لأن نوع البيانات هو int بينما لو كان نوع البيانات Boolean ستكون القيم الابتدائية false وهكذا على حسب نوع البيانات. لكننا لا نريد ذلك! نريد أن نعبأ المصفوفة بالقيم التي نريد! ولكن كيف نصل إلى عناصر المصفوفة؟ كل المصفوفات عناصرها مرقمة من 0 إلى (حجم المصفوفة -1) ويسمى هذا الترقيم بال index فهو بمثابة عنوان للعنصر وبه نستطيع الوصول إليه. مثلا لو كان عندي مصفوفة اسمها numbers حجمها 4 لتخزين أربعة أرقام فسيكون ال index لها من 0 إلى 3، إذ أن العنصر الأول سيكون متواجد عند الindex رقم 0 والعنصر الثاني عند الindex رقم 1، وهكذا إلى نهاية المصفوفة. مثلا لو أردنا وضع رقم 5 في العنصر الأول سنقوم بعمل الآتي: ; القيمة المراد وضعها = [index] اسم المتغير ;numbers[0]=5 ولو أردنا وضع رقم 90 في العنصر الأخير سنقوم بعمل الآتي: ; القيمة المراد وضعها = [حجم المصفوفة-1] اسم المتغير ;numbers[numbers.length-1]=90 استخدمنا هنا خاصية خاصة بالمصفوفات تسمى length تعطينا حجم المصفوفة، وقمنا بإنقاص 1 من حجم المصفوفة لأننا سنتعامل مع index وآخر حد للindex هو حجم المصفوفة-1. وكيفية استدعاء هذه الخاصية كالآتي: length.اسم المصفوفة هذه الطريقة مفيدة في حالة أردنا إجراء تعديلات على عناصر محددة، لكن لو أردنا تعبئة المصفوفة كاملة فهذه الطريقة ستكون مضيعة للوقت! لذلك نحتاج أن نسنخدم الloop وهي أن نمر على كل عنصر بالترتيب ونضع فيها القيمة التي نريدها. مثلا لو أردنا إنشاء مصفوفة حجمها 5 فيها الأرقام من 1 إلى 5 سيكون كالآتي: *هنا i+1 لأن index يبدأ من الصفر ونحن نريد المصفوفة تبدأ من رقم 1. ولو أردنا طباعة عناصر المصفوفة سنحتاج إلى loop أيضا كالتالي: Output: وهكذا في جميع العمليات التي تجرى على المصفوفات سنحتاج إلى loop وننتبه إلى أن الloop يجب أن تنتهي عند آخر index في المصفوفة ولا تزيد لكيلا يظهر الخطأ ArraysOutOfBoundException. *المصادر: كتاب Introduction to Java programming, Tenth Edition, Y. Daniel Liang.
  3. شرح الـ Interface في جافا ما هو الـ interface؟ الـ interface يشبه كثيرا الـ abstract class في أنه يحدد خصائص مشتركة للكائنات (objects) في كلاسات لها علاقةوراثية ببعضها (Inheratance) بالإضافة إلى أنه يحدد يحدد خصائص مشتركة للكائنات (objects) في كلاسات ليس بالضرورة أن يكون لها علاقة ببعضها وهو ما يميز الـ Interface. لم تضح الصورة لك بعد؟ لا بأس سأشرح لك بمثال لو كان عندي Abstract class اسميته Fruits وهو (parent class (super class لمجموعة من الفواكه هي الموز والبرتقال (child classes) وأنشأت Abstract class آخر أسميته Animals وهو (parent class (super class لمجموعة من الحيوانات الدجاجة والأسد (child classes)، ثم أنشأت Interface أسميته Eddible (قابل للأكل). لاحظ أن الموز والبرتقال بإمكاننا أن نقول أنها فواكه لأن العلاقة هنا وراثية (Inheratance) فأي موزة هي فاكهة وأي برتقال هو فاكهة، وأيضا بإمكاننا أن نقول أن الموز والبرتقال قابلان للأكل. والشئ نفسه ينطبق على الدجاجة والأسد في كونهما حيوانات لأن العلاقة وراثية فأي دجاجة هي حيوان وأي أسد هو حيوان،وأيضا بإمكاننا أن نقول أن الدجاجة قابلة للأكل لكن لا يمكننا القول بأن الأسد قابل للأكل فهنا الـEdible interface سيصلح فقط للدجاجة دون الأسد. إن ما أردت توضيحه هو أن الفواكه والحيوانات ليس لها رابطة واضحة أو خصائص مشتركة لكن الـ Interface أوجد خاصية مشتركة بينها وهي قابلية الأكل وهذا ما يميز الـInterface عن الـabstract class. لماذا نستخدم الـ interface؟ ببساطة لأن Java لايدعم Multiple Inheratance (الوراثة المتعددة)، وفي أغلب الأحيان نحتاج لأكثر من كلاس لنأخذ منه خصائص مشتركة فالحل هو الـInterface. *ملاحظة: بإمكان الكلاس أن يكون له علاقة وراثية واحدة فقط أي أن يكون له Super classs واحد فقط، بينما بإمكانه أن يكون متعدد الـInterfaces وتسمى هذه العلاقة Interface Inheratance. كيف ننشئ الـ interface؟ الصيغة العامة للـInterface هي: مثال: كيف نستخدم الـ interface؟ ليستخدم الكلاس الـInterface المطلوب نستخدم كلمة implements بعد اسم الكلاس وقبل اسم الـ Ineterface كما هو موضح في المثال. وبطبيعة الحال بما أن في الـInterface يوجد Abstarct Method فيجب علينا أن ننفذ Implementation للميثود في الكلاس الذي استدعى الـInterface وإلا ستبقى الميثود abstract وسيتحول الكلاس إلى abstract class. مثال: main class: Output: *المصادر: كتاب Introduction to Java programming, Tenth Edition, Y. Daniel Liang.
  4. شرح الـ Interface في جافا ما هو الـ interface؟ الـ interface يشبه كثيرا الـ abstract class في أنه يحدد خصائص مشتركة للكائنات (objects) في كلاسات لها علاقةوراثية ببعضها (Inheratance) بالإضافة إلى أنه يحدد يحدد خصائص مشتركة للكائنات (objects) في كلاسات ليس بالضرورة أن يكون لها علاقة ببعضها وهو ما يميز الـ Interface. لم تضح الصورة لك بعد؟ لا بأس سأشرح لك بمثال لو كان عندي Abstract class اسميته Fruits وهو (parent class (super class لمجموعة من الفواكه هي الموز والبرتقال (child classes) وأنشأت Abstract class آخر أسميته Animals وهو (parent class (super class لمجموعة من الحيوانات الدجاجة والأسد (child classes)، ثم أنشأت Interface أسميته Eddible (قابل للأكل). لاحظ أن الموز والبرتقال بإمكاننا أن نقول أنها فواكه لأن العلاقة هنا وراثية (Inheratance) فأي موزة هي فاكهة وأي برتقال هو فاكهة، وأيضا بإمكاننا أن نقول أن الموز والبرتقال قابلان للأكل. والشئ نفسه ينطبق على الدجاجة والأسد في كونهما حيوانات لأن العلاقة وراثية فأي دجاجة هي حيوان وأي أسد هو حيوان،وأيضا بإمكاننا أن نقول أن الدجاجة قابلة للأكل لكن لا يمكننا القول بأن الأسد قابل للأكل فهنا الـEdible interface سيصلح فقط للدجاجة دون الأسد. إن ما أردت توضيحه هو أن الفواكه والحيوانات ليس لها رابطة واضحة أو خصائص مشتركة لكن الـ Interface أوجد خاصية مشتركة بينها وهي قابلية الأكل وهذا ما يميز الـInterface عن الـabstract class. لماذا نستخدم الـ interface؟ ببساطة لأن Java لايدعم Multiple Inheratance (الوراثة المتعددة)، وفي أغلب الأحيان نحتاج لأكثر من كلاس لنأخذ منه خصائص مشتركة فالحل هو الـInterface. *ملاحظة: بإمكان الكلاس أن يكون له علاقة وراثية واحدة فقط أي أن يكون له Super classs واحد فقط، بينما بإمكانه أن يكون متعدد الـInterfaces وتسمى هذه العلاقة Interface Inheratance. كيف ننشئ الـ interface؟ الصيغة العامة للـInterface هي: مثال: كيف نستخدم الـ interface؟ ليستخدم الكلاس الـInterface المطلوب نستخدم كلمة implements بعد اسم الكلاس وقبل اسم الـ Ineterface كما هو موضح في المثال. وبطبيعة الحال بما أن في الـInterface يوجد Abstarct Method فيجب علينا أن ننفذ Implementation للميثود في الكلاس الذي استدعى الـInterface وإلا ستبقى الميثود abstract وسيتحول الكلاس إلى abstract class. مثال: main class: Output: *المصادر: كتاب Introduction to Java programming, Tenth Edition, Y. Daniel Liang.

عالم البرمجة

عالم البرمجة مقالات برمجة و دورات مجانية لإحتراف البرمجة هدفنا تبسيط البرمجة ونشرها بيد الكل بشكل ممتع ومتطور ومحدث بإستمرار لمواكبة جديد تطورات البرمجة الحديثة و المتقدمة بدون مقابل