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

لوحة المتصدرين

  1. سمير عبود

    سمير عبود

    الأعضاء


    • نقاط

      5

    • المساهمات

      3552


  2. احمد صوالحة

    احمد صوالحة

    الأعضاء


    • نقاط

      4

    • المساهمات

      29


  3. إسلام عبدالعزيز

    • نقاط

      4

    • المساهمات

      93


  4. Meriam Drawshy

    Meriam Drawshy

    الأعضاء


    • نقاط

      1

    • المساهمات

      12


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 03/07/21 في كل الموقع

  1. يُمكنك إستخدام join لعمل الشيء الذي تُريده بهذا الشكل: لعمل فلترة للمُستخدمين حسب الأكثر طلباً: <?php User::join('orders', 'orders.user_id', '=', 'users.id') ->selectRaw('users.*, count(orders.id) as orders_count, sum(orders.amount) as total_amount') ->groupBy('users.id') ->orderBy('orders_count', 'desc') ->paginate(10); لعمل فلترة للمُستخدمين حسب مجموع قيمة الطلبات: <?php User::join('orders', 'orders.user_id', '=', 'users.id') ->selectRaw('users.*, count(orders.id) as orders_count, sum(orders.amount) as total_amount') ->groupBy('users.id') ->orderBy('total_amount', 'desc') ->paginate(10); أما إن كنت تريد عمل فلترة للمُستخدمين حسب مجموع قيمة الطلبات بالإضافة لتحديد مجال للمجموع يُمكنك ذلك من خلال التالي: <?php $min_amount = 30000; $max_amount = 40000; User::join('orders', 'orders.user_id', '=', 'users.id') ->selectRaw('users.*, count(orders.id) as orders_count, sum(orders.amount) as total_amount') ->groupBy('users.id') ->havingRaw('total_amount >= ? and total_amount <= ?', [$min_amount, $max_amount]) ->orderBy('total_amount', 'desc') ->paginate(10); بنفس الطريقة إن أردت تحديد مجال لعدد الطلبات يُمكنك ذلك أيضاً.
    2 نقاط
  2. Android هو نظام تشغيل مفتوح المصدر مبني على نواة لينكس مع إضافة بعض التعديلات عليها ليعمل النظام على الهواتف المحمولة والحواسيب اللوحية، وغيرهما من الأجهزة الذكية المختلفة، ويتم تطوير إصدارات النظام بواسطة شركة جوجل. الطبقات الرئيسية المكونة لنظام أندرويد الصورة التالية توضح الهيكل الداخلي للأندرويد والطبقات الرئيسية المكونة لنظام التشغيل. ينقسم نظام التشغيل إلى خمس طبقات وظيفتها كالآتي: طبقة التطبيقات Application Layer (الطبقة العلوية) وهي الطبقة التي نتعامل معها دائمًا كمستخدمين لنظام التشغيل، فهي تحتوي على تطبيقات النظام والتطبيقات التي نقوم بتحميلها من المتجر -وهي الطبقة التي سيعمل فيها تطبيقك في آخر هذا الدرس-، أمثلة على ذلك تطبيق الاتصال وتطبيق البريد الإلكتروني وتطبيق المتصفح. الطبقة الخاصة ببيئة عمل التطبيقات Application Framework Layer تحتوي تلك الطبقة على مكتبات بُنيت بلغة الجافا خصّيصًا لنظام تشغيل أندرويد وتوفر هذه المكتبات طرق الوصول إلى الموارد الخاصة بالهاتف مما يجعل تطوير التطبيقات أسهل -وهي الطبقة التي سنتعامل معها كمطوري تطبيقات للأندرويد- وأمثلة على ذلك: View System: وهي مكتبة تحتوي على العناصر اللازمة لإنشاء واجهة المستخدم مثل TextViews و Buttons و Checkboxes و غيرها من العناصر الخاصة بواجهة المستخدم. Notification Manager: تحتوي هذه المكتبة على العناصر اللازمة لإنشاء و إرسال الإشعارات للمستخدم الخاصة بتطبيقك. Telephony Manager: وهي المكتبة المسؤولة عن استقبال و إرسال المكالمات الهاتفية من داخل تطبيقك. Location Manager: وهي المكتبة المسؤولة عن تحديد المواقع باستخدام GPS Sensors المتواجدة بالهاتف. أسفل هذه الطبقة سنجد طبقة خاصة تنقسم إلى جزئين: طبقة المكتبات المطورة بلغة C و ++C (المعروفة باسم Libraries Layer) وتحتوي هذه الطبقة على مكتبات مكتوبة بلغة C لقدرة لغة C على القيام بالمهام القوية بشكل كفء دون إهدار لموارد النظام. أمثلة على ذلك: SQLite: تستخدم للتعامل مع قواعد البيانات. OpenGL|ES: تستخدم للتعامل مع الرسوميات ثنائية و ثلاثية الأبعاد و تستخدم بشكل أكبر مع ثلاثية الأبعاد. FreeType: تستخدم للتعامل مع أنواع الخطوط المختلفة. Media FrameWork: تستخدم للتعامل مع الصيغ المختلفة لملفات الفيديو. Android Runtime و تحتوى هذه الطبقة على مجموعة من المكتبات والتي تجعل المطور قادر على برمجة التطبيقات باستخدام لغة الجافا. كما تحتوى على الآلة الافتراضية (Virtual Machine) المسؤولة عن تشغيل التطبيقات والتي تم تطويرها لكي تعمل على الهواتف المحمولة وتتميز باستهلاكها القليل للموارد من الذاكرة العشوائية والمعالج وبطارية الهاتف وتسمى بـ Dalvik Virtual machine. ويعمل كل تطبيق داخل نسخة خاصة به من الآلة الافتراضية مما يميزها بالأمان فالتطبيق لا يستطيع أن يرى باقي التطبيقات ولا يستطيع الوصول إلى بيانات من داخل الهاتف دون علم المستخدم ومنحه الصلاحيات اللازمة لذلك - تلك الصلاحيات التي يتم منحها للتطبيق عند تحميله من المتجر- لذلك ينصح بالتدقيق فيما يحتاجه التطبيق من صلاحيات وألا تقوم بتحميل تطبيقات ذات صلاحيات زائدة عن حاجة التطبيق لكي يعمل ، وصُممت الآلة الافتراضية بطريقة تجعل أكثر من نسخة من الآلة الافتراضية تعمل معًا بسلاسة وذلك لكي يصبح المستخدم قادراً على تشغيل واستخدام أكثر من تطبيق معًا دون الشعور باختلاف في الأداء. طبقة النواة (Kernel) وهي الطبقة المسؤولة عن التعامل مع العتاد المختلف للهواتف فتحتوي على التعريفات الأساسية الخاصة بهذا العتاد كما توفر طريقة أبسط للطبقة العلوية للوصول لمميزات العتاد وهي نفس نواة لينكس. تعتبر كل طبقة هي حلقة الوصل بينها وبين ما فوقها أو تحتها من طبقات، وكلما أتجهنا للأسفل كلما استُخدمت لغات وطرق أقرب في تعاملها مع العتاد كلغة C أو الأسمبلي مثلاً وكلما صعدنا للأعلى كلما استُخدمت لغات وطرق أسهل للمستخدم وتقدم خدمات غنية له كالجافا مثلاً. إصدارات أندرويد قبل البدء بتطوير التطبيقات ينبغي علينا معرفة ما هي إصدارات أندرويد، سأقوم سريعًا بذكر كافة إصدارات أندرويد المختلفة ورقم الإصدار ورقم الـ API الخاص بها. Cupcake 1.5 API 3 Dount 1.6 API 4 Eclair 2.0 API 5 Froyo 2.2 API 8 Gingerbread 2.3.3 API 10 Honeycomb 3.0 API 11 Ice Cream sandwich 4.0 API 14 Jellybean 4.1 API 16 Kitkat 4.4 API 19 Lollipop 5.0 API 22 Marshmallow 6.0 API 23 بعد أن تعرفنا على إصدارات أندرويد تبقى علينا معرفة عدد مستخدمي كل إصدار منهم لأنه ليس بالضرورة أن يكون أحدث إصدار هو الأفضل لتطوير التطبيقات من أجله، فعدد المستخدمين لهذا الإصدار أحد العوامل المحددة لذلك. تقوم جوجل شهرياً بنشر إحصائيات عن عدد مستخدمي كل إصدار من إصدارات أندرويد ويمكنك معرفتها عن طريق الرسم البياني التالي. لكل إصدار من إصدارات أندرويد مزايا خاصة أُضيفت له لم تكن متوافرة في الإصدارات الأقدم، ولكي تستطيع بناء هذه المزايا في تطبيقك ينبغي اختيار الإصدار الأدنى المناسب لمزايا تطبيقك لأنك تستطيع دعم المزايا الخاصة بالإصدار الأدنى فقط، لذا كلما قمنا بدعم إصدارات أقدم كلما فقدنا المزايا الحديثة وفي المقابل نحصل على عدد مستخدمين أكثر وإذا قمنا بدعم أحدث الإصدارات سوف نحصل على مزايا أكثر وعدد مستخدمين أقل. لذا سنختار الحد الأدنى الذي سنحتاجه من المزايا دون خسارة عدد المستخدمين، وإصدار Jellybean يتيح لك مزايا جيدة واستهداف عدد مستخدمين أكبر لأن تطبيقك سيعمل على كل من Jellybean و kitkat و lollipop و marshmallow وما سيأتي بعد ذلك من إصدارات أحدث وهو كما يتضح في الرسم البياني السابق أكثر من 90% من مستخدمي أندرويد، ولكنه لن يعمل على أي هاتف يعمل بإصدار أقدم من Jellybean. المتطلبات للبدء ببرمجة تطبيقات أندرويد كل ما تحتاجه هو حاسوب يعمل بأي نظام من أنظمة التشغيل الرئيسية -ويندوز أو لينكس أو ماك- لتبدأ معنا هذه الدروس. لا يوجد حاجة لمعرفة سابقة بلغة برمجة فسنتعلم معاً ما نحتاج إليه. هذه الدروس موجهة بشكل أساسي للمبتدئين. البرامج التي سنعمل عليها خلال الدروس القادمة: JDK Android Studio قم بتحميل هذه البرامج وبتثبيتها على جهازك. ملاحظة: ينبغي تثبيت JDK أولاً قبل البدء في تثبيت Android Studio حيث أنه يحتاج إليه عند التثبيت. إنشاء مشروع جديد الآن بعد الانتهاء من تثبيت البرامج اللازمة لتطوير تطبيقات أندرويد دعنا نُنشئ مشروعنا الأول وهو مشروع "أهلاً بالعالم Hello World". قم بفتح برنامج Android Studio واختر Start a new android studio project من القائمة. قم باختيار اسم التطبيق الخاص بك ثم اكتب نطاق موقعك – إن وجد – أو قم بكتابة الاسم كما هو موجود في الصورة وسيتم شرح فائدة هذا الاسم لاحقاً. اختر تطوير التطبيق من أجل Phone and Tablet ثم اختر إصدار Jellybean كإصدار أدنى كما ذكرنا سابقًا. اختر Blank Activity ثم أضغط Next. سنبقي هذه الخانات على حالتها الافتراضية حيث يمكننا تغييرها فيما بعد وأضغط Finish. تم إنشاء أول مشروع لك بنجاح. ملفات ومجلدات المشروع دعنا الآن نستعرض بيئة التطوير وما توفره لنا كمطورين من مزايا. على اليسار هناك ثلاثة ملفات / مُجلّدات رئيسية تكونت تلقائياً بداخل app وهي: manifests java res مجلد manifest والذي يحتوي على ملف AndroidManifest.xml ويعتبر هذا الملف مهم جداً لنظام أندرويد لما يقدمه من معلومات أساسية للنظام قبل أن يقوم بتشغيله، أبرز هذه المعلومات: يحتوي على اسم الحزمة Package Name: وهو اسم مميز للتطبيق لتمييزه عن باقي التطبيقات المتواجدة على الهاتف ، فمثلاً إن كان اسم تطبيقك Gallery و هناك تطبيق آخر على الهاتف يسمى Gallery كيف يستطيع النظام التفرقة بين صلاحيات كل منهما و معلوماتهما الخاصة؟ يقوم النظام بتمييزهما عن طريق Package Name لذا فهو يعتبر اسمًا مُميّزًا لتطبيقك لا ينبغي أن يتشابه مع Package Name لأي تطبيق آخر ، من أجل ذلك وضعت قواعد لتسمية الـ Package أهمها هو أن تجعل تطبيقك على هيئة اسم نطاق لموقعك - إن وجد – فمثلا نجد شركة Google عند تسمية حزم تطبيقاتها تستخدم com.google.appName فيكون لها اسم حزمة Package Name فريد لا يتكرر. ملحوظة: يتم تحديد Package Name عند إنشاء التطبيق في الخانة الخاصة بالـ Company Domain. يقوم بتعريف المكونات الأساسية التي يتكون منها التطبيق الخاص بك: سوف نتعرف على هذه المكونات في الدرس التالي، ويتكون التطبيق من أحد هذه المكونات أو أكثر على حسب حاجة التطبيق. يحتوي الإصدار الأدنى الذي يعمل التطبيق معه وهو ما قمنا بتحديده مسبقا عند إنشاء للمشروع. يحتوي على الصلاحيات التي سيعطيها النظام للتطبيق –إن وجدت-. يحتوي على الصلاحيات التي يجب على التطبيقات الأخرى أن تطلبها إن أرادت أن تتبادل معلومات مع تطبيقك. لذا يعتبر هذا الملف من الملفات الأساسية التي يعتمد عليها النظام في تحديد كيفية التعامل مع التطبيق وإذا لم يتم تحديد كل شيء بشكل صحيح فذلك يعرض تطبيقك إلى ألا يعمل. مجلد java يختص هذا المُجلّد بالشيفرة التى سنكتبها للتطبيق و هي الشيفرة الذى يحدد وظيفة التطبيق و استجابة الواجهة و تنفيذها للأوامر. مجلد res و يهتم هذا المُجلّد بكل الموارد التي يتعامل معها التطبيق من صور و عناصر مكونة لواجهة المستخدم و عناصر مكونة للقوائم ويتكون من مجموعة من المجلّدات المرتبة كالآتي: drawable ويخص هذا المُجلد كافة الصور التي سيتم استخدامها في التطبيق. layout ويخص هذا المجلد بالتصميم الخاص بواجهة المستخدم و ما تحتويه من عناصر مختلفة. menu ويخص هذا المجلد بالقوائم و ما تحتويه من عناصر. mipmap ويخص هذا المجلد بالأيقونة الخاصة بالتطبيق فقط. values ويحتوى هذا المجلد على ملفات أخرى لكل منها وظيفة مختلفة و لكنها تشترك في فكرة عامة واحدة وهي جعل التطبيق أكثر مرونة لدعم دقة الشاشات المختلفة و الأحجام المختلفة ودعم اللغات المختلفة كما سنرى لاحقا في الدروس القادمة. المحاكي Simulator كما تتميز بيئة تطوير Android Studio بأنها بيئة تطوير متكاملة وتحتوي على ما يحتاجه المطور من أدوات لصنع تطبيق أندرويد فكما رأينا فهي تحتوي على مستعرض للمشروع وملفاته وتحتوي على المترجم الخاص والذي يحول الشيفرة إلى صيغته التنفيذية والتي تعمل على الهواتف وأيضاً تحتوي على محاكي للهواتف والحواسيب اللوحية ونستطيع تجربته عن طريق الضغط على (AVD (Android Virtual Device من داخل Android Studio في شريط القوائم وسنجد أنه تلقائياُ لديه هاتف جاهز للعمل. كما يمكنك أن تقوم بصنع محاكي آخر عن طريق الضغط على Create Virtual Device. الآن قم بتشغيل المحاكي و انتظر حتى يعمل كالتالي. قد يأخذ المحاكي بعض الوقت خاصة عند تشغيله أول مرة لذا ينصح دائما أن تقوم بتشغيل المحاكي قبل أن تقوم بتجربة التطبيق بفترة كافية. لتجربة التطبيق الذي قمنا بإنشائه على المحاكي من داخل android studio اضغط على الأيقونة Run ثم انتظر حتى تظهر أمامك شاشة يظهر فيها اسم المحاكي. ثم اختر المحاكي وأضغط ok. ستجد التطبيق يعمل الآن على المحاكي. ملحوظة: عند إنشاء أي مشروع داخل بيئة عمل Android Studio يقوم تلقائياً بإنشاء مشروع يعرض فقط كلمة !Hello World أمام المستخدم وهو الذي شاهدناه في الصورة السابقة حيث أننا لم نقوم بتغيير أي شيء في المشروع الأصلي. بهذا نكون قد وصلنا إلى نهاية أول دروسنا من هذه السلسة وإلى لقاء قريب بإذن الله، في انتظار تجربتكم وما مررتم به من مشاكل إن وجدت.
    1 نقطة
  3. أحسنت أخي عبود سمير مادمت أخي أكرم لم تصنع مخالفات أو أختلافات مع عميلك لا تقلك فمستقل سيحل المشكلة بكل سهوله أنظر في خانت ضمان حقك .السلام عليكم ورحمة الله وبركاته بالتوفيق
    1 نقطة
  4. يعتمد ذلك على إصدار PHP الذي تستخدمه. اعتبارًا من PHP 5.3.0، هذا ليس ضروريًا. بدلاً من ذلك، من الأفضل استخدام الـ Namespaces. تدعم بيئات الاستضافة الحديثة PHP 5.3.0 على الأقل، إن لم تكن أعلى، ولهذا السبب، لا يتعين علينا استخدام class_exists إلا في بعض الحالات الخاصة جدًا، مثل إنشاء مكتبة Dependency Injection، وتعريف طريقة الـ dependency resolution، وهذه مواضيع معقدة لا يجب أن تشغل نفسك بها إلا عندما تتقن أساسيات اللغة أولاً. يمكنك التفكير في الـ Namespace مثل حزمة مكونة من قطع فريدة. لا يمكن أن تكون هناك قطعتان متماثلتان في نفس الحزمة. لذلك، في أي كود حديث، مثل Laravel، ستلاحظ أنهم يستخدمون Namespaces بدلاً من class_exists، لأن الـ Namespaces ستتأكد دائمًا من وجود أو عدم وجود الـ class قبل أن يتم دمجه أو تعريفه في النطاق. الطريقة القديمة: <?php if ( ! class_exists( 'MyClass' ) ) { class MyClass {} } الطريقة الحديثة: <?php namespace MyScope; class MyClass { }
    1 نقطة
  5. لا تدعم switch البيانات من نوع string في لغة c++, تستطيعين استخدام if كما في الكود الآتي
    1 نقطة
  6. قائمه حدودها من نمط صحيح تسمى منصفه اذا كانت مايلي : القائمه ليست فارغه عدد حدودها زوجي حدود في النصف الاول من قائمه تكون بنفس الترتيب ونفس القيم في النصف الثاني من قائمه . اكتب عمليه خارجيه تتلقى قائمه Lst حدودها من نمط صحيح تعيد العمليه true اذا كانت قائمه منصفه والا تعيد false
    1 نقطة
  7. اختبار إذا كانت السلسلة فارغة اختبار طول السلسلة زوجي / فردي حساب نصف الطول مقارنة كل عنصر مع ما يقابله أرجو منك تجريب كتابة الحل أولا و الاعتماد علي نفسك ثم يمكنك الاستعانة بالشيفرة التالية public static bool IsGood(string text) { if (text == null) return false; // فارغة if (text.length() % 2 == 1) return false; // طول فردي int shift = text.length() / 2; // طول نصف السلسلة for (int i=0;i< shift; i++) { if (text[i] != text[i+shift]) { // نقارن العنصر مع العنصر المقابل من النصف الآخر return false; } } return true; // اجتازت جميع اختبارات الفشل }
    1 نقطة
  8. إن Laravel Valet يقوم بإنشاء ما يدعى بـ symlinks ضمن المسار التالي على نظام لينكس: /usr/local/bin ويمكن إنشاء أول رابط عن طريق تنفيذ الأمر التالي: brew link php7 حيث سيتم طباعة رسالة النجاح أو الفشل مع تحديد المشكلة في حال وجودها لتتمكن من معرفة السبب بدقة. غالباً تكون المشكلة في الصلاحيات الموجودة، للتأكد يجب القيام بالتالي: sudo chown -R `whoami`:admin /usr/local/bin ثم: lrwxr-xr-x 1 YOURUSER admin 29 10 May 21:40 php -> /usr/local/Cellar/php7/7.1/bin/php (مع استبدال نسخة PHP بالنسخة الموجودة في النظام). ولمعرفة نسخة PHP الموجودة نقوم بتنفيذ الأمر: brew list وبعدها يمكن إجراء override من جديد على هذه النسخة للقيام بإنشاء link : brew link php@7.1 --force --overwrite وأخيراً، نقوم بالتحميل من جديد: valet install
    1 نقطة
  9. أريد أن أستخدم صورة موجودة لدي في مجلد public داخل المشروع الرئيسي وليست موجودة داخل مجلد src وعند محاولة إستدعاء هذه الصورة يحدث الخطأ التالي: ./src/components/website_index.js Module not found: You attempted to import ../../public/logo.jpg which falls outside of the project src/ directory. Relative imports outside of src/ are not supported. You can either move it inside src/, or add a symlink to it from project's node_modules/. وهذا هو الكود الذي كتبته: import logo from '../../public/logo.png'; <img alt="My Brand" src={logo}/> هل توجد طريقة لفعل ذلك؟
    1 نقطة
  10. هذا قيد خاص أضافه مطورو حزمة create-react-app ويتم تنفيذه في ModuleScopePlugin لضمان بقاء الملفات في src /، ويضمن هذا المكون الإضافي أن الإستيرادات النسبية relative imports من مجلد التطبيق لا تصل إلى خارجه (أي لا يمكن للمشروع في حالة production أن يصل إلى مجلد src لأسباب أمنية)، ومع ذلك يمكنك أن تزيل هذا القيد من خلال إستخدام حزمة react-app-rewired من خلال الخطوات التالية: تثبيت الحزمة: npm install react-app-rewired --save-dev قم بصنع ملف باسم config-overrides.js في مجلد المشروع الرئيسي، وأكتب بداخله: // نستدعي إضافة ModuleScopePlugin const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); // وهنا نقوم بتعديل الإعدادت وحذفها منها module.exports = function override(config, env) { config.resolve.plugins = config.resolve.plugins.filter(plugin => !(plugin instanceof ModuleScopePlugin)); return config; }; عدل على ملف package.json كالتالي: "scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test" } شغل المشروع للتجربة npm start // Build your app npm run build بالرغمن من كل الخطوات السابقة إلا أنه لا يجب أن تستورد من المجلد public - حيث سيتم تكرار تلك الملفات في مجلد build وسيكون متاحًا من خلال عنوانين URL مختلفين، مما يؤدي في النهاية إلى تفاقم حجم تنزيل الحزمة. بينما الإستيراد من مجلد src لأفضل وله مميزات أكثر لأن كل شيء يتم حزمه وضغطه من خلال webpack وستكون حينها كل الصور والملفات أكفاءة فضل في التحميل.
    1 نقطة
  11. يظهر لي الخطأ التالي عند تشغيل برنامج جافا: Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 مع انني استخدم احدث اصدار للـJDK ولدي القيمة JAVA_HOME : C:\Program Files\Java\jdk-15.0.2 في Environment Variables. ما هو الـclass file version وكيف أحل هذه المشكلة ؟
    1 نقطة
  12. افتح podfile وقم بالبحث عن # platform :ios, وقم بإزالة علامة #, أو قم بحذف ملف Podfile.lock ,وقم بتنفيذ الأمر التالي: pod install أو طبق الأوامر التالية: flutter clean rm -Rf ios/Pods rm -Rf ios/.symlinks rm -Rf ios/Flutter/Flutter.framework rm -Rf ios/Flutter/Flutter.podspec cd ios pod install cd .. flutter build ios
    1 نقطة
  13. لدي نموذج للطلبات Order حيث كل مُستخدم له عدة طلبات حسب العلاقة hasMany: <?php public function orders() { return $this->hasMany(Order::class); } أما النموذج Order: <?php public function user() { return $this->belongsTo(User::class); } حيث يربط النموذجين الحقل user_id و يوجد في جدول الطلبات الحقل amount لتخزين مبلغ الطلب. أريد معرفة كيف بإمكاني عمل فلترة للمُستخدمين حسب الأكثر طلباً أي من الأعلى طلب إلى الأقل طلب و الفلترة أيضاً حسب مجموع قيمة الطلبات.
    1 نقطة
  14. من المفروض عند إنهاء أي مشروع على المنصة يأتيك إشعار في حسابك أنه تم إضافة مبلغ بقيمة كذا لحسابك، لكن هذا المبلغ يكون مُعلق لمُدة 14 يوم علماً أن مدة التعليق تبدأ من اليوم التالي لاستلام المشروع وتستمر حتى انتهاء اليوم الرابع عشر بتوقيت غرينتش. أما زر سحب الرصيد يظهر إذا توفر الحد الأدني للسحب وهو 25 دولار، إذا توفرت كل هذه الشروط و لم تظهر أرباحك مع الرصيد القابل للسحب إفتح صفحة الرصيد لديك و أعد تحديثها أكثر من مرة أو قم بحذف الكاش من المتصفح فعادة المُتصفح لا يقوم بتحميل الصفحة كلها من الخادم و إنما يستخدم ذاكرة التخزين المُؤقت لتسريع عملية التصفح. تأكد أنه يُمكنك دائما مواصلة الدعم الفني للمنصة للإستفسار عن أي شيء تُريده من خلال: مركز المساعدة بفتح تذكرة لإستفسارك و سيرد عليك الإخوة هناك و مُساعدتك.
    1 نقطة
  15. في لغة بايثون لجمع عناصر مصفوفة نستخدم الدالة sum: print(sum([1, 2, 3])) # 6 لترتيب عناصر مصفوفة نستخدم الدالة sorted: print(sorted([11, 2, 1, 9, 7])) # [1, 2, 7, 9, 11] الدالة sorted تُرتب تصاعدياً لقلب الترتيب نستخدم الدالة sorted و نُمرر لها مُعامل آخر: print(sorted([11, 2, 1, 9, 7], reverse=True)) # [11, 9, 7, 2, 1] لأخذ قطعة من مصفوفة نستخدم slice كما هو موضح أدناه: a[start:stop] # نُحدد البداية و النهاية مثلاً: print([11, 2, 1, 9, 7][0:3]) # [11, 2, 1] إجمع كل هذه النقاط مع بعض للوصول للشيء الذي تُريده أولاً الترتيب بشكل تنازلي ثانياً أخذ قطعة من المصفوفة المرتبة مكونة من 3 أعداد ثم إستعمال الدالة sum. و هذا مثال بسيط: print(sum(sorted([11, 2, 1, 9, 7], reverse=True)[0:3])) # 27 يُمكنك إستخدام هذه المراحل لإنشاء دالة تفعل ما تريد.
    1 نقطة
  16. احاول جلب بيانات من الـfirebase لكن يظهر لدي الخطأ التالي: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.luvtas.campingau, PID: 11763 com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.luvtas.campingau.Model.CamperSiteModel at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:436) at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232) at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:80) at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:203) at com.luvtas.campingau.Fragment.ExploreFragment$3.onDataChange(ExploreFragment.java:128) at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75) at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63) at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) هذا هو الكود: private RecyclerView recyclerView; private CamperSiteAdapter camperSiteAdapter; private List<CamperSiteModel> camperSiteModel; EditText seatch_bar; private void readCampSite(){ DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Cte"); reference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { if(seatch_bar.getText().toString().equals("")){ camperSiteModel.clear(); for(DataSnapshot snapshot : dataSnapshot.getChildren()){ CamperSiteModel camperSiteModel1 = snapshot.getValue(CamperSiteModel.class); camperSiteModel.add(camperSiteModel1); } camperSiteAdapter.notifyDataSetChanged(); } } @Override public void onCancelled(@NonNull DatabaseError error) { } }); } كود الـmodel: public CamperSiteModel() { } public CamperSiteModel(String camperSiteID, String camperSiteName, String camperSiteImage, String camperSiteType, String camperSiteDistance, String camperSiteInfo, String camperSiteSummary, String camperSiteAddress, String camperSiteLatitude, String camperSiteLongitude, String camperSitePrice1, String camperSitePrice2, String camperSiteEmail, String camperSiteSub) { CamperSiteID = camperSiteID; CamperSiteName = camperSiteName; CamperSiteImage = camperSiteImage; CamperSiteType = camperSiteType; CamperSiteDistance = camperSiteDistance; CamperSiteInfo = camperSiteInfo; CamperSiteSummary = camperSiteSummary; CamperSiteAddress = camperSiteAddress; CamperSiteLatitude = camperSiteLatitude; CamperSiteLongitude = camperSiteLongitude; CamperSitePrice1 = camperSitePrice1; CamperSitePrice2 = camperSitePrice2; CamperSiteEmail = camperSiteEmail; CamperSiteSub = camperSiteSub; } فما هي المشكلة ؟
    1 نقطة
  17. لدي تطبيق يقوم بمحاولة بإنشاء اتصال بقواعد البيانات mysql ويظهر الخطأ التالي: I/System.out: Error ************************java.sql.SQLNonTransientConnectionException: Could not create connection to database server. W/System.err: java.lang.NullPointerException: Attempt to invoke interface method 'java.sql.Statement java.sql.Connection.createStatement()' on a null object reference at com.example.testjdbc.MainActivity.getUserList(MainActivity.java:54) W/System.err: at com.example.testjdbc.MainActivity.showData(MainActivity.java:73) W/System.err: at com.example.testjdbc.MainActivity.onCreate(MainActivity.java:24) at android.app.Activity.performCreate(Activity.java:7136) W/System.err: at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) الكود: private Connection getConnection(){ Connection con; try{ Class.forName("com.mysql.cj.jdbc.Driver").newInstance(); con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/testandroid?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=GMT","root",""); return con; }catch (Exception e){ System.out.println("Error :"+e); return null; } } private ArrayList<User> getUserList() { ArrayList<User> userList = new ArrayList<>(); Connection connection = getConnection(); String query = "Select pseudo FROM `users` where userID="+1; Statement st; ResultSet rs; try{ st = connection.createStatement(); rs = st.executeQuery(query); User user ; while (rs.next()) { user = new User(rs.getString("pseudo")); userList.add(user); } }catch (Exception e){ e.printStackTrace(); } return userList; } private void showData(){ ArrayList<User> list = getUserList(); for (int i=0; i<list.size(); i++){ test.setText(list.get(i).getPseudo()); test.setText("gn"); } }
    1 نقطة
  18. لحل هذه المشكلة، علينا تقسيمها إلى أجزاء أصغر (سأقوم بإستخدام جافاسكريبت، ولكن خطوات الحل يمكن تنفيذها في أي لغة). أول مشكلة: كيف أجد الآحاد في رقم معين؟ في كل لغات البرمجة، يوجد مفهوم الـ modulus. الـ modulus هو العلامة % وتستخدم لإرجاع الباقي من رقم معين. مثلاً، إذا أردنا أن نحصل على الآحاد من الرقم 12345، يمكننا أن نفعل هذا: 12345 % 10 // => 5 56789 % 10 // => 9 تم حل أول مشكلة، ويمكننا الآن الحصول على الآحاد بسهولة. الآن نريد أن نكتب دالة لتقوم بعمل حلقة حول المصفوفة المعطاه، وجمع الآحاد من الأرقام الموجودة بها. في هذه الحالة، يمكننا إستخدام reduce، وهي method جاهزة تعمل على المصفوفات في جافاسكريبت. تقوم هذه الدالة بأخذ مدخلين. المدخل الآخير هو القيمة التي سنبدأ بها الحلقة. فمثلاً، سنقوم بجمع أرقام الآن، لذا سنبدأ بـصفر. المدخل الأول، هو عبارة عن دالة، تأخذ مدخلين أيضاً. الأول هو المجموع الحالي الذي وصلنا إليه، والثاني هو العنصر الحالي. function getOnesDigit(n) { return n % 10; } function sumRightDigits(digits) { return digits.reduce((total, current) => total + getOnesDigit(current), 0); } sumRightDigits([10, 21, 3, 8, 9, 11, 44, 62, 100]); // => 28
    1 نقطة
  19. الفكرة ككل هي في جلب رقم الآحاد لعدد مُعين و نحصل على هذا الرقم بإجراء قسمة إقليدية للعدد على 10 حيث باقي القسمة هو رقم الآحاد مثلاً لنأخذ العدد 62 عندما نقسمه على 10 نتحصل على 6 و باقي قسمة هو 2 و هو الرقم المطلوب. غالباً في لغات البرمجة علامة باقي القسمة هي: % بعد هذه المعلومة تُصبح الأمور واضحة المعالم فكل ما يتبقى لك هو تعريف دالة تستقبل مُعامل واحد بالشكل التالي مثلاً بلغة بايثون: def sumRightDigit(numbers): تعريف متغير داخل الدالة لتخزين المجموع و إسناد القيمة 0 له: def sumRightDigit(numbers): sum = 0 عمل حلقة على عناصر المصفوفة و إضافة رقم الآحاد في كل لفة من الحلقة. def sumRightDigit(numbers): sum = 0 for number in numbers: sum += number % 10 في الأخير إرجاع قيمة المُتغير الذي يحمل مجموع الآحاد، ثم إستخدام الدالة: def sumRightDigit(numbers): sum = 0 for number in numbers: sum += number % 10 return sum print(sumRightDigit([10,21,3,8,9,11,44,62,100])) # 28 بنفس الطريقة يُمكننا إستخدام لغة جافاسكربت الفرق فقط في بعض الsyntax: function sumRightDigit(numbers) { sum = 0 for (i in numbers) sum += numbers[i] % 10 return sum } console.log(sumRightDigit([10,21,3,8,9,11,44,62,100])) // 28 إتبع نفس الطريقة في اي لغة تريد.
    1 نقطة
  20. يحدث الخطأ عند إستدعاء الكود التالي: BottomSheetScaffold( scaffoldState = bottomSheetScaffoldState, sheetContent = { Text("anything") }, sheetShape = Shapes.large, backgroundColor = AppTheme.colors.uiBackground, modifier = modifier ) { (content) } رسالة الخطأ: java.lang.IllegalArgumentException: The initial value must have an associated anchor. هل هناك أي إقتراحات لحل المشكلة ؟
    1 نقطة
  21. لقد نسيت ان تضيف هذه الخاصية sheetPeekHeight = 0.dp سيكون الكود كالتالي: BottomSheetScaffold( scaffoldState = bottomSheetScaffoldState, sheetContent = { Text("") }, sheetShape = Shapes.large, sheetPeekHeight = 0.dp, // <---السطر الجديد backgroundColor = AppTheme.colors.uiBackground, modifier = modifier ) { (content) }
    1 نقطة
  22. أرى دائماً على موقع مستقل الكثير من المشاريع التي يمكن أن تكون مناسبة لك. مثلاً، يطلب أصحاب المشاريع مدقق لغوي لمراجعة كتابات والتأكد من صحتها وسلامتها اللغوية والنحوية والإملائية. يقوم البعض الآخر بطلب كتابة مقالات حول الكثير من المواضيع (البرمجة، الرياضة، الإقتصاد). أنصحك أن يكون لك مدونة إلكترونية تعرض فيها كتاباتك وأعمالك، وحاول دائماً تعلم أشياء جديدة لزيادة فرصك في الحصول على مشروع.
    1 نقطة
  23. أهم جزء في البرمجة هو فهم المشكلة. إذا أعطيتك الإجابة، فسأؤذيك، لأنه من الأفضل أن تحاول إيجاد حل بنفسك باستخدام بعض التلميحات. إذن، ها هي نصائحي فيما يتعلق بالعمل مع المصفوفات. الـ matrix، في أبسط تعريف، هي مصفوفة تحتوي على مصفوفات أخرى (array of arrays). يُطلق على عدد الصفوف في المصفوفة اسم m. يُطلق على عدد الأعمدة في المصفوفة اسم n. نظرًا لأن المصفوفات يتم تمثيلها بالصفوف والأعمدة، فإننا نسمي المصفوفة باستخدام عدد صفوفها مضروبًا في عدد أعمدتها (m x n). في حالتك، إنها 4x3، وهذا يعني أن المصفوفة بها 4 صفوف و 3 أعمدة. وعدد العناصر هو 12 (حاصل ضرب 4 في 3). نظرًا لأن المصفوفة عبارة عن مصفوفة من المصفوفات، فإذا قمنا بعمل access على أول index، فسوف نحصل على أول صف. مثلاً: ماتركس[0]. وإذا قمنا بالدخول على أول عنصر في أول صف، مثلاً، ماتركس[0][0]، سنحصل على أول عنصر الموجود في أول عمود. إذا أردنا الوصول إلى جميع العناصر للقيام ببعض العمليات، مثل إيجاد الأعداد الصحيحة الموجبة، فعلينا القيام بحلقة For-Loop متداخلة. بمعنى آخر، ستتحكم For-Loop الخارجية في الصفوف، وستتحكم For-Loop الداخلية في الأعمدة. في حالتك، يمكنك إستخدام الـ nested for-loop لكي نختار الأرقام الموجبة فقط، ونضعها في array منفصل. أتمنى أن هذا كان مفيدا.
    1 نقطة
  24. هذا المشكل بسيط الأول ينحل بتشغيل المحاكي فقط الثاني كل ما عليك فعل هو دورة في أساسيات تطوير تطبيقات الأندرويد System.out.print لن تظهر أي نتيجة على المحاكي من يتحكم في واجهة التطبيق على المحاكي هو ملف ال xml أو activity_main.xml
    1 نقطة
  25. هذا خطأ بسيط انت تستخدم الكود system.out.println لأظهار النص على شاشة الموبيل و هذا خطأ, هذا الكود يطبع المكتوب فيه في شاشة ال terminalالخاصة بالمطور فقط -ستجدها في الbar في الأسفل- ان ما تريده هو تغيير كلمة hello world لعبد الله هذا يمكن و لكن يحتاج لاستكمال الكورس قليلا لانك ستربط ال text في ملف ال xml بكود في جافا عن طريق id -ان وصلت له
    1 نقطة
  26. كما قال أحد الزملاء أن لغة HTML هي لغة لهيكلة صفحات الويب فقط ولا تستطيع صناعة برامج سطح مكتب بها. كي تتمكن من بإنشاء سطح مكتب لابد من تعلم إحدى لغات البرمجة المتعددة مثل #C أو VB أو Java .... إلخ. من وجهة نظري المتواضعة كما قال Bjarne Stroustrup وهو من نشأ لغة ++C "من قال أني أعمل بأفضل لغة برمجة إما مسئول مبيعات أو مجنون" ولكن إضافة إلى هذه المقولة من وجهة نظري عند إنشاء تطبيق يعمل على نظام تشغيل فمن الأفضل أن أنشئ هذا التطبيق بلغة ينصحني بها صانع نظام التشغيل هذا. وصانع نظام التشغيل لسطح المكتب ويندوز هي شركة ميكروسوفت ، لذلك من وجهة نظري في حالة أنك تريد تعلم لغة تصنع بها برامج سطح مكتب ، يرجى تعلم حزمة MCSD الخاصة بشركة ميكروسوفت. MS SQL Server Query - دورة تعلم الإستعلام من SQL Server MS SQL Server Developing - دورة تعلم تطوير قواعد بيانات بـSQL Server Programming in CSharp - تعلم لغة سي شارب واستخدام دوت نت فريم وورك Data Access - دورة تعلم ربط برنامج سي شارب بـقواعد بيانات SQL Server HTML5 & CSS3 & JavaScript - في حالة أنك تريد استكمال الدراسة لتتمكن من تصميم ويب ثم صناعة تطبيق ويب ASP.NET Web Form - دورة صناعة تطبيق ويب بتقنية ASP.NET Web Form بلغة سي شارب ASP.NET MVC - دورة صناعة تطبيق ويب بتقنية ASP.NET MVC بلغة سي شارب Web Service & Windows Azure - في حالة أنك تريد صناعة خدمة بدون واجهة تعلم على تطبيق أو تطبيقات أخرى واستخدام ويندوز أزور (MS Cloud ) مع وافر الاحترام والتقدير ... وفقك الله
    1 نقطة
×
×
  • أضف...