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

Kais Hasan

الأعضاء
  • المساهمات

    2347
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    24

كل منشورات العضو Kais Hasan

  1. في حالتك هذه لا فرق، حيث أنك تقوم بتخزين متغير ذو سعة أقل في متغير ذو سعة أكبر. في حالات أخرى مثلاً عندما تريد تخزين float في long فعليك القيام بما يدعى التحويل casting، و هو تحويل القيمة من float إلى long. و عندها تكون هذه الدالة مفيدة لذلك. فائدة أخرى، هي أنك تقوم بشكل واضح بتحديد أنك تريد التحويل، حيث أن من يقرأ الكود الثاني قد يعتقد أنك عن طريق الخطأ قمت بذلك، بينما في حال استعملت الطريقة فمن الواضح أنك تريد هذا التحويل.
  2. إذا كان المقصود هو الاحتفاظ بالأكواد البرمجية، فبالطبع هذا أمر ضروري و ذلك حتى تعود لهذه المشاريع في حال احتجت لتذكر شيء ما أو لاختصار وقت كتابة شيء كنت قد كتبته من قبل. أما إذا كان القصد هو حفظ التعليمات البرمجية في ذهنك (و هذا ما أعتقدك تقصده) فالجواب هو لا دائماً في البرمجة. قد تجد الأمر سهلاً في البداية، و لكن لغات البرمجة و أطر العمل كبيرة جداً و من المستحيل حفظها، دائماً يمكنك البحث عما تريده و لا داعي لحفظ شيء، المهم فهم المفاهيم العامة و كيفية حل المشكلات التي تواجهك، حتى تعرف عما يجب عليك البحث عنه. الحفظ يأتي بشكل تلقائي في بعض الحالات، و ذلك عندما تصبح لديك خبرة في لغة ما أو إطار عمل ما، فكثرة الاستعمال له تجعلك تحفظ تلقائياً التعليمات الأساسية، هذا يسرع من عملك بالطبع بدل البحث عنها كل مرة، و لكن يجب عليك ترك هذه العملية تلقائية و عدم القيام بالحفظ المتعمد، ما تستعمله بكثرة ستحفظه بشكل تلقائي، ما لا تستعمله بكثرة فلا داعي لحفظه أصلاً.
  3. يمكن تنزيله عن طريق كتابة ما يلي: pip install --upgrade tensorflow-federated
  4. مقدمة بسيطة عن طريقة federated learning هي طريقة لتدريب المودل بشكل مستقل من قبل كل مستخدم، أي لنفرض أنه لدينا عدة مستخدمين كل منهم له قاعدة بيانات خاصة به، يتم تدريب المودل على كل واحدة بشكل مستقل بدون تبادل البيانات (لأن البيانات قد تكون حساسة ولا يجب تبادلها)، و من ثم يتم بطريقة ما دمج النماذج المتشكلة من كل تدريب في نموذج واحد. يقدم TensorFlow شرح كامل عن طريقة القيام بذلك باستعماله من هنا. بشكل مختصر يمكن القيام بذلك كما يلي: def model_fn(): keras_model = المودل الخاص بنا return tff.learning.models.from_keras_model(keras_model, sample_batch, loss=تابع التكلفة الخاص بنا) هكذا نعرف مودل خاص بنا، و لكن بالطبع هناك الكثير من الخطوات اللازمة التي تتعلق بالتطبيق المطلوب، يمكنك الإطلاع عليها بمزيد من التفصيل من الموقع الرسمي الذي أرفقت رابطه سابقاً.
  5. لا توجد نسخة بايثون للمبتدئين و أخرى للمحترفين، النسخة دائماً كاملة الميزات. هناك طريقة واحدة لتحميل بايثون و هو عن طريق الموقع الرسمي له من هنا.
  6. تحتاج فقط أساسيات ال calculus، يكفي كبداية أن تعرف مفاهيم المشتقات، التكامل ليس مهماً جداً في البداية و يمكنك إهماله. الجبر الخطي مهم جداً بالطبع، يفضل أن يكون لديك اطلاع على المفاهيم الأساسية فيه و هي: الأشعة و الفضاء الشعاعي، العمليات على الفضاء الشعاعي، الاستقلال و الارتباط الخطي و الأشعة الأساسية basis و القيم و الأشعة الذاتية eigen values, eigen vectors. أما بالنسبة للاحصاء و الاحتمالات يجب عليك معرفة القوانين الأساسية في الاحتمالات و التوزيعات الاحتمالية الشهيرة. يجب عليك معرفة الاساسيات في كل هذه المجالات و فهم مجال واحد بينها غير كافي نهائياً لكي تبدأ بالمجال، و لكن بالطبع حاول أن تتعلم الأساسيات فقط في البداية و بعد أن تتعلم القليل من تعلم الآلة يمكنك العودة و دراسة المزيد من الرياضيات عند الحاجة. لماذا كل هذه الأمور مهمة مباشرة؟ لأنه و ببساطة يمكنك تخيل أي شبكة عصبونية على أنها تابع يقوم بتحويل الدخل ضمن فضاء شعاعي عن طريق عمليات خطية و أخرى غير خطية، و خرج هذه الشبكة عادة يكون عبارة عن توزع احتمالي على القيم الممكنة، و طريقة تدريب الشبكة تعتمد على خوارزمية هي gradient descent و التي يجب عليك معرفة أساسيات ال calculus لفهمها. لكن كما ذكرت لك لا تتعمق جداً في الرياضيات قبل البدء في تعلم الآلة، الأساسيات فقط ثم ابدأ، و عندما تجد الحاجة لتوسيع فهمك في شيء ما قم بذلك، حيث أن الرياضيات علم واسع جداً و من المستحيل تعلمه كله، فيجب عليك معرفة ما تحتاجه ثم الذهاب و دراسته. بالنسبة لسؤالك الأخير، فالجواب هو لا، الرياضيات المتقطعة بشكل عام غير مستعملة بشكل أساسي في الشبكات العصبونية، حيث أن الشبكات العصبونية يجب أن تكون تابعاً مستمراً و كافة تعاملنا يكون مع توابع مستمرة و لا يمكن أن تكون متقطعة و إلا لن يكون هناك مشتق، و التدريب بشكل عام يعتمد على المشتقات.
  7. الخطأ أنك لا تضع معامل الخرج بين السلسلة النصية " x = " و بين y-x. الصحيح أن تكتب ما يلي: cout << x << " - " << y << " = " << fabs(x-y); أو أي عبارة طباعة تريدها، المهم أن يكون معامل الخرج >> موجوداً بين أي قيمتين تريد طباعتهما.
  8. إن بايثون تستخدم ضمنياً لغة السي، و يمكن ترجمة الكود الخاص بها إلى c ثم تنفيذه و هذه تقنية شائعة لتسريع كود البايثون. كما أن أغلب الأكواد التي يتم تنفيذها على ال GPU و هذه هي الحالة في تعلم الآلة يتم تنفيذها باستعمال السي، قد لا تلاحظ ذلك بشكل ظاهري و لكن لو قمت بفتح أكواد بعض المكاتب الكبيرة ستجد أن العمليات أغلبها مكتوبة بلغة السي لتسريع التنفيذ، و لكن أنت كمستخدم لهذه المكتبة لا تحتاج إلى معرفة ذلك.
  9. إن هذا يعتمد على المبرمج بشكل أساسي، للمقارنة يجب أن نقول في حال كان لدينا نفس الخوارزمية مع نفس هياكل البيانات، من الأسرع؟ بشكل عام تعتبر لغة c++ من أسرع اللغات، حيث أن هذا من أهم الأهداف التي تحافظ على تحقيقها، أي ألا يكون من الممكن كتابة نفس الكود بلغة أخرى و تحقيق سرعة تنفيذ أفضل. و لكن بالطبع في حال أتى مبرمج و حل مشكلة معينة بطريقة ذكية تعقيدها الحسابي أقل و لكن بلغة بطيئة، في حين أن مبرمج آخر حلها بالطريقة المباشرة ذات التعقيد الحسابي الأعلى و لكن باستعمال c++ فالأول سيكون سرعة تنفيذ كوده أفضل. كما أنه بشكل عام لا يمكنك ملاحظة هذا الفرق ما لم يكن الكود الذي تنفذه يطبق على عدد بيانات هائل، أي في حال كان لديك بضع مئات من البيانات فلن يكون هناك فرق محسوس. كما أن السرعة ليست أهم شيء، حيث أن السرعة تأتي على حساب الصعوبة في كتابة الكود، حيث أن لغة مثل ال c++ تحاول الإبقاء على إمكانية التعامل بشكل مباشر مع العتاد الصلب و هذا ما يجعلها صعبة، في حين أن لغات أخرى تضحي بهذا الأمر على حساب سهولة و سرعة تطوير البرنامج. لذلك لا نجد لغة مثل ال c++ تستعمل في الويب مثلاً، بينما لا نجد لغة عالية المستوى جداً تستعمل في الأنظمة المدمجة.
  10. بشكل عام يمكنك البدء بشكل متسلسل، أي كما يمكن الملاحظة كل دورة مقسمة إلى مسارات، يمكنك المرور على كل مسار بالترتيب. في بعض الحالات يمكن أخذ المسارات بشكل غير تسلسلي و لكن هذا يعتمد على الدورة التي اشتركتي بها، مثلاً في بايثون هناك دورات خاصة بتحليل البيانات، بالتالي في حال كان لديك بعض الاطلاع على بايثون فقط يمكنك البدء بها مباشرة. و هناك مسار في بايثون للويب، في حال كنت غير مهتمة بالويب يمكنك تخطيه. يمكنك ذكر الدورة حتى نساعدك أكثر.
  11. يمكنك جدولة مهمة يومية للقيام بذلك. يمكن استعمال مكتبة celery كما يلي: from celery.schedules import crontab from celery.task import periodic_task @periodic_task(run_every=crontab(minute=0, hour=0)) def every_day(): print("سيتم طباعة هذه الرسالة كل يوم في منتصف اللليل") طبعاً بدل الطباعة ما ستقوم به هو المرور بحلقة for لها 10 تكرارات و كل مرة تقوم بإنشاء فلاش كارد و إضافتها. أي سيكون الكود الخاص بك شيء مثل ما يلي: from celery.schedules import crontab from celery.task import periodic_task @periodic_task(run_every=crontab(minute=0, hour=0)) def every_day(): for i in range(10): flash_card = FlashCard.objects.create(هنا نضع ما يلزم لهذا الغرض) الطريقة create ستقوم بإنشاء هذا الغرض و كما هو موضح يجب تمرير ما يلزم من أجل هذه الفلاش كارد، مثلاً عنوانها أو أي حقل تحتاجه.
  12. يمكنك اعتبارها موجه أكثر من تعليمة. بشكل أساسي تستعمل لتحديد أن كود ما يمكن لزائر للموقع رؤيته فقط إذا لم يقم بتسجيل الدخول. هذا على عكس @auth التي تفرض أن يكون الشخص قد قام بتسجيل الدخول حتى يرى المحتوى. يمكن استعمالهما كما يلي: @auth // الذي يجب أن يراه من قام بتسجيل الدخول فقط html نضع هنا كود ال @endauth @guest // الذي يجب أن يراه من لم يقم بتسجيل الدخول فقط html نضع هنا كود ال @endguest مثلاً في حال أردنا إظهار رسالة تحث المستخدم على التسجيل في موقعنا، يجب أن نظهرها فقط في حال كان الشخص لم يقم بتسجيل الدخول، و لذلك يمكنك استعمال هذا الموجه لذلك.
  13. بالطبع يمكنك العمل على مواقع العمل الحر، شخصياً لقد قمت بإنجاز 3 مشاريع متعلقة بالذكاء الصنعي على الموقع، و لو كان لدي وقت أكثر لكنت أنجزت أكثر. و لكن الأمر ليس بالسهل دائماً، تحتاج خبرة كبيرة، حيث أن هذا المجال ليس كالبرمجة العادية أو تصميم المواقع و التطبيقات. أنت تحتاج إلى أن تكون على إطلاع جيد على المفاهيم الأساسية في الاحتمالات و الإحصاء و الجبر الخطي و التحليل الرياضي حتى تفهم بشكل صحيح الخوارزميات و تستطيع تطبيقها بشكل صحيح. بالطبع كبداية لن تحتاج إلى كل هذا و لكن لن تفهم ما تقوم به ما لم تفهم الرياضيات جيداً. لذلك في حال كان اعتقادك أن تعلم الآلة هو عبارة عن برمجة باستعمال أحد أطر العمل فهذا غير صحيح، في حال لم تكن تحب تعلم الرياضيات و قضاء الوقت في التفكير أكثر من البرمجة فلا أنصحك بهذا المجال.
  14. بالإضافة إلى ما سبق ذكره يمكنك إضافة البايثون بشكل تلقائي إلى ال path. و لكن قبل ذلك، من فضلك تأكد بأن المشكلة هي كذلك، حيث أنه في بعض الأحيان بدلاً من كتابة python عليك كتابة py أو python3. في حال أي مما سبق لم ينجح علينا إضافته إلى ال path، يمكنك القيام بذلك بسهولة عن طريق الذهاب إلى مربع البحث في ويندوز و كتابة PATH، ثم نضغط على أول خيار يظهر. سيفتح لنا نافذة يكون فيها متغير اسمه PATH (في حال لم تظهر هذه النافذة من فضلك أرفق لقطة شاشة لما ظهر لك) نضغط عليه ثم نختار edit و نضيف في آخر خانة مسار البايثون. هناك مسار افتراضي للبايثون، يمكنك معرفته من خلال الصور السابقة التي أرفقها المدربون، طبعاً مع تبديل الاسم الظاهر باسم المستخدم لديك.
  15. أعتقد قصدك عن الخاصية name في عنصر ال html. تستعمل هذه الخاصية للوصول إلى قيمة العنصر في جافاسكربت (بشكل عام يستعمل ال id أكثر) أو في السيرفر بعد إرسال البيانات. أي في حال كان لديك ما يلي: <form action="/action_page.php"> <label for="username">username:</label> <input type="text" id="username" name="user_name"><br><br> <label for="pass">password:</label> <input type="text" id="pass" name="password"><br><br> <input type="submit" value="Submit"> </form> عندها تصل البيانات إلى السيرفر و يمكن الحصول على قيمة اسم المستخدم من المفتاح user_name و كلمة المرور من المفتاح password.
  16. يمكنك تحويل حقل التاريخ في django إلى غرض من الصف datetime.datetime، حيث أن datatime هي المكتبة الأساسية في بايثون للتعامل مع التاريخ و الوقت. بعد التحويل يمكننا إضافة يوم باستعمال نفس المكتبة. يمكن القيام بكل ذلك كما يلي: # لنفترض أن اسم الحقل الخاص بالتاريخ في النموذج هو # date_field import datetime tomorrow_date = self.date_field.date() + datetime.timedelta(days=1) لإضافة رسالة عندما يأتي هذا اليوم يمكنك استعمال الجافا سكربت، حيث أنه يمكنك كتابة view تمثل endpoint على السيرفر، بحيث يقوم كود الجافا سكربت باستدعاءه كل فترة للتحقق من الوقت. و عندما نصل إلى الوقت المحدد نظهر رسالة. طريقة أخرى هي إضافة مهمة مجدولة في دجانغو. مثلاً يمكن إضافة مهمة يومية بواسطة مكتبة celery كما يلي: from celery.schedules import crontab from celery.task import periodic_task @periodic_task(run_every=crontab(minute=0, hour=0)) def every_day(): print("سيتم طباعة هذه الرسالة كل يوم في منتصف اللليل") و بالتالي يمكنك استعمال هذا للتحقق من التاريخ داخل هذا التابع و طباعة الرسالة المناسبة.
  17. إن ال views في دجانغو تتبع لغة البرمجة المستعملة في دجانغو و هي بايثون، حيث أن ال view ما هي إلا تابع في بايثون و لكن نقوم بربطه بمسار على موقعنا و تغليفه بما يلزم من طبقات الحماية و التحقق من المستخدم و غيرها. يمكننا كتابة عبارة شرطية في بايثون كما يلي: username = input('username: ') password = input('password: ') if name == 'admin' and password == 'admin': print('welcome to the site') else: print('wrong credientials') طبعا هذا مثال بسيط و لكن يمكنك تطبيق نفس الفكرة بغض النظر عما يوجد داخل ال if. أما إن كان قصدك ما ذكره المدربون في التعليقات السابقة فهذا يدعى template وليس view، حيث أن دجانغو يتبع تصميم model-view-template بحيث يكون ال model هو ما نقوم ضمنه بتخزين البيانات و معالجتها، أما ال view فهي التي تقوم بمعالجة طلب المستخدم و تنفيذ ما يلزم، أما ال template فهو من يقوم بالعرض. طبعاً ال view هي من تقوم بعرض ال template و لكن هذا لا يعني أنها بذاتها مخصصة للعرض، حيث هي فقط تقوم بتحديد ما يجب تنفيذه.
  18. إن الأمر طبيعي، الانقطاع لوقت طويل له آثار سلبية في كافة المجالات و ليس فقط في البرمجة. لا أنصحك بمحاولة فهم كل اللغة، الدراسة النظرية فقط للبرمجة لن تجعلك مبرمج ناجح، عليك تعلم الأساسيات و من ثم محاولة التطبيق، دائماً حاول تطبيق ما يطلبه المدرب في البداية، ثم حاول تطبيق شيء ترغب به أنت، و لكن دائماً ابدأ بأفكار بسيطة و من ثم حاول تطويرها، لا تبدأ بفكرة معقدة من البداية فهذه طريقة غير جيدة. مثلاً تعلم في البداية تعليمات الإدخال و الطباعة و حاول فقط القيام ببعض العمليات الحسابية البسيطة في البرنامج الخاص بك. بعدها يمكنك تعلم العبارات الشرطية و محاولة مثلاً تطوير مثال العمليات الحسابية ليأخذ أكثر من خيار بحسب ما يدخله المستخدم. ثم يمكنك تعلم الحلقات التكرارية و مثلاً تطوير البرنامج ليبقى يعمل حتى يدخل المستخدم خيار يجعل الحلقة تقف و ينتهي البرنامج. هذه هي الطريقة الجيدة بشكل عام، أن تتعلم الأساسيات خطوة بخطوة و تقوم بالتطبيق التدريجي للأمور، نبدأ بالأمور السهلة و نبني عليها. أما في حال بدأت بمشروع معقد منذ البداية ستشعر باليأس لأنك ستواجه صعوبات كثيرة في نفس الوقت بدلاً من حلها تدريجياً، حتى أن المشاريع المعقدة يتم بناءها بهذه الطريقة، دائماً نبدأ بشيء بسيط و نزيد التعقيد تدريجياً.
  19. بالإضافة إلى ما سبق ذكره، أريد توضيح أمر لك بناء على خبرتي العملية، حيث أنني مهندس ذكاء صنعي. علوم البيانات كما سبق و تم شرحها تعنى بالعمليات على البيانات و نستطيع من خلالها أخذ معلومات مفيدة عنها، و البيانات بدورها من أهم الأمور في الذكاء الصنعي، حيث أن خطأ بسيط في طريقة معالجة البيانات قد يعني فشل النموذج في تعلم ما نريده. بالتالي يجب عليك معرفة أساسيات علوم البيانات في حال كنت تريد الدخول في مجال الذكاء الصنعي، خاصة في التعلم العميق deep learning حيث أن البيانات جزء أساسي جداً و بدون تحليل لها لا يمكنك اتخاذ بعض القرارات بخصوص شكل النموذج و طريقة التدريب و ما إلى هنالك. كما ذكر المدربون هناك مسار في دورة البايثون خاص بتحليل البيانات، أنصحك بالإطلاع عليه.
  20. إعطاءك الجواب بشكل مباشر لن يساعدك على تحسين مهاراتك البرمجية و لن يعود عليك بأي فائدة. سأساعدك بما هو مطلوب من ناحية الأفكار و عليك المحاولة بنفسك. كما هو واضح من نص السؤال عليك معرفة كيفية إدخال قيمة عدد صحيح في بايثون و كيفية الطباعة. بالإضافة إلى ذلك عليك طرح الكمية المباعة من الكمية الموجودة، بهذه الطريقة تحصلين على الكمية المتبقية، طبعاً هنا لم يوضح السؤال في حال كان يجب عليك معالجة حالات الدخل الخاطئة، مثلاً أن تكون الكمية المباعة أكبر من الكمية الموجودة، هنا يجب أن يكون هناك عبارة شرطية تختبر ذلك و في حال كان القيمة أكبر من الموجودة تطلب من المستخدم إعادة الإدخال، يمكنك تحقيق ذلك عن طريق حلقة تكرارية و عبارة شرطية. هذا كل ما عليك معرفته لكتابة الحل، حيث أن معرفة الكمية تجعل من السهل حساب الربح عن طريق ضرب الكمية بمقدار الربح الخاص بكل صنف. يمكنك الإطلاع على مقالات أكاديمية حسوب لتعلم هذه الأمور التي تعد أساسيات في البايثون. كما أن أكاديمية حسوب تقدم دورة متكاملة في لغة البايثون يمكنك الإطلاع عليها من الرابط التالي:
  21. إن التفكير المنطقي لا يتبع للغة، و لا يمكنك الحصول عليه بقراءة كتاب أو حضور فيديوهات. يجب عليك التدرب للحصول عليه، أفضل طريقة هي حل المسائل المنطقية على مواقع البرمجة التنافسية، هذه المسائل يجب عليك التفكير بحلها بشكل منطقي في البداية و من ثم كتابة الكود الخاص بها. بعض من أفضل هذه المواقع هي: Codeforces hacker rank ستحتاج بين 3 إلى 6 أشهر من حل المسائل على هذه المواقع حتى يتحسن التفكير المنطقي لديك، و يمكنك حل المسائل بالجافا سكربت بالطبع، و لكن التحدي الحقيقي هو إيجاد الحل و ليس فقط كتابة الكود.
  22. إن الموضوع معقد جداً و من المستحيل شرحه في تعليق، و لكن يمكنني توجيهك لكيفية تعلم ما يلزم. في البداية عليك تحديد لماذا تريد القيام بذلك؟ هل هو مجرد تحدٍ؟ حيث أنني لا أنصحك بإضاعة وقتك في ذلك ما لم يكن لديك هدف حقيقي لذلك. في حال كان هدفك مجرد بناء مشغل موسيقى فمن الجيد استعمال لغات عالية المستوى كال c++ أو python مثلاً فهذه اللغات تحوي الكثير من أطر العمل التي تساعدك على ذلك. أما في حال كان لديك هدف ما، ففي البداية يجب عليك تعلم أساسيات ال assembly، و محاولة بناء تطبيق بسيط جداً لتجربة مهاراتك، بعدها يمكنك الانتقال إلى المرحلة التالية في بناء التطبيق. من المفيد الإطلاع على ما قام به آخرون لحل هذه المشكلة، هذا قد يساعدك على كتابة الكود، مثلاً يمكنك الإطلاع على هذا المشروع على github من هنا.
  23. فكرة إضافية لحل التمرين. يمكنك إنشاء صف واحد هو صف الطالب، بحيث يحوي بداخله على مصفوفة علامات و اسم. كما يمكنك تعريف تابع ضمنه يعيد معدل الطالب، و أعلى علامة له. و في حال أردت طباعة الطالب ذو الدرجات الأعلى (أعتقد هنا يمكنك المقارنة حسب المعدل) يمكنك استعمال التابع الخاص بالمعدل لتسهيل العمل. يمكنك الإطلاع على مقالات أكاديمية حسوب فهي تحوي الكثير من المحتوى الذي سيفيدك في حل هذا التمرين.
  24. من الجيد في البداية تعلم أكثر من لغة لسبب منطقي و هو أنك في هذه الحالة ستقارن بين اللغات المختلفة و تجد الاختلافات، هذا سيجعلك تفرق بين ما هو عبارة عن مجرد syntax أي طريقة كتابة أمر ما باللغة، و بين المفاهيم و التي هي مشتركة بين اللغات. و لكن هذا جيد فقط في البداية، بعد تعلم الأساسيات و الخروج من مرحلة يقوم فيها الكثيرون بحفظ الكود بدلاً من فهمه. أما في حال كنت خرجت من هذه المرحلة فلا أنصحك بتعدد اللغات، من الجيد معرفة القليل عن كل لغة في حال كان عملك يتطلب ذلك (مثلاً full stack developer يعمل على django و react و بالتالي يحتاج python و javascript)، أما غير ذلك فلا فكرة من تعلم اكثر من لغة، ﻷن كل لغة تحوي على الكثير من الأمور التي قد تستغرق أشهر منك لتتقنها و تصبح قادراً على تطبيقها في المكان الصحيح، و بالتالي من الأفضل أن تكون مطوراً محترفاً في أمر على أن تكون هاوٍ في الكثير من الأمور.
  25. تقديم الحل بشكل مباشر لن يعود عليك بأي فائدة و لن يساهم في تحسين مهاراتك البرمجية و مهارات حل المشكلات. سأساعدك قليلاً بالفكرة، و من ثم يجب عليك المحاولة و في حال حدوث أخطاء يمكننا مساعدتك. لطباعة الأعداد الزوجية من 0 إلى 20 يلزمك أمران أساسيان هما: الحلقات التكرارية، حيث أنه يلزمك حلقة تكرارية للمرور على الأعداد و اختبار فيما إذا كان العدد زوجي أم لا. عبارة شرطية، لنختبر فيما إذا كان العدد الحالي في الحلقة زوجي أم لا، يمكن اختبار ذلك عن طريق باقي القسمة (عليك التفكير في كيفية القيام بذلك تماماً). أما بالنسبة للسؤال الثاني، يلزمك أمر واحد فقط و هو حلقة تكرارية، و لكن هذه المرة علينا تغيير مقدار الزيادة في هذه الحلقة، أي بدل زيادة العداد بمقدار 1 علينا زيادته بمقدار 7. أتمنى أن تحاولي حل التمارين بعد معرفة هذه الملاحظات و يمكنك مشاركة محاولتك حينها يمكننا مساعدتك في حال حدوث خطأ محدد.
×
×
  • أضف...