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

محمد أبو عواد

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

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

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

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

    95

إجابات الأسئلة

  1. إجابة محمد أبو عواد سؤال في كيف أقوم بعمل inheritance class student من ال class person بلغة البايثون كانت الإجابة المقبولة   
    لنجعل كلاس يرث من كلاس اخر سوف نمرر الكلاس الاب كمعامل عند انشاء الكلاس الابن, لنشرح ذلك بمثال عملي, سوف نقوم بانشاء الكلاس الأب والذي اسمه person
    class Person: def __init__(self, Fname, Lname): self.FirstName=Fname self.Lastname= Lname def getName(self): print(self.FirstName, self.Lastname) الآن سوف ننشيء كلاس الابن والذي اسمه student 
    class Student(Person): pass كما تلاحظي قمت بتمرير الكلاس الأب person كمعامل عند انشاء الكلاس الابن
    نستخدم الكلمة pass عندما لا نريد إضافة أي خصائص أو دوال أخرى إلى الكلاس الابن
    الآن لنحاول انشاء كائن من الكلاس الابن ونستخدم دالة getName التي أنشأناها في الكلاس الأب person
    x = Student("Ali", "Sami") x.getName() سوف تكون النتيجة كالتالي
    Ali Sami  
  2. إجابة محمد أبو عواد سؤال في كيف أقوم ادخال بيانات ال objects باستخدام دالة new_person() ؟ بلغة البايثون كانت الإجابة المقبولة   
    سوف نقوم بانشاء ليكن اسمه person
    class person: def __init__(self, name): self.name = name الآن سوف نقوم بانشاء اوبجكت ونمرر له قيمة المتغير name
    x = person('Ali') print(x.name) سوف تكون النتيحة Ali
    لنحاول أن نضيف خاصية أخرى للصنف person ونحاول انشاء اوبجكت منه, 
    class person: def __init__(self, name,age): self.name = name self.age = age لاحظ لقد أضفت الخاصية age, الآن يجب أن نمررها للأوبجكت عند انشائه
    x = person('Ali',20) print(x.age) سوف تكون النتيجة 20
  3. إجابة محمد أبو عواد سؤال في كيف أقوم بانشاء list واضافة two objects عليها بلغة البايثون كانت الإجابة المقبولة   
    يمكننا طباعة عناصر list بالمرور على جميع عناصرها, كيف نقوم بالمرور على جميع العناصر بداخل list؟
    سوف نستخدم for loop.
    بداية سوف نقوم بانشاء list
    a = [1, 2, 3, 4, 5] ثم سوف نقوم بانشاء حلقة التكرار for loop التي تمر على جميع العناصر في list
    for x in a: print(x) سوف تكون النتجة كذلك
    1 2 3 4 5 من الممكن انشاء function وظيفتها طباعة أي list قد مررناها الى ال function, لاحظ الكود الخاص بال function
    def show(a): for x in a: print(x) الآن سوف انشئ list وامررها لل function لطباعتها
    b = [1, 2, 3, 4, 5] show(b) سوف تكون النتيجة كذلك
    1 2 3 4 5  
  4. إجابة محمد أبو عواد سؤال في الوراثة في بايثون كانت الإجابة المقبولة   
    لنجعل  كلاس يرث من كلاس اخر سوف نمرر الكلاس الاب كمعامل عند انشاء الكلاس الابن, لنشرح ذلك بمثال عملي, سوف نقوم بانشاء الكلاس الأب والذي اسمه person
    class Person: def __init__(self, Fname, Lname): self.FirstName=Fname self.Lastname= Lname def printname(self): print(self.FirstName, self.Lastname) الآن سوف ننشيء كلاس الابن والذي اسمه student 
    class Student(Person): pass كما تلاحظي قمت بتمرير الكلاس الأب person كمعامل عند انشاء الكلاس الابن
    نستخدم الكلمة pass عندما لا نريد إضافة أي خصائص أو دوال أخرى إلى الكلاس
    الآن لنحاول انشاء كائن من الكلاس الابن ونستخدم دالة printname التي أنشأناها في الكلاس الأب person
    x = Student("FName", "LName") x.printname() سوف تكون النتيجة كالتالي
    FName LName  
  5. إجابة محمد أبو عواد سؤال في كيف يمكننى الوصول لقيم object بداخل object؟ كانت الإجابة المقبولة   
    طريقة كتابة هذا الأوبجكت صحيحة وطريقة الوصول الى القيم التي بداخله أيضا صحيحة أحسنت
    أما بالنسبة للأوبكت التالي ولاذي كتبته فهو خاطئ
    الاوبجكت يجب أن يتبع نظام key:value , أنت في هذا الأوبجكت قمت بوضع value دون key ولذلك لن نستطيع الوصول اليه وأيضا سوف يعطيك خطأ لأن طريقة كتابته خاطئة, اذا ما الحل؟
    الحل كما أسلفت سابقا يجب أن يكون نظام key:value أي يجب أن نضع key لهذا ال value, لاحظ كيف يصبح شكل الكود
    const data = { 'user': { name: "mohamed", age: 22 } } لاحظ ال key يوزر , الآن يمتلك قيمة وهي من نوع اوبجكت, كيف يمكننا الوصول الى قيمه؟
    يكون الوصول كالتالي
    data.user.name لو حاولنا طباعة قيمة name باستخدام تعليمة console.log فسوف يكون شكل الكود كالتالي
    console.log(data.user.name); //output mohamed  
  6. إجابة محمد أبو عواد سؤال في التعديل على خصائص زر bootstrap عن طريق CSS كانت الإجابة المقبولة   
    يمكنك اعطاء الزر صنف معين ليكن مثلا اسم الصنف no-shadow وتستطيع اعطاء الصنف هذا التنسيق
    .no-shadow{ box-shadow: none !important; } الخاصية !important لكي يتجاهل التنسيقات الأخرى ويطبق التنسيق الذي قمت به أنت, من الممكن أن لا تستخدم صنف جديد ويمكنك استخدام المحدد الذي يستخدمه بوتستراب للتعديل عليه, كيف يمكننا الحصول على المحدد الذي يستخدمه بوتستراب؟ يمكنك تحديد العنصر من خلال حزمة المطورين التي تستطيع الوصول اليها من خلال الضغط في أي مكان من الصفحة بالزر الأيمن من الماوس ثم تختار فحص العنصر أو inspect element, سوف تظهر لك هذه الواجهة 
    من خلال الواجهة رقم 1 تستطيع تحديد العنصر الذي تريده ويمكنك في الواجهة رقم 2 الحصول على المحدد والتنسيقات الخاصة بالعنصر ويمكنك التعديل عليها من خلال نسخ المحدد ولصقه في ملف style.css واعطاء العنصر التنسيقات التي تريدها
     
  7. إجابة محمد أبو عواد سؤال في نظام المصادقة في لارافيل 8 (authentication) كانت الإجابة المقبولة   
    بامكانك تثبيت حزمة من خلال هذا الأمر
    php artisan make:auth ثم تنفيذ الأمر التالي
    php artisan ui vue --auth ثم تنزيل الحزم اللازمة للمشروع من خلال الأمرين التاليين
    npm install ثم الأمر
    npm run dev هناك حزمة جديد اسمها Laravel Jetstream وفيها الكثير من المميزات الجميلة والقوية جدا مثل نظام auth وادارة الحساب مثل تغيير الاسم والصورة الشخصية وتغيير كلمة السر وغيرها الكثير من التقنيات الجميلة والتي توفر عليك الكثير من الوقت في بناءعها, وتعمل باحدث التقنيات مثل Inertia و Livewire التي من الممكن أن تقومي ببناء تطبيق صفحة واحدة أو ما يعرف ب Single Page Application من خلالها, يمكنك التعرف على المزيد من موقعها الرسمي, يمكنك الذهاب اليه من هنا
    يمكنك تثبيتها من خلال الأمر التالي
    composer require laravel/jetstream ثم تختارين أحدى التقنيتين Inertia أو Livewire لتنزيلها 
    php artisan jetstream:install inertia أو php artisan jetstream:install livewire ثم تقومين بهذه الأوامر لتثبيت الحزم ولتهجير الجداول
    npm install npm run dev php artisan migrate  
  8. إجابة محمد أبو عواد سؤال في 500 Error This page isn’t working كانت الإجابة المقبولة   
    مرحبا
    بداية أرجو منك حذف الملفات الموجودة في هذا المسار /storage/framework/views ثم قم بتحديث الصفحة, اذا لم ينجح الامر قم باضافة هذا الكود الى ملف index.php
    $app->bind('path.public', function() { return base_path().'/public_html/'; }); ثم قم بتحديث الصفحة, اذا لم ينجح الأمر قم بحذفه مرة أخرى
    الحل الاخير تاكد من أن اصدار php أكبر من 7.2, اذا كان اقل من ذلك أرجو منك تحديثه
    شكرا لك
  9. إجابة محمد أبو عواد سؤال في سبب مشكلة عدم ظهور تنسيقات العناصر في webpack كانت الإجابة المقبولة   
    مرحبا مجددا
    تأكد من أنك تفتح الملف من مجلد dist وليس مجلد src
    اذا استمرت المشكلة هل يمكنك ارفاق الملفات بعد التعديل؟
    شكرا لك
  10. إجابة محمد أبو عواد سؤال في صفحة التحكم في المتجر كانت الإجابة المقبولة   
    مرحبا عبد الرحمن
    لنحاول فهم آلية تطوير أي موقع الكتروني, أي موقع الكتروني يتكون من قسمين , القسم الأول ما بعرف بالواجهة الأمامية أو الفرونت اند وهو ما يراه المشاهد, وهو ما تعلمناه من خلال دورة تطوير واجهات المستخدم, في هذه المشرحلة نحن نحاول تصميم الموقع ليكون في أفضل شكل له, نختار في هذه المرحلة شكل الخطوط ولون الكلام وشطل الصور والمساحات والطول والعرض وحجم الخطوط وغيرها من التنسيقات ليظهر الموقع في أفضل حال له ويجذب المشاهد, وما هو مهم لتعرفه بالنسبة لهذا القسم هو أننا نستخدم بيانات غير حقيقية فقط لنستعرض التصميم ونشاهد كيف سيعمل مع هذه التنسيقات وهل سوف يعجبنا أم لا
    أما القسم التاني وهو الواجهة الخلفية وهي الأمور التي تحدث في الخلف ولا يشاهدها المستخدم, مثل عندما تقوم بتسجيل في موقع ما, كيف يعرف الموقع بياناتك, وأين يحفظها, وكيف يحفظها, ما هي الأكواد المستخدمة في ذلك وماذا أحتاج لهذه العملية؟ الأكواد المستخدمة في ذلك تختلف باختلاف لغة البرمجة المستخدمة في الواجهة الخلفية, هناك الكثير من لغات البرمجة المستخدمة في الواجهة الخلفية, هناك php وجافاسكربت وبايثون وغيرها, تحتاج لحفظ البيانات ما بعرف بقواعد البيانات, نقوم بربط قاعدة البيانات بالمشروع الخاص بنا باستخدام لغة البرمجة الخلفية
    بعد ما تم شرحه بالأعلى نكون قد فهمنا اننا لم نصل بعد للمرحلة التي تؤهلنا لاضافة المنتجات او ان نتحكم في صفحة ما من خلال لوحة تحكم, نحن فقط أنجزنا نصف الطريق وهو الواجهة الأمامية, بقي أمامنا الواجهة الخلفية التي تسمح لنا بذلك
    يوجد في اكاديمية حسوب العديد من الدورات التي تهتم بالواجهة الخلفية , من ضمنها دورة تطوير تطبيقات الويب باستخدام لغة PHP يمكنك الذهاب الى صفحة الدورة للمزيد من الملعلومات من هنا
    وأيضا دورة تطوير تطبيقات الويب باستخدام لغة Ruby ويمكنك الذهاب الى صفحة معلومات الدورة من هنا
    شكرا لك
  11. إجابة محمد أبو عواد سؤال في الدومين والاستضافة كانت الإجابة المقبولة   
    مرحبا عبد الرحمن
    نعم يمكنك ذلك ولكن هناك بعض الشروط وبعض المتطلبات
    الشروط:
    أن لا تكون قد غيرت معلوماتك خلال الـ 60 يوما قبل نقل الدومين.
    أن يكون قد مر على استخدامك للدومين أكثر من 60 يوم, اذا كان اقل من ذلك لا يمكن

     المتطلبات:
    أن يكون الدومين مفتوح وغير مقفل , وأيضا هناك رخصة لنقل الدومين تسمى رخصة النقل أو EPP Code يجب ان تحصل عليها للسماح لك بنقله, وبالفعل تحتاج ثمن النقل لأن عملية نقل الدومين كأنك تشتري دومين من الشركة الجديدة ولذلك تحتاج ثمنها
    شكرا لك
     
     
  12. إجابة محمد أبو عواد سؤال في المقارنة بين السلاسل المحرفية باستخدام == و استخدام is كانت الإجابة المقبولة   
    مرحبا مرام
    يقارن عامل المساواة (==) قيم كل من المعاملات ويتحقق من تساوي القيمة. أما العامل "is" يتحقق مما إذا كان كلا المعاملين يشيران إلى نفس الكائن أم لا, لنشرح ذلك بمثال
    list1 = [] list2 = [] //المقارنة الأولى if (list1 == list2): print("True") else: print("False") //المقارنة الثانية if (list1 is list2): print("True") else: print("False") في المقارنة الأولى نقارن هل قيمة list1 هي نفسها قيمة list2, سوف يطبع true لأن القيم بالفعل متساوية
    في المقارنة الثانية نقارن هل list1 يشير الى نفس الكائن الذي يشير اليه list2 , بالطبع لا فسوف يطبع false
    شكرا لك
  13. إجابة محمد أبو عواد سؤال في التعامل مع محرر النصوص froala كانت الإجابة المقبولة   
    مرحبا اسماعيل
    هناك خيارات كثيرة لمحرر النصوص froala , يمكنك اضافتها على شكل كائن من نوع JSON ويمكنك الغاء حذف زر ادراج الصور و الفيديوهات بوضع هذا الخيار 
    imageUpload: false يمكنك معرفة المزيد من خلال الموقع الرسمي لمحرر النصوص froala, يمكنك الذهاب الى طريقة استخدام الخاصية imageUpload: false من هنا
    شكرا لك
  14. إجابة محمد أبو عواد سؤال في مشكلة عند استعمال switch في ++C كانت الإجابة المقبولة   
    لا تدعم switch البيانات من نوع string في لغة c++, تستطيعين استخدام if كما في الكود الآتي
  15. إجابة محمد أبو عواد سؤال في تعديل حجم الصورة داخل عنصر div كانت الإجابة المقبولة   
    نستطيع القيام بذلك من خلال Html أو Css
    بداية لاحظ معي الكود دون تعديل على حجم الصورة
    كود Html
    <div class="test">    <img  src="test.png" alt=""> </div> كود Css
    .test{     border: 1px solid #333;     width: 50vw;     height: 50vh; } حددت للحاوية div التي لها الصنف test طول وارتفاع وأعطيته بوردر
    وسوف تكون النتيجة هكذا
    الآن سوف نعدل في حجم الصورة باستخدام Html و Css
    أولا من خلال Html : نعطي العنصر img خاصية width و height كالمثال الآتي
    <div class="test">    <img width="100%" height="100%" src="test.png" alt=""> </div> لاحظ الخاصيتان width , height بعد تحديد قيمتهما سوف تكون النتيجة هكذا
    ثانيا من خلال Css : نعطي العنصر img خاصية width و height كالتالي
    .test{     border: 1px solid #333;     width: 50vw;     height: 50vh; } img{     width: 100%;     height: 100%; } سوف تكون النتيجة مشابهة للنتيجة في الأعلى
  16. إجابة محمد أبو عواد سؤال في كيفية توسيط div بداخل div كانت الإجابة المقبولة   
    هناك العديد من الطرق لتوسيط div بداخل div, لنستعرض معا البعض منها
    الطريقة الأولى: نقوم بإعطاء div الداخلي width معين مثلا 50% ومن ثم نعطيه خاصية margin كما هو موضح في الكود الآتي
    .b{ width: 50%; margin: 0 auto; } عند اعطاء هذه الخصائص لل div الداخلي سوف يتوسط بداخل div الخارجي وسوف تكون النتيجة بهذا الشكل
    الطريقة الثانية: نستخدم خاصية table حيث نعطي عنصر div الداخلي هذه الخصائص
    .b{ display: table; margin: 0 auto; } سوف تكون النتيجة بهذا الشكلالطريقة الثالثة: سوف نستخدم خاصية flexbox  لتوسيط ال div الداخلي بداخل ال div الخارجي, لاحظ لو سمحت الكود الآتي
    .a{     border:1px solid #f00;     display: flex;     justify-content: center;//لتوسيط المحتوى     padding: 20px; } لاحظ أعطينا الdiv الخارجي خاصية display: flex; ومن ثم ثم قمنا بتوسيط المحتوى الذي بداخله
    سوف تكون النتيجة مشابهة لنتيجة الطريقة الثانية
  17. إجابة محمد أبو عواد سؤال في تخصيص أيقونة البرجر javascript كانت الإجابة المقبولة   
    انت تستخدم في ملف js.js كود jquery ولذلك يجب تحميل مكتبة jquery واستدعائها في الكود أو يمكنك استخدام نسخة cdn منها وتستطيع الحصول عليه من هنا ومن ثم استدعائه في الكود
    <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> يمكنك استخدام الكود الذي في الأعلى وسوف يعمل معك بشكل صحيح
     
  18. إجابة محمد أبو عواد سؤال في الفرق بين Html و Html5 كانت الإجابة المقبولة   
    بمرور الوقت يجري تحديثات على Html ، وأحدث إصدار من HTML هو HTML5 فهو يحتوي على الكثير من الوسوم الجديدة مثل <header> ، <footer> ، <navy> ، <Audio> ، <video> ، <main>, ,هذه الصورة توضح الفرق في بناء صفحة Html4 و Html5 .
    وأيضا يوفر HTML5 الدعم الكامل لتشغيل JavaScript بينما لا يمكن أن تسمح HTML بتشغيل JavaScript داخل مستعرض الويب, يدعم HTML5 أنواعًا جديدة من عناصر التحكم في النموذج ، مثل التاريخ والوقت والبريد الإلكتروني والرقم والفئة والعنوان وعنوان URL والبحث وما إلى ذلك.
  19. إجابة محمد أبو عواد سؤال في أرشيف المسارات الأقدم كانت الإجابة المقبولة   
    يمكنك البدء من بداية الدورة بشكل طبيعي وليس من الضروري البدء بالأرشيف , حيث أنك لو تابعت من البداية بشكل جيد مع الدورة والمدرب فسوف تسير بشكل صحيح وتجد الأمور بخير.
    أما أرشيف الدورات فهي للدورات القديمة التي حُدثت ولن تحتاج له
  20. إجابة محمد أبو عواد سؤال في برنامج بلغة كوتلن يقوم بطباعة جدول الضرب من 1 الى 12 كانت الإجابة المقبولة   
    لكي نستطيع كتابة هذا البرنامج نستخدم nstead of for loop حيث الأولى تكرر الرقم الأول والثانية تكرر الارقام بالترتيب كما هو موضح في الصورة

×
×
  • أضف...