-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
لنفترض أنه لدينا استعلام فيه العديد من الكلمات المفتاحية سيكون ترتيب التنفيذ كالتالي: تحديد الجداول وخاصة الجدول اليساري FROM LEFT TABLE تحديد علاقة الربط ON التي تخص حقول الربط تحديد نمط الربط والجدول الثانوي (يميني - يساري - كامل LEFT - RIGHT - FULL ..) تطبيق الفلترة باستخدام الشرط الخاص بعبارة WHERE عملية التجميع التي تحددها GROUP BY عملية الفلترة على المجموعات الجزئية أي تطبيق شرط HAVING تحديد الأعمدة المراد جلب قيمها وهنا ينفذ جزء SELECT تحديد الفلترة الخاصة ب DISTINCT عمل الترتيب بواسطة ORDER BY تحديد عدد الحقول المعادة مثل LIMIT - OFFSET - TOP (خطوة 7) SELECT (خطوة 8) DISTINCT (خطوة 10) <top_specification> <select_list> (خطوة 1) FROM left_table (خطوة 3) join_type JOIN right_table (خطوة 2) ON join_condition (خطوة 4) WHERE where_condition (خطوة 5) GROUP BY group_by_list (خطوة 6) HAVING having_clause (خطوة 9) ORDER BY order_by_list
- 1 جواب
-
- 2
-
تمام، الشرح: اختبار كل حالات القائمتين (فارغة أو غير فارغة + فارغة أو غير فارغة) عن طريق if else
- 7 اجابة
-
- 1
-
لنحاول التعديل: try { final pickedFileList = await _picker.pickMultiImage( maxWidth: 66, maxHeight: 66, imageQuality: 66, ); if (_imageFileList == null) { if ( pickedFileList == null) return; setState(() { _imageFileList =pickedFileList; }); } else { if (pickedFileList != null) { setState(() { _imageFileList = [..._imageFileList, ...pickedFileList].toSet().toList(); }); } // لا تغيير } } catch (e) { setState(() { _pickImageError = e; }); }
- 7 اجابة
-
- 2
-
أعتقد أن القائمة الأولى فارغة جرب التالي: setState(() { _imageFileList = [..._imageFileList, ...pickedFileList].toSet().toList(); }); ++ اختبر أن القائمة الجديدة ليست فارغة
- 7 اجابة
-
- 1
-
تريد الإضافة.. لربما اختار المستخدم نفس الصورة السابقة سوف تتكرر. سوف ندمج القائمة السابقة مع التحديد الجديد (القائمة الجديدة) بدون تكرار setState(() { _imageFileList = (_imageFileList + pickedFileList).toSet().toList(); }); الطريقة toSet تقوم بعمل مجموعة من القائمة، والمجموعة هي عناصر غير مكررة، سندمج القائمتين، ونعيد من الناتج مجموعة، ثم نحولها إلى قائمة.. الطريقة + تدمج سلسلتين في Dart 2، طريقة ثانية: final tmp = new List.from(_imageFileList)..addAll(pickedFileList); final tmp2 = tmp.toSet().toList(); setState(() { _imageFileList = tmp2; }); Dart الأقدم تستخدم addAll
- 7 اجابة
-
- 1
-
هذه إعدادت التكون (حل احتياطي) تجدها gradle build يتم بها تحديد استهداف نسخ معينة من نظام أندرويد app config مثل هذه: "مثال لايطابق ماسبق" android { compileSdkVersion 27 defaultConfig { applicationId "mlluell.eftremp" minSdkVersion 21 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } هذه ضمن أندرويد استديو من قائمة ملف File ثم القائمة المنسدلة، وأغلق صفحة الحماية لا نعمل بها. حذف الكاش (تخزين مؤقت) وإعادة التشغيل
-
إن الفترة 6 أشهر، هي المدة التي يضمن فيها الطالب استرداد أمواله في حال لم يجد عمل بعد اجنياز الامتحان. الأعمال التي تؤهلك لها الدورة: بالإضافة لسهولة تعلم أي مجال برمجي آخر أو تخصصي. استرداد الأموال: بالإضافة لمشاركات مفيدة:
- 1 جواب
-
- 1
-
استبدل النص المرسل للمستخدم في دالة send: res.send('Hello World!') ^^^^^^^^^^^^ // Thank you for your request res.send('Thank you for your request')
- 3 اجابة
-
- 2
-
لقد طرحت سؤالاً متقدماً أكثر ويتعامل مع قواعد البيانات، فأعتقد أنك تستطيع حل هذه المشكلة.. const express = require('express') // تضمين المخدم const app = express() // بناء الغرض // تحديد المنفذ const port = 4000 // استقبال الطلبيات في المسار الجذر app.get('/', (req, res) => { // إرسال رد للمستخدم res.send('Hello World!') }) // تشغيل المخدم app.listen(port, () => { // ^^^^ تحديد المنذ من المتغير console.log(`Example app listening at http://localhost:${port}`) }) // التشغيل ضمن cmd node app.js
- 3 اجابة
-
- 3
-
أهلا مجدداً، يوجد عدة أسباب لعدم عمليها، أولا حاول استبدالها بالتالي: implementation group: 'com.google.android.material', name: 'material', version: '1.1.0-alpha05' ثم علينا تحديث android sdk حيث يتطلب android-p . من مدير مهام SDK ثم في gradle.properties أضف السطر android.useAndroidX = true **** حل آخر هو في Go to >> Gradle module.app: نضيف أو نتأكد من الإصدار: implementation 'com.google.android.material:material:1.2.1' **** عند استخدام إصدار حديث من أحد المكتبات، يوجد متطلبات توافقية مع غيرهم، وهذا صعب تحقيقه بدون بعض المشاكل إن كنت تتبع دورة عليك تحديد إصدارات جميع المكتبات كما حددها المدرب. بعض القيم التي حددها أحدهم لحل المشكلة: compileSdkVersion to 'android-P' Support Libraries to '28.0.0-alpha1' include api 'com.android.support:design:28.0.0-alpha1' in the dependencies block. SDK Platform update - Android P Preview (latest) targetSdkVersion 'P' ......... ثم بعد كل تعديل كبير (مثل إصدار مكتبة أو تثبيت مكتبات أو حدف) من قائمة File اختر 'Invalidate Caches / Restart' ثم أعد بناء المشروع rebuild الخطأ البرمجي يسبب توقف عمل التطبيق مثلما ظهر ضمن المحاكي، هذا قصدي خطأ ببناء الواجهات أو بناء XML أو استثناء لم يتم الأخذ به بالحسبان.
-
اولا يطلب البرنامج من المستخدم إدخال نص، ويكتب له > مثل إشارة لمربع النص. وبعد استقبال الدخل من المستخدم، يفصل الكلامات عن طريق الفراغ، أي يحول السلسلة النصية إلى مصفوقة كل عنصر منها كلمة باستخدام التابع split. وثم يقوم بالمرور على الكلمات و يستبدل الكلمة و برمز إيموجي. عليك ان تجرب البرنامج، مثلاً أدخلت رسالة ترحيب ستظهر: Hello wael :) => Hello wael 😄 massage = input("> ") # قراءة سلسلة نصية words = massage.split(" ") # تقسم السلسلة لكلمات حسب الفراغات وتصبح مصفوفة # تهيئة قاموس يقابل كل كلمة بالتي نريد تبديلها بها emojes = { ":(" : "😞", ":)" : "😄" } output = "" # تهيئة السلسلة الناتجة for word in words : # المرور على المصفوفة # إضافة ناتج استبدال الكلمة الحالية حسب مقابلها في القاموس، وفي حال لايوجد مقابل نعيد نفس الكلمة output += emojes.get(word , word) + " " print(output) # إضافة ناتج استبدال الكلمة الحالية حسب مقابلها في القاموس، وفي حال لايوجد مقابل نعيد نفس الكلمة التابع get يأخذ مفتاح للبحث عنه ضمن القاموس، ولدينا : ( لها مقابل، فيعي الرمز التعبيري ايموجي بدالها ، وإلا يعيد نفس الكلمة
- 1 جواب
-
- 1
-
هل حاولتي النقر على ctrl + s لهفظه؟ يمكن أيضا استخدام internet download manager ومحاولة التنزيل إن ظهر أي رسائل خطأ أرجو إرفاقها، وإن كان من غير القانوني حفظ الملف لديكي أرجو عدم عمل ذلك
- 7 اجابة
-
- 1
-
إن أكاديمية حسوب لاتوفر دورات خاصة ببرمجة الألعاب, حتى تستطيع برمجة الألعاب يجب أن يتوفر لديك مهارات التفكير المنطقي و الخوارزميات وأساسيات البرمجة، فإن كنت مبتدئ أنصح بالتعلم بشكل صحيح من البداية ليكون لديك معرفة واسعة. وبشكل متقدم، برمجة الألعاب تحتاج لمهارات في الرياضيات.. إن قمت بتسجيل دورة علوم الحاسب المقدمة من أكاديمية حسوب سوف تستطيع تعلم لغة برمجة سكراتس وإنشاء ألعاب تفاعلية مع تحريك الأجسام وتغيير الخلفيات والقفز و إطلاق الرصاص من الدبابة وكلها أساسيات عالم الألعاب وغيرها من الأمور الأساسية لكي تصبح قادراً على تعلم لغة برمجة حقيقية ثم بعدها برمجة الألعاب. أنصح بهذه الدورة. مدخل إلى علوم الحاسوب أساسيات البرمجة أنظمة التشغيل ونظام لينكس قواعد البيانات إلى عالم الويب البرمجة كائنية التوجه الخوارزميات وبنى المعطيات أنماط التصميم هذه أمثلة تدرس في الدورة
- 1 جواب
-
- 2
-
ملاحظات: عندما نريد 16 بت للعدد نضع أصغر افي الجزء الأيسر للتمثيل الثنائي للعدد لنضمن عدد الخانات عملية تحويل العدد للنظام الثانئي تتمثل باستخراج باقي القسمة لهذا العدد على العدد 2 وتكرار الخطوة لناتج القسمة على 2 لنفس العدد المتمم الأحادي هو مقلوب تمثيل العدد الثنائي أي نبدل كل 0 ب 1 والعكس 1 ب 0 المتمم الثاني هو 1 + المتمم الأحادي تحويل عدد عشري لثائي: بداية الحلقة نأخذ باق القسمة على 2 للعدد ونضع القيم من اليمين لليسار نقسم العدد على 2 نكرر الحلقة مثال لتحويل الرقم 64 من عشري لثنائي من 16 خانة: 64 = 0000000001000100 المتمم الأحادي، كل بت نقلب قيمته: 64 = 0000000001000100 64 متمم = 1111111110111011 المتمم الثنائي ينتج عن المتمم الأحادي بجمع 1 64 متمم أولي = 1111111110111011 + 0000000000000001 64 متمم ثانوي = 1111111110111111 حاولي نفس الخطوات
- 1 جواب
-
- 3
-
نعم يمكن الاستعلام من قاعدتي بيانات مختلفتين، الفرق هو وضع اسم قاعدة البيانات التي ينتمي لها الجدول قبل اسمه الشكل العام: SELECT table_1.*, table_2.* FROM [Database_1].[Table_Schema].[Table_Name_1] table_1 JOIN [Database_2].[Table_Schema].[Table_Name_2] table_2 ON table_1.id = table_2.id مثال تقريبي: SELECT t1.*, t2.name -- تحديد الحقول FROM DataBase_A.table1 t1 -- تحديد الجدول الأول من قاعدة البيانات الأولى JOIN DataBase_B.table2 t2 -- تحديد الجدول الثاني من قاعدة البيانات الثانية ON t2.column2 = t1.column1; -- عمل ربط معين لاحظ أن استخدام الاسم المستعار يسهل الوصول للجداول يكون اسم قاعدة البيانات التي ينتمي لها الجدول بادئة prefix للمجال الذي ينتمي منه الجدول مثال فعلي: لنفرض لدينا قاعدة بيانات أولى فيها جدول المستخدمين، وقاعدة بيانات ثانية فيها جدول الرسائل / المحادثات فيمكنا عمل ربط وجلب رسائل أحد المستخدمين بعمل الربط بشكل عادي كالتالي: select * from DataBase_A.dbo.Users u join DataBase_B.dbo.Messages m on u.UserId = m.UserId
- 2 اجابة
-
- 2