هل يمكنكم مساعدتي في فهم هاذا السؤال ولم أستطيع


التعليقات

نص السؤال:

  • قم بإنشاء فئة (class) باسم Time تحتوي على خاصيتين أعداد صحيحة هما الساعات hours والدقائق minutes

  • تخزين الساعات يكون بنظام الأربعة وعشرون ساعة من 0 إلى 23

  • أضف دالة تقوم بعرض حقلي الساعات والدقائق والفاصل بينهما النقطتان الرأسيتان (تأكد من عرض الدقائق من خانتين كمثال الساعة الثالثة تُعرض بالشكل 3:00 ولا تعرض بالشكل 3:0 )

  • أضف دالة أُخرى تأخذ وسيط عدد صحيح عبارة عن عدد الدقائق وإضافته للوقت، الدالة تقوم بتحديث الوقت من خلال وسيط الدقائق المُمرر إليها وكمثال: الساعة 12:30 مضاف إليها 15 دقيقة تصبح 12:45 و الساعة 14:45 مضاف إليها 20 دقيقة تصبح 15:10 والساعة 23:59 مضاف إليها 2 دقيقة تصبح 0:01 وهكذا...

  • الباني(constructor) للفئة Time يتطلب وسيط عبارة عن عدد الساعات ووسيط إختياري عبارة عن عدد الدقائق، يتم تخصيص القيمة صفر في حالة عدم وجود وسائط تم تمريرها لباني الفئة.

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

  • قم بإنشاء الدالة الرئيسة main والتي تحتوي على مصفوفة بها أربع كائنات مُنشئة من الفئة Time لعرض الأربع أوقات السابقة بعد تمرير عدد الدقائق لها كما في المثال أعلاه.

"تخزين الساعات يكون بنظام الأربعة وعشرون ساعة من 0 إلى 23"

لم أفهم هاذا الشيء

 كيف أخزنها..اذا كان ممكن أن توضح لي أكثر

وأشكرك جداً على ردك..

المقصود بالتخزين هنا هو حفظ قيمة الساعة في الخاصية hours والدقائق في الخاصية minutes

وفي حالة إنشاء أربع كائنات من الفئة Time يكون لدينا أربع أوقات

العفو على الرحب والسعة

الساعة يمكن تخزينها بطريقتين

إما مثلا أن تقول "8 مساءا" أو تقول "20"

وهم طلبو أن تخزنها بالطريقة الثانية يعني "20"

هاذا الشيء يكون من اليوزر ادخاله ؟

أم اذا دخلت 8 مساءً يعرض لي هو

20

أشكرك على الرد

آسف لم أتعلم ال class ولا ++C

لا توجد مشكلة

كفاية انك أجبت على سؤالي

أشكرك :)

ألست مبرمج JS ؟ اعتقد ان تعلم مفاهيم الـ OOP سيفيدك ، خصوصا بعد الباك في البرمجة :)

في الدورات التي تابعت لم يتحدثوا عن ال class

لاكن شاهدت بعض الدروس عن OOP وفهمت أنها تتعامل مع الكائنات مثل

var obj = {a: 1, b:2, c:3};

على كل حال سوف أبحث عن ال OOP فيبدو أنها مجال واسع

هل في JavaScript ما يسمى ب class ؟

أخي أنا جديدة على البرمجة

لقد بدأت أمارسها قبل 5 أشهر تقريبا

كما انني طالبة جامعية

هل يمكنك أن تعطيني خلفية عن ماذا تتحدث؟

OOP = Object Oriented Programming

هذا سيلخص كل ما أريد كتابته

بالتوفيق :)

شكراا كثيراً لك

  • JS ليست مثال جيد لتعلم الـ OOP، هي فعلاً مرنة بحيث توفر لك استخدام اسلوب البرمجة الكائنية ولكن لفهم مبادئ البرمجية الكائنية عليه بلغة تطبق تلك المبادئ بشكل واضح وصارم كمثال لغة java أو ++C ومثيلاتهم.

طبعا ، لكن بما أن خبرته محصورة في JS فما المانع في استخدامها؟ فيأخذ الاساس ويكمل طريقه في لغات Mid Level

اعتقد ان C++ من افضل اللغات لتعلم OOP و الخوارزميات و كل ما يتعلق بـ CS ، لهذا تجد أغلب شركات الIT تطلب مهندسي برمجيات لهم خبرة جيدة في هذه اللغة ، بالاضافة الى Python.

  • لا مانع في استخدامها، قصدت أن الأمور ستكون بشكل أوضح في لغات أُخرى وكمثال فكلمات كـ public, static, private, protected تدل على معنى معين سيسهل فهم المبادئ بعكس من يستجد عليه مفهوم الـ OOP ويبدأ تعلمه مع لغة JS، وحتى كلمة class التي أشرت إليها أُضيفت لاحقاً لـ ECMAScript 6 وكان تعريف الفئات يتم عبر كلمة var كأي متغير أخر.

بالمناسبة ، لم أتعرف عليك الا من خلال الاسم ، لاحظت انك غيرت الصورة :)

  • أُغير الصورة من حين لأخر :) بالفعل فأنا أُميز كثير من الأعضاء هنا بالصور لا بالاسم فإن غيروا الصورة بالصدفه أتعرف عليهم مجدداً

أخي لقد فعلت الدالة التي تزيد على الوقت

لقد بالفعل جمعت وعرضت لكن

لم تعرض لي مثل ما في السؤال

فلما دخلت الساعة 14:50

وزدت عليها 20

عُرضت هكذا : 14:70

المفترض هكذا تعرض للمستخدم 15:10

أسفة على الازعاج :(

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

ملاحظة: يتم إضافة شرط أخر لإختبار عدد الساعات بعد الزيادة فإن كان عدد الساعات أكبر من 23 يكون باقي قسمة عدد الساعات على 24 هو الساعة الحالية.

لقد فهمت

شكراااااا لك بحجم السمااااء

أضحكني ردك أضحك الله سنك :)) ولك كل الشكر على أنك لا تطلبين حل جاهز بل تسألين عن جذيئات غير واضحة وتكملي الباقي بنفسك، أتمنى أن أرى جميع أسئلة طالبي العلم من تلك النوعية التي تُفيد الطالب وتُحفزنا على الرد عليه.

أتمنى لكِ التوفيق والسداد

لا اعرف بماذا أعلق

لقد أخجلتني

هاذي فرحتي من الحماس عندما فهمت الشيء الذي يشكل علي صعوبة

الحمدالله

كل الشكر لك بكل تأكيد

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

اللهم آمين ولكِ بالمثل وزيادة

أخي مازالت لدي مشكلة في زيادة الوقت

الدقيقة تتغير اما الساعة لا

مثل 14:50

عندما أزيد عليها 20

تعرض لي 14:10

المفترض تعرض 15:10

هاذا هي الدالة التي كتبتها

لا يجب أن تختبري هل m<60

بل إختبري هل بعد إضافة الدقائق u إلى m سيبقا أصغر من 60 بمعنى هل m+u<60

لقد فعلت مثل ما قلت ولكن لم تضبط ..

int  sum = m + u;
int  floor = sum / 60;
m = sum % 60;
h = (h + floor) % 24;

يمكن أن تبرمجي بدون إستخدام if

هل إشتغل؟


شرح الكود:

  • المتغير sum واضح

  • المتغير floor توجب وضعه من نوع integer ويعطينا عدد الساعات في sum

قد يكون 0 إذا كان sum أصغر من 60 وقد يكون 1 إذا كان sum أكبر من 60 و أصغر من 120 وهكذا

  • القيمة (sum%60) هو باقي قسمة sum على 60 وهو عدد الدقائق

  • القيمة (h+floor) هي عدد الساعات

لاكن قمنا فقط بأخد باقي قسمته على 24 بمعنى إذا كان عدد الساعات أصغر من 24 فإن باقي القسمة هو نفسه عدد الساعات


إذا كان لديك تساؤل إطرحيه

أتمنى من الأخ @ahmedsaoud31 أن يشرح لك الكود فهو يعرف كيف يوصل المعلومة أفضل مني

بالعكس لقد وصلت المعلومة :)

شكراً..

  • لا شرح بعدما قدمت :) فشرحك أكثر من واضح واختصار افضل للكود فلا حاجة فعلياً لاستخدام حالة الشرط if كما أشرت أنا من قبل عن استخدام شروط التحقق.

..


برمجة

المواضيع والنقاشات المتعلقة بالبرمجة بشكل عام او لغات البرمجة التي لايوجد لها مجتمعات فرعية.

24.6 ألف متابع