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

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

  1. Adnane Kadri

    Adnane Kadri

    الأعضاء


    • نقاط

      4

    • المساهمات

      5196


  2. بلال زيادة

    بلال زيادة

    الأعضاء


    • نقاط

      3

    • المساهمات

      4376


  3. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      3

    • المساهمات

      6975


  4. Maram Jouriah

    Maram Jouriah

    الأعضاء


    • نقاط

      2

    • المساهمات

      43


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

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

  1. أولا يمكنك حساب جميع المجاميع الفرعية الممكنة. و أبسط طريقة هي أخذ كل عنصر وحساب مجموع كل المصفوفات الفرعية بدءًا منه. على سبيل المثال ، بالنسبة إلى [-1 ، 2 ، 3 ، -9 ، 11]: // تبدأ من -1: -1 -1 + 2 -1 + 2 + 3 -1 + 2 + 3 + (-9) -1 + 2 + 3 + (-9) + 11 // تبدأ من 2: 2 2 + 3 2 + 3 + (-9) 2 + 3 + (-9) + 11 // تبدأ من 3: 3 + (-9) 3 + (-9) + 11 // بدءًا من -9 -9 -9 + 11 // ابتداء من 11 11 بعد أن فهمنا الخازارزمية يمكننا كتابة الدالة على الشكل التالي: function getMaxSubSum(arr) { let maxSum = 0; // إذا لم نأخذ أي عناصر ، فسيتم إرجاع الصفر for (let i = 0; i < arr.length; i++) { let sumFixedStart = 0; for (let j = i; j < arr.length; j++) { sumFixedStart += arr[j]; maxSum = Math.max(maxSum, sumFixedStart); } } return maxSum; } console.log( getMaxSubSum([-1, 2, 3, -9]) ); // 5 console.log( getMaxSubSum([-1, 2, 3, -9, 11]) ); // 11 console.log( getMaxSubSum([-2, -1, 1, 2]) ); // 3 console.log( getMaxSubSum([1, 2, 3]) ); // 6 console.log( getMaxSubSum([100, -9, 2, -3, 5]) ); // 100 الكود هو في الواقع حلقة متداخلة: الحلقة الخارجية فوق عناصر المصفوفة ، والداخلي يحسب المجاميع الفرعية التي تبدأ بالعنصر الحالي.
    2 نقاط
  2. بعد إنشاء المدونة الخاصة بي لاحظت أنها بطيئة في التحميل و أريد تسريعها ماهي الخطوات التي علي أن أقوم بها
    1 نقطة
  3. لنعتبر لدي السلسلة x=[12,23,1,12,32,23,45,1] ارغب بالحصول على تعداد كل عنصر ضمن السلسلة
    1 نقطة
  4. لنعتبر لدي السلسلةالتالية: x=[1,12,15,4,6,88] كيف ممكن اختار عنصر عشوائي منها
    1 نقطة
  5. السلام عليكم ورحمة الله وبركاتة سؤالي هو كيف تربح قنوات اليوتيوب من رفع دروس ومحاضرات دينية للشيوخ رغم أنها مكررة بشدة على اليوتيوب في حين قوانين اليوتيوب لا تسمح بذلك؟ ورمضان مبارك كريم
    1 نقطة
  6. تسمح صفحة إعدادات المناقشة بالتحكم بالخيارات المرتبطة بالتعليقات (تُدعى أيضا بالمناقشة). حيث يُقرر من خلالها المدير تفعيل التعليقات ضمن الموقع أم لا وإن كانت التنبيهات pingbacks والتعقيبات trackbacks مقبولة أم لا وما هي التعليقات التي تُعتبر مزعجة كما يمكنه في الصفحة ذاتها اختيار الحالات التي تُرسل فيها المدونة تنبيهات بريد إلكتروني للمدير لأحداث معينة على الموقع. الإعدادات الافتراضية للمقال يمكن تجاوز هذه الإعدادات فرديًا لكل مقال. محاولة تنبيه المدونات المشار إليها في المقالة: يقوم ووردبريس بإرسال تنبيه ping للموقع أو المقال الذي أُشير له ضمن المقال عند تفعيل هذا الخيار. سوف تظهر هذه الإشارة ضمن قسم التعليقات لموقعهم إن كان الموقع المُشار إليه يسمح بالتنبيهات pingbacks. تتم عملية التنبيه خلال نشر المقال على شبكة الانترنت لذلك وجود العديد من الروابط التشعبية ضمن المقال سوف يُبطئ عملية النشر لأن ووردبريس يقوم بتنبيه جميع المواقع الإلكترونية قبل نشر المقال. السماح بإشعارات الربط من المدونات الأخرى (التنبيهات PingBacks والتعقيبات TrackBack) في المقالات الجديدة: تفعيل هذا الخيار يعني قبول ووردبريس التنبيهات Pings من مواقع أخرى التي يُحتمل أن تشير إلى مقالات ضمنه وكما ذُكر سابقًا فإن التنبيهات PingBacks والتعقيبات Trackbacks سوف تظهر في قسم التعليقات للمقال عند تفعيل هذا الخيار. السماح للناس بإرسال التعليقات على المقالات الجديدة (يُمكن تغيير وتجاوز هذه الإعدادات في كل مقال بطريقة منفصلة) يجب تفعيل هذا الخيار للسماح بالتعليق على المقالات ومن الممكن التحكم بالتعليقات من خلال تحويل المقال لمقال خاص يتطلب كلمة مرور صحيحة قبل السماح بالتعليق أما لمنع الزوار من التعليق يجب عدم تفعيل هذا الخيار. إعدادات التعليقات يجب على المعلق كتابة الاسم والبريد الإلكتروني - يفرض هذا الخيار على أصحاب التعليقات المزعجة بذل جهد إضافي من خلال كتابة الاسم والبريد الإلكتروني قبل نشر التعليق وبالرغم من بساطة الموضوع إلا أنه يُخفض من عدد التعليقات المزعجة. يجب على الزوار التسجيل ليتمكنوا من التعليق - تفعيل هذا الخيار يسمح فقط للزوار المسجلين ضمن الموقع التعليق على المقالات. إيقاف التعليقات تلقائيًا في المقالات التي مرّ على نشرها x يوم. - يُحدد هذا الخيار عدد الأيام اللازمة بعد نشر المقال لإيقاف ميزة التعليقات ضمنه بشكل تلقائي. إتاحة التعليقات التشعبية بحيث يكون العمق x مستويات - يسمح هذا الخيار بكتابة تعليقات متشعبة وتحديد مستوى عمق التعليقات المتداخلة (10 هو الحد الأقصى) المسموح بها. يجب على القالب المُستخدم أن يكون مُجهز بشكل جيد لعرض التعليقات المتداخلة. حدّد عدد التعليقات في كل صفحة بحيث يظهر x تعليق في كل صفحة واعرض صفحة التعليقات [الأولى/الأخيرة] افتراضياً، ويجب أن تظهر التعليقات [الأحدث/الأقدم] في أعلى الصفحة - يسمح هذا الخيار بعرض التعليقات ضمن صفحات وتحديد عدد التعليقات الأعظمي لعرضه ضمنها إضافة إلى اختيار ترتيب الصفحات من الأولى للأخيرة أو العكس وعرض التعليقات ضمن هذه الصفحات من الأقدم أو من الأحدث. أرسل لي بريد إلكتروني في حال يتيح الخياران التاليان التحكم بالأحداث التي يتلقى فيها المؤلفون والمدير تنبيهات عن التعليقات التي تنتظر المراجعة واستخدام "لي" هنا يشير إما إلى مؤلف المقال أو المدير (الشخص الذي يُستخدم بريده الإلكتروني لأغراض إدارية). نشر تعليق، حيث سيتم إرسال تنبيه للمؤلف عند تفعيل هذا الخيار عند كتابة أي تعليق على الموقع ولكن في حال تلقى مقال الكثير من التعليقات سوف يمتلئ صندوق بريد المؤلف بالإشعارات. إضافة تعليق ينتظر المراجعة، إذ سيرسل ووردبريس عند تفعيل هذا الخيار تنبيه بأن التعليق قيد المراجعة، حيث يُرسل التنبيه إلى البريد الإلكتروني المدرج في تبويب "عام" من قسم "إعدادات" ضمن حساب المدير. هذا الخيار مفيد عندما يكون لمدونتك عدة مؤلفين وكل مؤلف مخول لرفض أو قبول التعليقات. يمكن لمدير الموقع باستخدام هذه الطريقة مراجعة التعليقات المقبولة أو المرفوضة من قبل المؤلفين. قبل ظهور التعليق توفر هذه الإعدادات تحكم أوسع بما يتعلق بالتعليقات التي يتم نشرها. يجب الموافقة على التعليق يدويًا - يفرض هذا الخيار الموافقة على التعليقات من قبل المستخدم ذي الرتبة المناسبة حتى في حال تبين أن التعليقات هي تعليقات مزعجة. ألق نظرة على خيارات إدارة التعليقات في الأسفل المتعلقة بالتعليقات المزعجة. صاحب التعليق يجب أن يملك تعليقات سابقة - يضمن تفعيل هذا الخيار أن التعليقات المنشورة هي فقط من قبل زوار يمتلكون بريد إلكتروني تم الموافقة له سابقًا على تعليق وإلا سوف يتم وضع التعليق قيد المراجعة. بالنسبة للتعليقات المكتوبة من قبل صاحب بريد إلكتروني محظور (عناوين البريد الإلكتروني الموجودة ضمن صندوق كلمات التعليقات المزعجة المحلي) سوف يتم وضعها ضمن المراجعة بغض النظر عن حالة قائمة المسموح لهم. إدارة التعليقات يمكن تحديد هذه الخيارات ضمن قسم إدارة التعليقات للتعامل مع التعليقات المزعجة. لا تنشر التعليقات التي تحتوي على x رابط أو أكثر. إذ تتميز التعليقات المزعجة Spam باحتوائها على الكثير من الروابط. كان أصحاب التعليقات المزعجة يُضمّنون 5 أو 10 روابط ضمن تعليقاتهم المزعجة منذ زمن ليس ببعيد وهذا سهّل على المدونيين التعرف على هذه التعليقات ولكن سرعان ما تنبه أصحاب التعليقات المزعجة لهذا الأمر واعتمدوا استخدام رابط أو اثنين ضمن تعليقاتهم. يُمكن تحديد عدد ضمن المربع لإعلام ووردبريس بعدد الروابط التي يُسمح للمُعلق تضمينها قبل تحويل تعليقه للمراجعة. عندما يحتوي التعليق على أي كلمة من الكلمات التالية في نص التعليق، اسم المعلّق، الرابط، عنوان البريد الإلكتروني أو في عنوان IP، أو سلسلة وكيل مستخدم المتصفح، سيتم حينها نقل التعليق إلى طابور المراجعة. أضف في كل سطر كلمة واحدة أو عنوان IP، وخذ بالحسبان أنه يتم البحث داخل الكلمات فإذا أضفت الكلمة "بريس" سيتم إرسال كل تعليق يحتوي على الكلمة "ووردبريس" إلى قائمة الانتظار. يُمكن إضافة الكلمات المزعجة الخاصة بمالك الموقع ضمن هذا المربع ليتم ترشيح التعليقات التي يتم نشرها بالاعتماد على محتواه. مفاتيح التعليقات غير المسموح بها عندما يحتوي التعليق على أي كلمة من الكلمات التالية في نص التعليق، اسم المعلّق، الرابط، عنوان البريد الإلكتروني أو في عنوان IP، أو سلسلة وكيل مستخدم المتصفح، سيتم حينها نقل التعليق إلى سلة المهملات. أضف في كل سطر كلمة واحدة أو عنوان IP. خذ بالحسبان أنه يتم البحث داخل الكلمات فإذا أضفت الكلمة "بريس" سيتم إرسال كل تعليق يحتوي على الكلمة "ووردبريس" إلى سلة المهملات. يُشابه عمل هذا المربع المربع السابق ولكن بدلا من تحويل التعليقات إلى المراجعة يتم تحويل التعليقات إلى سلة المهملات بدون أي تنبيه. يُنصح باستخدام هذا الخيار كملاذ أخير فمن الممكن أن تُحذف تعليقات غير مزعجة. الصور الرمزية عبارة عن صور تُلازم صاحب حساب ووردبريس من مدونة لأخرى حيث تظهر بجانب اسمه عند إرسال تعليق ضمن موقع يستخدم الصور الرمزية. يسمح هذا القسم تفعيل عرض الصور الرمزية للزوار عند كتابة تعليق ضمن المدونة ويستخدم ووردبريس افتراضيًا Gravatars للصور التي تظهر بجانب التعليقات. يمكن استبدال Gravatars باستخدام الإضافات. عرض الصورة الرمزية السماح بعرض الصور الرمزية - تظهر الصور الرمزية بجانب التعليقات عند تفعيل هذا الخيار. نوع الصور الرمزية المسموح عرضها يسمح هذا الخيار بتحديد مستوى الصور التي يُسمح بعرضها على المدونة. G — ملائمة للجميع. PG — ممكن أن تكون مسيئة، عادة لمن أعمارهم 13 سنة أو أكثر. R — موجهة للمراهقين الذين تزيد أعمارهم عن 17 سنة. X — للبالغين فقط. الصورة الرمزية الافتراضية يُمكن عرض الشعار أو توليد صورة بالاعتماد على عنوان بريدهم الإلكتروني للمستخدم الذي لا يمتلك صورة رمزية خاصة به. شخصية غامضة فارغ شعار موقع Gravatar أيقونة (عشوائي) وجوه (عشوائي) وحوش (عشوائي) ريترو (عشوائي) حفظ التغييرات لحفظ التغييرات يجب الضغط على خيار حفظ التغييرات حيث يظهر بعدها في أعلى الصفحة نص يؤكد عملية الحفظ مباشرة بعد الضغط عليه. ترجمة -وبتصرف- للمقال Settings Discussion Screen من موقع ووردبريس.
    1 نقطة
  7. يمكنك تسجيل serviceProvider الخاص بالحزمة لأشخاص معينين فقط , وجعل عملية تسجيله ديناميكية عن طريق التعديل بملف AppServiceProvider.php : <?php namespace App\Providers; use Barryvdh\Debugbar\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { } public function register(){ if(auth()->user() && in_array(auth()->id(), [1,2,3])) { $this->app->register(new Barryvdh\Debugbar\ServiceProvider()); } }
    1 نقطة
  8. فحصت الكود الخاص بجزء ال login يقوم بعمل hash للباسورد عند تسجيل الدخول باستخدام خوارزمية sha1 // check if user coming from HTTP post request if ($_SERVER['REQUEST_METHOD']== 'POST'){ $username =$_POST['username']; $password =$_POST['password']; // يقوم بتشفير كلمة المرور $hashedpass = sha1($password); //check if the user exist in database // والاستعلام عن المستخدم بكملة المرور المشفره $stmt=$con->prepare("SELECT Username, Password FROM users WHERE Username = ? AND Password = ? AND GroupID=1"); $stmt->execute(array($username, $hashedpass)); $count =$stmt->rowCount(); // If Count >0 This Mean The Database Conta Record About This Username if ($count>0){ echo 'welcome ' . $username; $_SESSION['Username'] = $username; // Register Session name header ('Location: Dashboard.php'); //Redirect To Dashboard Page exit(); } } إذا كنت تقوم بتسجيل الباسورد في قاعدة البيانات من غير تشفير فتحتاج إلي تشفيره ب sha1 algorithm يمكنك تشفير كلمة المرور قبل وضعها في قاعدة البيانات وذلك عن طريق اي sha1 online ووضع الكود المشفر داخل عمود الباسورد في جدول ال user // مثلا عند تشفير كلمة password // password => 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 يمكنك وضع ال 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 في عمود الباسورد وتسجيل الدخول بكلمة password بالاضافه إلي اسم المستخدم
    1 نقطة
  9. نص التمرين : مصفوفة تخزن ارقام مثلا : arr = [1, -2, 3, 4, -9, 6] المطلوب : إيجاد أكبر مجموع للارقام ضمن هذه المصفوفة مثلا : getMaxSubSum([-1,9( 2, 3,) -9]) == 5 (للتوضيح فقط أكبر مجموع بين قوسين من ... إلى) getMaxSubSum([(2, -1, 2, 3,) -9]) == 6 getMaxSubSum([-1, 2, 3, -9, (11)]) == 11 getMaxSubSum([-2, -1, (1, 2)]) == 3 getMaxSubSum([(100), -9, 2, -3, 5]) == 100 getMaxSubSum([(1, 2, 3)]) == 6 (take all) الدالة getMaxSubSum(arr) هي التي ستعيد المجموع . ملاحظة : ممكن المجموع يكون 0 او يكون رقم بمفرده ك الرقم 11 في المثال ,ويمكنيكون في اي مكان : getMaxSubSum([-1, 2, 3, -9, 11]) == 11
    1 نقطة
  10. لا داعِ لتشكيل جميع المصفوفات الفرعية و تخزينها في متغير لأن هذا يأخذ ذاكرة بدون داعِ يمكننا تحديد المصفوفات الجزئية بحلقتين i, j و المرور على هذه العناصر وحساب المجموع الجزئي فيها ومقارنته مع المتغير العام. القيمة البدائية للمتغير الذي سنخزن فيه النتيجة يجب ألا تكون 0، لأنه في حالة كانت جميع العناصر سالبة سيكون جواب المسألة خطأ لأنه سيعرض 0 بدل القيمة السالبة الأكبر ضمن عناصر المصفوفة. لذلك إن شيفرة المدرب محمد آيت لعراك أفضل ولكن يجب تعديلها قليلا في جزئية القيمة الابتدائية لمتغير الجواب ليجلب أكبر قيمة عنصر في المصفوفة (وبهذه الحالة سيخزن مؤقتا قيمة أكبر عدد سالب في حال كانت جميع العناصر في المصفوفة سالبة) وهذا لن يؤثر في حال كان هنالك حل آخر أكبر بدون هذه الحالة الخاصة. function getMaxSubSum(arr) { let maxSum = Math.max(...arr); // إذا لم نأخذ أي عناصر ، فسيتم إرجاع أكبر عدد سالب for (let i = 0; i < arr.length; i++) { let sumFixedStart = 0; // عند حساب المجموع لمصفوفة جزئية نبدأ ب 0 وهذا سليم for (let j = i; j < arr.length; j++) { sumFixedStart += arr[j]; maxSum = Math.max(maxSum, sumFixedStart); } } return maxSum; } يمكنك تجريب المثال التالي: console.log( getMaxSubSum([-1, -2, -9]) ); وسيعطي جواب -1 (أكبر قيمة سالبة) يمكن تسريع الخوارزمية باستخدام البرمجية الديناميكية و المجموع المتراكم ولكن لن يفرق الأداء في حال كانت عناصر المصفوفة عددها صغير نسبيا..
    1 نقطة
  11. لقراءة تكرار عنصر وحيد يمكن استخدام الدالة count على القائمة: x=[12,23,1,12,32,23,45,1] x.count(1) # 2 لنقوم بعد جميع تكرارات العناصر يمكننا استخدام Counter من المكتبة collections حيث يثوم ببناء قاموس حيث المفتاح هو العدد و القيمة هي التكرار: from collections import Counter z = ['blue', 'red', 'blue', 'yellow', 'blue', 'red'] Counter(z) # Counter({'blue': 3, 'red': 2, 'yellow': 1}) أو باستخدام القاموس مباشرة: dict((i, a.count(i)) for i in a) def occurDict(items): d = {} for i in items: if i in d: d[i] = d[i]+1 else: d[i] = 1 return d والمثال الأخير يعبر عن دالة تقوم ببناء قاموس لعد تكرارات القيم من قائمة.
    1 نقطة
  12. أريد أن الضغط على رقم التيليفون ( كما في الصورة المرفقة )، تحويل المستخدم مباشرة إلى تطبيق ( الهاتف ) مع وجود الرقم المضغوط عليه ليتمكن من الاتصال عليه مباشرة.
    1 نقطة
  13. يمكنك استخدام حزمة url_launcher ومن ثم تمرر لها الرقم launch("tel://214324234"); بداخل دالة onPressed onPressed: () => launch("tel://21213123123"),
    1 نقطة
  14. المشكلة في أنك تستخدم SeoResource::collection($this->whenLoaded('seo')) ولكن لديك عنصر واحد فقط وليس مجموعة وبالتالي يمكنك استبدال 'seo' => SeoResource::collection($this->whenLoaded('seo')), بالتالي 'seo' => new SeoResource($this->whenLoaded('seo')),
    1 نقطة
  15. تحتاج إلى تغيير دالة shouldBeDisplayed الخاصة ب Widgetعلى النحو التالي: public function shouldBeDisplayed(){ return auth()->user()->hasRole('admin'); } فهنا يتحقق من أن دور المستخدم الحالي هو المسؤول أم لا.
    1 نقطة
  16. ولكن الخوارزمية التي وضعتها غير صحيحة فقد غفلت عن شرط التتالي كما هو في نص التمرين ,اضافة الى انك تتجاهل الاعداد السالبة , فهنا مثلا يفترض ان يكون اكبر المجموع 7 لايهم ان كان بينهم عدد سالب لا يؤثر ,في حالتنا مثلا لو كان بين 3 و 4 الرقم (-2) سيتخطى البرنامج هذا الجزء و في الاخير لايجد الا الرقم 6 الذي هو في اخر المصفوفة كابر جزء,الخوارزمية تبدا من 1 , يحفظه , ثم يضيف (-2) الخ المهم في الاخير يجب ان تتحصل على قطعة من المصفوفة بها اكبر المجموع لها اتمنى ان تكون فهمتني اليك مثالا للمصفوفة : [-1, 2, 3, -9, 11] // تبدأ من -1: -1 , -1 + 2 ,-1 + 2 + 3, -1 + 2 + 3 + (-9), -1 + 2 + 3 + (-9) + 11 // تبدأ من 2: 2 2 + 3 2 + 3 + (-9) 2 + 3 + (-9) + 11 // تبدأ من 3: 3 + (-9) 3 + (-9) + 11 // بدءًا من -9 -9 -9 + 11 // ابتداء من 11 11
    1 نقطة
  17. لتحليل هاته الخوارزمية قمت بالعمل التالي : 1 - إيجاد كل المصفوفات الفرعية التي يمكن تشكيلها من عنصر فأكثر من عناصر المصفوفة الأصلية . 2 - حساب مجموع أعداد كل مصفوفة فرعية . و أيضا لا يجب أن ننسى مجموع كل المجموعات الفرعية التي يمكن تشكيلها من هاته المجموعة الفرعية (قد تبدوا الفكرة معقدة لكن ينبغي تبسيطها و فهم أيضا أنه يمكن معاملة المجموعة الفرعية على أنها مجموعة أصلية غير محسوب مجموعها بعد و قد يحتوي مجموع إحداها على المجموع المطلوب فلا ينبغي أبدا إغفالها ). 3 - في كل دورة لحساب المجاميع يتم تسجيل هذا المجموع , و لا داعي لتسجيله إن كان محصلا بالفعل من عدد n عناصر من قبل . 3 - الان و قد تم حساب كل المجاميع الممكنة , يجب أخذ أكبرها قيمة و فقط . الان و قد تم فهم الخوارزمية يمكن تطبيقها عن طريق عملية متكررة للعثور على مجموع أعداد كل مصفوفة فرعية يمكن تشكيلها عن طريق مصفوفة . بالنسبة للكود سيكون مشابها لما يطبق نفس المنطق , و قد قمت بكتابته على هذا النحو : إنشاء دالة تتولى الخطوة 2 و 1 معا , بحيث تقوم بإيجاد المصفوفات الفرعية و المصفوفات الفرعية الممكن تشكيلها من هاته المصفوفة الفرعية و هكذا . و كل مرة يتم تشكيل مصفوفة فرعية يتم تسجيل مجموع عناصرها : var sums = []; // تحضير مصفوفة مجاميع فارغة function getAllPossibleSums(group, sub_group) { // if( group.length == arr.length || (group.length <= arr.length && sub_group.length == 0) ){ // لا حاجة لتسجيل مجموع في بداية الدور وفي حال عدم وجود أي مصفوفة if( group.length > 0 ){ // حساب المجموع var total = group.reduce(function(a,b){return a+b;},0); // لا حاجة لتسجيل المجموع إلا إن كان غير مسجل if(sums.indexOf(total) == -1){ sums.push(total); } } } // بداية التكرار تكون هنا else{ // ايجاد و تسجيل مجموع كل العناصر getAllPossibleSums(group.concat(sub_group[0]),sub_group.slice(1)); // ايجاد وتسجيل مجموع كل العناصر الممكن تشكيلها من المصفوفة الفرعية getAllPossibleSums(group,sub_group.slice(1)); } // إعادة المجاميع return sums; } 2. عمل دالة تقوم بالخطوة رقم 3 : function getMaxNumInArray(arr){ let i; // البدء بالعنصر الأول let max = arr[0]; // اجتياز العناصر بعد الاندكس المختار ومقارنة كل عنصر مع العنصر المختار for (i = 1; i < arr.length; i++) { // في حالة وجود قيمة أكبر سجلها if (arr[i] > max){ max = arr[i]; } } // إعادة أكبر عنصر return max; } 3. عمل دالة تلخص عمل الماضيتين : function getMaxSubSum(arr) { var all = getAllPossibleSums([],arr); return getMaxNumInArr(all); } ثم أخيرا دمج الأكواد على هذا النحو : function getMaxSubSum(arr) { var all = getAllPossibleSums([],arr); return getMaxNumInArr(all); } var sums = []; /** * هاته الدالة تقوم بتلخيص منطق العملية * @param arr : array */ function getMaxSubSum(arr) { var all = getAllPossibleSums([],arr); return getMaxNum(all); } /** * هاته الدالة تقوم بتسجيل أي مجموع يمكن تشيكله من المصفوفة * @param group : array , sub_group: array */ function getAllPossibleSums(group, sub_group) { if( group.length == arr.length || (group.length <= arr.length && sub_group.length == 0) ){ if( group.length > 0 ){ var total = group.reduce(function(a,b){return a+b;},0); if(sums.indexOf(total) == -1){ sums.push(total); } } } else{ getAllPossibleSums(group.concat(sub_group[0]),sub_group.slice(1)); getAllPossibleSums(group,sub_group.slice(1)); } return sums; } /** * إيجاد العدد اﻷكبر قيمة في قائمة أعداد * @param arr : array */ function getMaxNumInArr(arr){ let i; let max = arr[0]; for (i = 1; i < arr.length; i++) { if (arr[i] > max){ max = arr[i]; } } return max; } و من ثم إستدعاء الدالة على هذا النحو : var arr = [ 1, -2, 3, 4, -9, 6]; console.log(getMaxSubSum(arr)); // 14
    1 نقطة
  18. أعتقد أنها هكذا: <?php while($row = mysqli_fetch_array($result)) { $output .= substr(''.$row['message'].'', 0, 35) . '\n'; // </br> اذا كنت توجه الخرج لصفحة html بدل \n } echo $output; ?> يتم تجميع خرج البرنامج في المتغير output ثم نقوم بطباعة الناتج. يمكن حذف 'n\' فقد استخدمتها لطباعة سطر جديد. _ <br/> في HTML لماذا تضعها ضمن اقتباس فردي؟ ' ' لا داعٍ لذلك
    1 نقطة
  19. يمكنك تحقيق الغرض كالتالي : <?php $output = ''; while($row = mysqli_fetch_array($result)) { $output .= substr($row['message'], 0, 35); } echo $output; ?>
    1 نقطة
  20. وعليكم السلام ورحمة الله وبركاته يمكنك تخزين ناتج ال substr function في متغير ثم دمجه علي ال output <?php while($row = mysqli_fetch_array($result)) { $subMessage = substr(''.$row['message'].'', 0, 35); $output .= $subMessage; } ?>
    1 نقطة
  21. اهلا البرنامج الذي يمكنك من خلاله عمل وايت بورد او فيديوهات موشن جرافيك وانفوجرافيك هو برنامج After Effect يمكنك تعلم كيفية استخدامه والعمل عليه باحترافية من عدد من قنوات اليوتيوب ما عليك سوا البحث عليها وستجد ما يفيدك ان شاء الله
    1 نقطة
  22. أولاً fetch دالة جاهزة في ال javascript بينما axios مكتبة تحتاج لإستدعائها بالطبع ليس خطأ والفرق بينهما بسيط ويمكن لكلاهما القيام بنفس الشئ والفرق بينهما fetch لا تدعم IE 11 بينما axios تدعمه عند عمل request يجب أن تقوم بتنفيذ الدالة json() function لل response بينما لا نقوم بذلك في axios يجب عليك تحويل ال object ل json في ال fetch بينما لا نقوم بذلك في ال axios أعتقد أنه لا يمكنك العمل مع ال service worker لل PWA باستخدام axios فقط fetch لذلك يمكنك استخدام كلاهما بدون مشاكل ولكن في التطبيقات الكبيرة ربما تسهل ال axios العمل عن ال fetch
    1 نقطة
  23. يوجد بعض الاختلافات بين ال fetch و الاكسيوس ساوضح بعضها كالتاللي : fetch لا يوجد تحويل مباشر الي صيغة json بما معناه النتيجة الراجعه لن تكوم على شكل json و عليك اولا استقبال القيمة و من ثم تحويلها فيما يخص axios فانه يستقبل القيمة و يحولها فورا اكسيوس يدعم تحديثات البراوزر اكثر من الفيتش حيث ان fetch تدعم فقط Chrome 42+, Firefox 39+, Edge 14+, and Safari 10.1 fetch تستخدم قيمة الbody اكسيوس يستخدم قيمة data ,و كما قلنا بالاعلى اكسيوس يحتوي على قيمة اوبجت اما الفيتش فسوف تحتاج الى استخدام json.stringified او json.pars لتحويل المعلومات الي الصيغة المرادة يسمح Axios بإلغاء الطلب وانتهاء مهلة الطلب اما الفيتش فلا يسمح بذلك fetch بلد ان لذلك لست بحاجة الى تنصيبها للاستخدامها اما ال axios فإنك بحاجة الى تنصيب الملف ليس من الخطأ استخدام fetch و لكن من الافضل استخدام مكتبة لها دعم اكبر في المتصفحات كما انها اكثر سهولة و مرونة
    1 نقطة
  24. يمكنك أن تستخدم واحدة فقط وعمل if conditions بداخلها useEffect(() => { if(user){ // قم بتنفيذ الكود الخاص بالمستخدم } if(authed){ //authed قم بتنفيذ الكود الخاص ب } // وهكذا }, [authed, products, searchText، activeProduct، user]);
    1 نقطة
  25. أكتب برنامج يقرأ من المستخدم عددين ومن ثم يطبع مجال الاعداد يبدأ من العدد الأول إلى العدد ثاني باتجاهين (تصاعدي وتنازلي)، علماً يجب أن لا يكون العددين متساوين. و يكون باستخدام حلقات التكرار؟؟
    1 نقطة
×
×
  • أضف...