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

Wael Aljamal

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

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

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

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

    218

كل منشورات العضو Wael Aljamal

  1. إن دراسة الخوارزميات والرياضيات ليست ضرورية في البرمجة، بل تعتمد على التخصص الذي تريد دراسته و العمل به.. حيث أن تطوير مواقع الويب و تطبيقات الجوال و حتى تطبيقات سطح المكتب لا تعتمد على الخوارزميات والرياضيات، بل فقط برامج المحاسبة و تطبيقات الذكاء الصنعي و أمور متقدمة.. أي يمكنك البدء بمراجعة الأساسيات الخاصة بالمجال الذي ترغب بالعمل به ثم التوسع و عمل تطبيقات ضمنه. إبدأمن هنا:
  2. لا يجب الاعتماد على المدربين في حل كل الأسئلة والواجبات المدرسية أو الجامعية! أرجو محاولة كتابة البرنامج ومن ثم طلب المساعدة إن حدث أخطاء
  3. يمكن تعريف مصفوفة أحادية وحجز عدد مناسب للخانا لها بالطريقة التالية: int[] num = new int[100]; الحجم النمط الاسم لإسناد قيم زوجية للمصفوفة، يمكننا تخصيص متغير يتم زيادته بمقدار 2 وإسناد القيمة لكل عنصر من المصفوفة: for (int i=0, j=0; i<(num.length); i++ , j+= 2 ) { ^^^^^^ ^^^^^^^^ num[i] = j; } حاولي تطبيق فكرة إسناد عدد زوجي لعناصر المصفوفة بطريقة أخرى! مثلا استنتجي قيمة j العدد i
  4. سلسلة نصية string، لأنه في حال حددتها ك integer سيتم التخلص من الأصفار البادئة لأن ليس لها قيمة في العدد 010 = 10 أما كنص يتم حفظه كاملاً.
  5. يعتمد هذا على نوع الحقل، فإن كان رقمياً يتم الأخذ بقيمته، وإن كان سلسلة نصية يتحدد بعدد الخانات، أرجو التأكد من نوع الحقل في النموذج model الخاص بالجدول وملف التهجير.. ثم ستعمل الخاصية: size:10 كما يمكن استعمال الطرق التالية: الأسهل :: 'phone' => 'required|digits:10', أو 'phone' => 'required|regex:/(01)[0-9]{10}/' 'phone' => 'required|numeric|phone_number|size:10'
  6. إن فكرة API مختلفة عن فكرة AJAX. API: هي مجموعة دوال ضمن متحكمات تعيد لنا بيانات خام بصيغة JSON مثلاً, بدون أي تنسيقات أو HTML ويمكن الاستفادة منها في تطبيقات الهواتف المحمولة مثلا حيث تكون الواجهة عبارة عن تصميم في التطبيق حسب لغة برمجة التطبيق أي مثل قالب HTML-CSS.. فيتم حشر البيانات ضمن تصميم موجود مسبقاً وعرضه. برمجة ال API محصورة بالمخدم، أي يتم الاتصال بالمخدم عن طريق مسارات محددة وباستخدام HTTP methods محددة لنحصل على النتيجة المطلوبة. AJAX: هي طريقة تقوم بها بإرسال طلبية ومن ثم استقبال البيانات في صفحة الويب باستخدام لغة جافاسكربت، وتقوم بتحديث الصفحة أو جزء منها بدون إعادة تحميلها مجدداً. دوماً لغة المخدم هي من ترسل البيانات. معالجة المعلومات في المخدم تكون عن طريق PHP (ربما تعيد عناصر HTML أو بيانات على شكل JSON) أما في صفحة العرض في المتصفح يمكن أن تكون جافاسكربت هي من تولد عناصر HTML حسب قالب معين و تضيف عليها البيانات القادمة من المخدم الذي يرسل في هذه الحالة فقط البيانات. ******** إن لم تستعمل AJAX عليك تعبئة استمارة HTML form وله زر submit وترسل الطلبية، أما من خلال AJAX تقوم بتهئية http request وترسلها للمخدم وبعد النتيجة تحدّث الصفحة لديك.. مثال لاستعمال AJAX: ليكن لدينا صفحة HTML بسيطة: <!DOCTYPE html> <html> <body> <div id="demo"> <h2>Let AJAX change this text</h2> <button type="button" onclick="loadDoc()">Change Content</button> </div> </body> </html> وشيفرة جافاسكربت وأجاكس كالتالي: function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send(); } لاحظ أن الاتصال يتم على ملف نصي، بالطريقة GET، ولدينا الدالة التي تستقبل رد المخدم وإذا كان 200 أي وصل رد صحيح، سنقوم بحشر البيانات التي عاد بها المخدم( افتراضيا يعيد ملف نصي) وحشرها في العنصر demo لتحديث العرض مثال عن محتوى الملف: ajax_info.txt => <h1>AJAX</h1> <p>AJAX is not a programming language.</p> <p>AJAX is a technique for accessing web servers from a web page.</p> <p>AJAX stands for Asynchronous JavaScript And XML.</p> المثال الذي ذكرته يعتمد على أجاكس مباشرة باستخدام جافاسكربت، ويمكن الاستفادة من جيكويري jQuery لتسهيل العمل. مقالة من أكاديمية حسوب: توثيق حسوب: wiki.hsoub / jQuery - Ajax أسئلة و أجوبة تتعلق بالموضوع: صورة تبسط دورة حياة الطلبية: المتصفح يقوم بتجهيز الطلبية ويضيف الرابط و البيانات اللازمة، ثم ترسل للمخدم الذي يعالجا ويستجيب ويرسل الجواب للمتصفح الذي يعود و يعالج البيانات ويقوم بعمل التحديث المناسب في الصفحة.
  7. يحق لصاحب المشروع التأخر في استلام المشروع حتى يقوم بالتأكد من أن المستقل قد أنجز المطلوب، وأرسل له كل الملفات المطلوبة و أنها تعمل بصورة جيدة. بشكل عام، عليك الإنتظار قليلاً و إذا لم يفتح صاحب المشروع حسابه يُمكنك حينها التواصل مع فريق الدعم للمنصة من خلال هذا الرابط: مركز مساعدة حسوب و فتح تذكرة لمُشكلتك مع توضيحها جيداً و سيقوم الفريق حينها بحل مُشكلتك أو تنبيه صاحب المشروع للتواصل معك أو إنهاء المشروع. إن قمت بكل شيئ بشكل جيد، لاداعِ للقلق يمكن لفريق الدعم استلام المشروع عن صاحب المشروع إن حدث أي مشاكل من طرفه.
  8. هل يمكنك إرفاق شيفرات النماذج models الخاصة بكلا الجدولين؟ بشكل عام، علينا عمل join بين الجدولين (على المفتاح الأجنبيي student_id) لتكون عبارة SQL هكذا: select exams_enter_attemps from exams_enter_attemps e join student s on student_id when s.level=1 وستكون العلاقة تقريبا هكذا: DB::table("exams_enter_attemps e") ->join("student s", function($join){ $join->on("student_id", "when", "s.level"); }) ->select("exams_enter_attemps") ->get(); الشكل العام للعلاقة الخاصة بالربط JOIN: use Illuminate\Support\Facades\DB; $users = DB::table('users') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->join('orders', 'users.id', '=', 'orders.user_id') ->select('users.*', 'contacts.phone', 'orders.price') ->get(); يمكنك تصفح التوثيق من هنا: laravel 8 queries#joins
  9. أعتقد أنه من الأفضل رفع ملفات المشروع ليتسنى تجربته و إصلاح الأخطاء..
  10. يمكنك تنفيذ الأمر التالي لعرض الملفات المعدلة فقط: git ls-files -m يمكنك تصفح خصائص ls-files من هذا الرابط: git-ls-files
  11. لا يضر ابداً، هذه الإضافة تعمل على ااتبويب الذي تنقر عليها عند استعراضه فقط. أنا استخدمها منذ فترة طويلة
  12. هذه الإضافة التي وضعت رابطها تعمل على متصفح الحاسوب ويتم تثبيتها عليه ومن ثم يمكن تشغيلها وقت الطلب.. إن كنت تريد تطبيق لهواتف اندرويد، ابحث في متجر غوغل بلاي عن برنامج مضخم للصوت وجرب عدة برامج حتى يعجبك أحدها. وبالانكليزية video, sound, audio booster
  13. إن كان حجم الصور كبيراً، عليك بضغطهم لتقليل حجمهم، استخدم أي ادوات من على الانترنت.. سبب عدم تحميل الصور مع file-loader هو أن html loader من الإصدار 2 أصبح يقوم بتحميل الصور بنفسه، و بتثبيت الإثنين معا، يحصل تضارب. الحل: إما تستعمل html loader الإصدار 1.3.2 حذف محدد امتداد الصور من file loader أو حذف القاعدة الخاصة بذلك نهائياً
  14. يمكنك تحسين جودة الصوت (قوة الصوت) من خلال برامج مساعدة، مثلا إن كنت تستعمل متصفح غوغل كروم أو مايكروسوفت إيدج، يمكنك تثبيت الإضافة Ears: Bass Boost, EQ Any Audio! التي تسمح لك بتضخيم الصوت و يصبح قوياً ومسموعاً، كما يمكنك استخدام السماعات. يوجد برامج سطح مكتب و إضافات أخرى تحسن جودة التسجيل يمكنك البحث عنهم.
  15. يمكن عمل git repository على موقع github او غيره.. ورفع التحديثات عليه من الحاسوب المحلي بالطريقة العادية اي دفع التحديثات push, ثم من لوحة التحكم الخاصة بالسيرفر يمكننا في مجلد المشروع سحب التحديثات من على المستودع بعمل pull. بشكل عام يمكن لعدة حواسيب الاتصال مع مستودع git ويفضل عمل المستودع على استضافة منفصلة عن السيرفر او حاسوب المطور لكي لايتم فقدانها (مستودع github أو مثله على سبيل المثال).. أي عملية التعديل ستكون على خطوتين، تعديل المشروع المحلي وتثبيت التعديلات commit ثم دفعها للمستودع push, وفي المخدم (السيرفر) أيضا من خلال git نتصل على المستودع و نسحب التعديلات pull
  16. يوجد طريقتين للدفع ضمن أكاديمية حسوب، البطاقة الإتمانية و عن طريق paypal يمكنك ملاحظة ذلك بعد النقر على زر الشراء في أي دورة. لمزيد من المعلومات يمكنك فتح تذكرة من خلال مركز مساعدة حسوب
  17. أرجو الاطلاع على الروابط بالترتيب، سوف تأخذ فكرة جيدة جداً عن كل مايتطلبه الأمر، لبدء بتعلم Django عليك البحث عن دورة للمبتدئين، أكاديمية حسوب لاتوفر دورات لتعمل إطار العمل هذا حالياً. بالتوفيق
  18. ليتم إرسال البيات للمخدم، علينا استعمال بروتوكول http والذي يتكفل بنقل البيانات عبر الانترنت، وفي صفحة HTML يتطلب وضع عنصر form اي الاستمارة، ويتم تحديد الخاصية action والتي هي مسار ملف بايثون الذي سيستجيب للطلبية، والخاصية method والتي هي http method التي تحدد نوع الطلبية المراد إرسالها للخادم، هل هي لجلب البيانات من قاعدة البيانات أي get أو إرسال ملفات و استمارات post او حذف بيانات delete.. أي عليك الاطلاع على كل من: HTML form http protocol python request مكتبة بعد فهم الاساسيات، انتقل لتعلم إطار عمل Django وهو اشهر back end للغة بايثون
  19. هذه المراحل روتينية ويقوم فريق الدعم الفني بالتأكد من الخطوات و تفعيل الدورات على حسابك، وسيتم فتح الدورات في حسابك بأقرب وقت وقد تاخذ بعض الوقت، شكرا لصبرك.
  20. كطريقة ثانية، يمكن تقسم الشعاع vector (المصفوفة الأحادية) على طولها import numpy as np normalized_v = v / np.sqrt(np.sum(v**2)) حيث تم حساب الطول (جذر مجموع مربعات قيم الشعاع)
  21. من إصدار +NumPy 1.8 يمكن استعمال الدلة numpy.full ونملأ المصفوفة بالقيم التي تريدها مثلا np.nan: a = np.full([height, width, 9], np.nan) وفي إصدارات أقدم يمكن عمل ذلك بخطوتين، إنشاء المصفوفة ثم ملؤوها بقيمة NaN a = numpy.empty((3,3,)) # مصفوفة فارغة a[:] = numpy.nan # ملأ المصفوفة بقيم محددة >>> a array([[ NaN, NaN, NaN], [ NaN, NaN, NaN], [ NaN, NaN, NaN]]) ويمكن أيضا باستخدام عملية الضرب: np.nan * np.ones(shape=(3,2)) array([[ nan, nan], [ nan, nan], [ nan, nan]])
  22. في هذا الجزء: $_POST['field']; اسم field هو اسم حقول الإدخال في الخاصية name والتي يجب أن تكون متساوية <input name="field[]"/> <input name="field[]"/> <input name="field[]"/> <input name="field[]"/> <input name="field[]"/> المهم التطابق إن لم تعمل، أرفق مجلد المشروع كملف مضغوط، لأن نشر الكود هكذا صعب التتبع وغير منظم
  23. حسناً، أرجو إرفاق كلا الملفين لأحاول معرفة سبب المشلكة، شكرا لك
  24. لستً مضطرا لاستخدامها إن إن كنت تريد معالجة قيمة كل حقل input بشكل منفصل. قيمة الحقول مجتمعة ستكون ضمن المصفوفة field_values_Array وكل حقل سنقرأه ضمن مرور في الحلقة ة ستكون قيمته في المتغير المؤقت $value يمكنك التعامل معها كما تريد
×
×
  • أضف...