-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
ضمن حلقة البحث عن منتج حسب رقمه، لا نطلب إدخال قيم جديدة أو 0 بل يتوجب استدعاء دالة ابحث ضمن حلقة خارجية و تمرير مدخلات المستخدم لها Scanner scan = new Scanner(); System.out.println("enter the ID number of the product you want, 0 to exit"); int ProductID = scan.nextInteger(); while(ProductID != 0) { SelectProducts(list,ProductID); // سوف تطبع نتيجة البحث // نعيد قراءة مدخلات جديدة System.out.println("enter the ID number of the product you want, 0 to exit"); ProductID = scan.nextInteger(); } وتعديل دالة البحث: مسؤولية الدالة هو التأكد من وجود منتج وحيد فقط public static void SelectProducts(ArrayList<Product> list,int productsID) { System.out.println(list.toString()); for(int i =0; i<list.size();i++) { int currentProductID= list.get(i).getproductsID(); if(productsID==currentProductID) { System.out.println("we have this product with id = " + currentProductID); return; } } System.out.println("Sorry but this product ID is wrong"); } ملاحظة: يمكن وضع منطق الشيفرة الأولى في دالة منفصلة SelectProductsByIDs public static void SelectProductsByIDs(ArrayList<Product> list,int productsID) { Scanner scan = new Scanner(); System.out.println("enter the ID number of the product you want, 0 to exit"); int ProductID = scan.nextInteger(); // ينتهي التنفيذ مع قراءة 0 while(ProductID != 0) { // البحث SelectProducts(list,ProductID); // سوف تطبع نتيجة البحث // نعيد قراءة مدخلات جديدة System.out.println("enter the ID number of the product you want, 0 to exit"); ProductID = scan.nextInteger(); } }
-
نعم صحيح، يتم ترتيب المسارات ضمن الدورة بحيث تبدأ بالأساسيات ثم تطبيقات ومشاريع. المهم أن تبدأ ب أساسيات لغة PHP ثم أساسيات إطار العمل Laravel لأن المشاريع مبنية على إطار العمل لارافل. ثم يمكنك البدء بأي مسار لأنهم مبنيين على لارافل. المشاريع متكاملة و كل منهم يستخدم ميزات و نقاط قوة لإطار العمل بشكل مختلف. أما آخر المشاريع لا علاقة لهم بإطار لارافل وهي تطوير قوالب ووردبريس و تطوير متجر إلكتروني في ووردبريس عبر ووكومرس. تتطلب أساسيات PHP
- 1 جواب
-
- 1
-
شيفرة مساعدة.. المعامل الثلاثي يختبر هل الخاصية موجودة مسبقاً؟ (قيمة الحرف)؟ فيزيدها أو يقوم بإنشاء واحدة جديدة بتكرار 1 function counter (myString) { let count = {}; // غرض لعد التكرارات for(let i=0; i<myString.length; i++){ // مرور على السلسلة let char = myString[i]; // الحرف الحالي count[char] ? count[char]++ : count[char] = 1; // المعامل الثلاثي } return count; } console.log(counter('abbccc')) => {a: 1, b: 2, c: 3} a: 1 b: 2 c: 3 [[Prototype]]: Object يمكن خلال الحلقة تبيان إن كان الحرف موجود مسبقاً نوقف الدالة و نطبع أنه مكرر.. أو نكمل للنهاية و في حال لال يوجد تكرار نطبع لا يوجد تكرار
-
سوف أشرح الموضوع بشكل خطوات، حاول تطبيقهم ضمن برنامج و جرب سلاسل نصية بسيطة للاختبار. تهيئة متغير عبارة عن سلسلة نصية تهيئة مصفوفة نستخدمها لعد تكرار الحروف نمر على السلسلة النصية بحلقة for لكل حرف من السلسة نزيد تكراره ضمن المصفوفة نختبر تكرار الحروف في المصفوفة إن كان لدينا حرف تكراره أكبر من 1 (يوجد تكرار) أو لا يوجد تكرار ونطبع النتيجة حسب طلب المسألة
-
يمكن بناء القوائم المنبثقة من خلال HTML - CSS من خلال التلاعب ببعض الخواص، وهذا شرح لشيفرة كاملة مع العلم يمكنك البحث عن dropdown menu ويوجد العديد من التصاميم.. html: حاوية للقائمة ثم زر يمكن النقر عليه يليه حاوية فيها روابط (يمكن استخدام قوائم) <div class="dropdown"> <button class="dropbtn">Dropdown</button> <div class="dropdown-content"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> </div> css: تموقع الحاوية نسبي relative تموقع القائمة التي فيها روابط مطلق absolute لنستطيع وضعها بمكان مناسب نسبة للحاوية تحكم بإظهار القائمة من خلال hover حيث تكون مخفية بالأصل display: none يتحول إلى block <style> /* تنييق الزر */ .dropbtn { background-color: #4CAF50; color: white; padding: 16px; font-size: 16px; border: none; cursor: pointer; } /* الحاوية position the dropdown content */ .dropdown { position: relative; display: inline-block; } /* Dropdown Content (Hidden by Default) محتوى القائمة*/ .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } /* الروابط ضمن القائمة dropdown */ .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } /* Change color of dropdown links on hover */ .dropdown-content a:hover {background-color: #f1f1f1} /* Show the dropdown menu on hover */ .dropdown:hover .dropdown-content { display: block; } /* Change the background color of the dropdown button when the dropdown content is shown */ .dropdown:hover .dropbtn { background-color: #3e8e41; } </style>
-
إن الاعتراف بشهادة غير متعلق بمصدرها، يوجد جامعات عالمية غير معترف بها في دول أخرى بسبب علاعلاقات بين هذه الدول، و نفس الشيء ينطبق على الشهادات.. مهما كان مصدر الشهادة تبقى مهارات حاملها هي من يحدد أفضليته عن غيره في الحصول على الوظيفة و التوظيف و العمل.. يمكنك العمل كمستقل بسهولة من أي بلد كان و على أي موقع توظيف، لكن كوظيفة ضمن حكومة اسبانيا ربما يكون لهم شروط مختلفة.. اهتم بمعرض أعمالك ولا تتوقف عن التعلم، وتطور باستمرار.
- 2 اجابة
-
- 1
-
أصبحت المشكلة في أن ليس لديك صلاحية للربط مع المستودع، والخطأ 403 يتعلق بالمصادقة. لم يعد غيت هاب يعتمد على اسم مستخدم و كلمة سر بل أصبح يعتمد نظام Token , وهي سلسلة نصية مشفرة تحمل بيانات المستخدم و تضيفها لحاسوبك ليستطيع الاتصال مع المستودع Personal Access Token للاختصار يمكن وضع ال Token مباشرة ضمن الرابط: يمكنك أن تستخدم الأمر التالي في مشروعك (تأكد أنك في مجلد المشروع الصحيح): git remote set-url origin https://<access-token>@github.com/<username>/<repo> ^^^^^^^^^^^^^^ قم بوضع الـ access token واسم المستخدم واسم المستودع أيضًا. أرجو فتح لوحة تحكم غيت هاب و تشكيل رمز جديد لك و احفظه لديك واستخدمه أخطاء HTTP 403
- 1 جواب
-
- 1
-
يمكن التحقق من احتواء الغرض window على حدث بداية اللمس على سبيل المثال، مع قراءة عدد مؤشرات النقر المتاحة (عدد الأصابع الممكن استعمالهم بنفس الوقت) var isTouch = (('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)); var isTouch = window.ontouchstart !== undefined; وفي حال استخدام جيكويري jQuery mobile if(jQuery.support.touch){ // شاشاة لمس }
-
كما تعلمت مسبقاً نتجنب استخدام نفس المعرف id لأكثر من عنصر في صفحة الويب لأنه يجب أن يكون فريد من نوعه. (هو شيء من أساسيات HTML لايعطي خطأ لكن كما مشكلتك لا يعمل بشكل سليم) يمكنك استخدام معرفين مختلفين و تمرير المعرف ضمن الدالة onchange="imageToBase64(this),image(event,'1');" , الدالة: function image (event, id) { var image = document.getElementById('product-img-' + id); // ^^^^^^^^^ image.src = URL.createObjectURL(event.target.files[0]); }; والتعديل في العناصر لتغيير المعرف id="product-img-1" id="product-img-2"
- 2 اجابة
-
- 2
-
حسب ترتيب الوسطاء في التعريف نمرر القائمة كوسيط أول ثم الاسم يتوجب تبديل البارامترات لاتعيد الدالة شيء هي فقط تطبع قيمة حسب تعريفك لها void (Product.Search (list, name
-
سوف تخضع قيمة X لاختبارين الأول يتحقق فيما انت أصغر من 100 فيجمع لها 1، ثم شرط آخر يختبر هل أصبحت (بعد التعديل المحتمل) أكبر من 50؟ فيجمع 1 مرة أخرى، في هذا السؤال تنفيذ عبارة else مرتبط بعدم تحقق الشرط الثاني حيث يتم طرح 1. if(x<100) x=x+1; if(x>50) x=x+1; else // يتم التنفيذ في حال فشل ثاني شرط x=x-1; في السؤال السابق كان ارتبطا else مع الشرط الأول لوجود أقواس المجموعة، فيتم اعتبار الشرط الثاني تابع لتحقق الشرط الأول وهذا الكود الأول if(x<100) { x=x+1; // جميع التعليمات أبناء الشرط الأول if(x>50) // يتم اختبارها في حال تحقق أول شرط x=x+1; } // يتم تنفيذها في حال فشل أول شرط else x=x-1;
- 1 جواب
-
- 1
-
يختبر البرنامج قيمة فإذا كانت X أقل من 100 سوف يجمع لها القيمة 1 ثم يوجد شرط آخر ضمن الشرط الأول، ويختبر فيه البرنامج القيمة الجديدة ل X أي بعد التعديل الأول فإن أصبحت أكبر من 50 سوف يزيد 1 أيضأ. عبارة else يرتبط تنفيذها بعدم تحقق الشرط الأول وتعمل على إنقاص قيمة X ب 1 يمكنك قراءة الشرح ثم حساب قيمة المتغير وسأعطيك الإجابة الصحيح بعد أن تقومي بتجريب الحل
- 1 جواب
-
- 1
-
يتم في دورات الأكاديمية تقديم وتدريس مشاريع للطلاب تشبه المشاريع الحقيقية و هي نفسها تعمل لعدد كبير من العملاء (يمكنهم أن يطلبوا مواقع مشابهة) مع عمل التعديلات اللازمة لتناسب رؤية صاحب المشروع، طبعا في العالم الحقيقي لديك مجال ضخم وكبير من أفكار العملاء و الزبائن ومن الطبيعي طلبهم مشاريع لم تقم ببرمجتها بنفسك من قبل لذلك عليك دوماً الإطلاع على المشاريع في مواقع العمل الحر و التدرب على أفكار جديدة فتعلم البرمجة هو عملية تراكمية و كلما ازدادت خبرتك سوف تسهل عليك برمجة المشاريع و الحصول على عدد عملاء أكبر.
- 2 اجابة
-
- 1
-
دالة البحث يوجد فيها مشكلة أنها تطبع العبارات مع تكرار، إن لم نجد المنتج ضمن القائمة نطبع أنه غير موجود لمرة واحدة (بعد الانتهاء من الحلقة) في حال وجود منتج نطبع أنه موجود و نوقف الحلقة لعدم حصول تكرار إنما يمكن تعديلها قليلاً public static void Search(ArrayList<Product> list,String productsName) { for(int i =0; i<list.size();i++) { String currentProductName = list.get(i).getproductsName(); // جلب الاسم if(productsName.equals(currentProductName)) { System.out.println("This product is available"); return; // نوقف الدالة بعد التأكد من وجود المنتج } } // طباعة أن المنتج غير موجود System.out.println("Sorry,this product is not available"); }
-
الخطأ في الشيفرة هو محاولة وراثة متعددة من صنفين JTextArea و Thread (مع استخدام الكلمة المفتاحية implement بشكل خطأ مع صنف) الحل هو وراثة JTextArea مع عمل implement للواجهة البرمجية Runnable ليصبح برنامجك public class Print2GUI extend JTextArea implement Runnable { ^^^^^^^^^^^^^^^^^^^^ public void run() { for (int b = -128; b < 128; b++) } }
- 1 جواب
-
- 1
-
طالما أنك تستخدمين الصف Thread يمكن تطبيق التابع sleep منها مع تمرير الوقت المراد انتظاره. try { Thread.sleep((long)1000); } catch (InterruptedException e) { } يتم تقدير الوقت بالميلي ثانية أي 1000 هي ثانية. وترمي استثناء من نوع Interrupted Exception في حال مقاطعة خلال الانتظار (انهاء قسري أو إيقاف البرنامج) مثلاً يوجد مسلك آخر وجد حل للمشكلة البرمجية التي كل مسلك لدينا مسؤول عن جزء من مجال الحل الخاص بها.
- 1 جواب
-
- 1
-
يوجد مكتبة بسيطة تساعد على حل المشكلة، بحيث يطلب ضغط المستخدم مرتين لإغلاق التطبيق وهي المكتبة double_back_to_close_app يمكن استخدامها بالطريقة التالية بإحاطة محتوى الصفحة بالحاوية DoubleBackToCloseApp تضمين import 'package:double_back_to_close_app/double_back_to_close_app.dart'; class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: DoubleBackToCloseApp( child: HomePage(), snackBar: const SnackBar( content: Text('انقر مرتين لإغلاق التطبيق'), ), ), ), ); } } dependencies: double_back_to_close_app: ^1.2.0
- 1 جواب
-
- 1
-
لفتح روابط الانترنت في تطبيق فلاتر يمكنك استخدام الإضافة url_launcher تضيف الإصدار المطلوب (الأحدث) ضمن ملف إعداد الحزم pubspec.yaml في dependencies dependencies: url_launcher: ^5.7.10 ثم في الملف الذي عالج نقر الزر نستدعي المكتبة import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; void main() { runApp(new Scaffold( body: new Center( child: new RaisedButton( onPressed: _launchURL, child: new Text('عرض بيانات الخصوصية من الموقع'), ), ), )); } // تابع غير متزامن _launchURL() async { const url = 'https://privacy.my_web_site.com'; // رابط وهمي لبيانات الخصوصية // اختبار أن الرابط سليم if (await canLaunch(url)) { await launch(url); // فتح الرابط في المتصفح } else { throw 'Could not launch $url'; // عرض استثناء } } وفي النسخ الجديدة من المكتبة 6 أصبح التعامل مع رابط الويب على شكل URI final Uri _url = Uri.parse('https://privacy.my_web_site.com'); void _launchUrl() async { if (!await launchUrl(_url)) throw 'Could not launch $_url'; }
- 1 جواب
-
- 1
-
يجب الدخول بصلاحيات الأدمن بالأمر sudo su ثم تكتب كلمة السر، ثم تجرب أمر تغيير المالك والصلاحيات chmod 777 ./wpwp.exe
- 1 جواب
-
- 1
-
يمكنك البدء بأي دروة تطوير تطبيقات أندرويد تم شرحها بلغة جافا، حيث أنه من المتوقع أن يقوم المدرس بشرح ما يلزمك لفهم كيفية تطوير التطبيقات. بعد تعلمك للغة جافا يمكن تحديد الخطوات التالية بشكل عريض: التعرف على مكونات الواجهات UI Components in android like textview, edittext, button, progressbar. قواعد بيانات Sqlite DB. الاتصال على الانترنت و التعامل مع API + Networking In android يمكنك الاستفادة من مقالات أكاديمية حسوب في برمجة أندرويد يمكنك البدء بالدرس: لأخذ فكرة شاملة عن موضوع التطوير