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

Wael Aljamal

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

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

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

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

    218

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

  1. كتابة الشرط خطأ، يجب أن تكون بهذه الطريقة: كل عدد نختبره بنفسه عند إضافة القيمة لا نضع اقتباس حول num1 في الدالة text if(num1 != null && num2 != null){ $('#demo1').text(num1); $('#demo2').text(num2); } لأن num1 & num2 != null تعمل عملية bitwise and أي عملية الضرب المنطقي (يعيد 1 في حال جداء بتين متقابلين لهما قيمة 1) 0 0 1 1 operand1 0 1 0 1 operand2 ---------- 0 0 0 1 result = operand1 & operand2 أي الشرط لديك لا يمثل تحقق الشرط في حال كان كلا العديين لا يساوي null .. من موسوعة حسوب:
  2. هل SQL Server مثبت على الاستضافة؟ عادة يوجد توثيق لكيفية تنصيب البرمجيات..
  3. ضمن الواجهة، نقوم بتعريف حقل إدخال يدعى TEXT FIELD وفي Tkinter يوجد Entry widget. يمكن تعريف مثال بسيط كالتالي: from Tkinter import * root = Tk() root.title('my application') e = Entry(root) // تعريف الحقل e.pack() e.focus_set() ثم لقراء القيمة المدخلة، نستخدم الدالة get def printUserText(): global e // حتى نصل لحقل الإدخال string = e.get() // جلب النص print (string) // طباعة وفي حال أردت وضع زر للاستجابة لحدث النقر سيكون كالتالي b = Button(root,text='print my text',command=printtext) b.pack(side='bottom') // موضع الزر root.mainloop() // تشغيل
  4. يمكننا استخدام الدالة count if حيث تقوم بعمل عدّ للخلايا التي تحقق شرطاً معين وبافتراض يوجد حقل فيه العلامات (من 100) سوف نكتب شرط بالطريقة التالية =COUNTIF(C2:C6,">=60") حيث أن الوسيط الأول هو مجال الخلايا الخاصة بالعلامة، و الثاني هو الشرط حيث افترضن علامة النجاح هي 60. ثم لحساب معدل النجاح نقسم عدد الناجحين على العدد الكلي ونضرب ب 100 لتصبح نسبة مئوية =E7/D7*100 Students-Passed.xlsx
  5. هل تقصد أن قاعدة البيانات التجريبية (خلال التطوير) هي نفسها التي تحاول عمل اتصال المشروع عليها بعد رفع ملفات الموقع؟ في حال أن الموقع موجود على نفس المخدم (السيرفر) و كنت من قبل تستطيع الوصول له (remote connection)، فإن المشكلة في الاتصالات الداخلية على مستوى السيرفر localhost تأكد من فعيل local connections Start > All Programs > SQL Server 2005 > Configuration Tools > SQL Server Surface Area Configuration Click on Surface Area Configuration for Services and Connections Select the instance that is having a problem > Database Engine > Remote Connections Enable local and remote connections Restart instance ويوجد تعديل على Connection String أضف localdb (localdb)\mssqllocaldb <connectionStrings> <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; ... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  6. عادة تطبيق المهام هو امر بسيط، حيث تكوتدت القائمة عبارة عن مصفوفة أغراض وكل غرض يمثل مهمة معينة ،و المهمة لها رقم و عنوان و تفاصيل و تاريخ إنجاز و أي بيانات تريدها.. المطلوب منك لبناء تطبيق ملاحظات جافاسكربت في المتصفح هو خوارزمية البحث الخطي Linear Search تفيدك في تعديل و حذف مهكة ضمن المصفوقة بعد البحث عن المهمة التي يريد التعديل عليها المستخدم، يمكنك البدء بهذه الخوارزمية و تدعى أيضا Brute Force.
  7. يتوجب وضع المسار المطلق absolute path للملف المراد التعامل معه، يمكنك نسخ كامل مسار الملف input file من خصائصه أو من مستعرض الملفات. و نضع المسار الكامل مع اسم الملف في دالة open مكان استخدامك لاسم الملف
  8. إن Java Swing هي المكتبة الرسومية الأقدم في مجال تصميم واجهات البرامج في لغة جافا، وتملك خزينة من المكونات أكثر أي المكتبة البرمجية الخاصة بها أكبر وتحوي الكثير من العناصر و UI components، بينما JavaFX هي الأحدث و تحوي مكونات أيضا و تدعم MVC وهي أقرب ل internet application وتفيد في المحمولية Portapility أي قابلة للعمل على أنظمة تشغيل أكثر و بتوافق أفضل، كما تدعم CSS و animation وأكثر حداثة. JavaFX هي الأفضل. يوجد عدة مقالات تعلم استخدام JavaFX ضمن الأكاديمية:
  9. التعليمة البرمجية DELETE تنفذ استعلام حذف على الجدول ويمكن تمرير شرط كما في الاستعلام في مثالك حيث يحذف المستخدم رقم 1، ويمكن من خلالها حذف سجل أو أكثر مرة واحدة حسب السجلات التي تحقق الشرط. مثل حذف مجموعة المستخدمين الذين رقمهم أصغر من 10: WHERE id < 10; أما تعليمة DROP تقوم بهدم الجدول وحذف كل محتوياته دفعة واحدة، و الشرط IF EXISTS موجود لتجنب حدوث خطأ وتوقف البرنامج في حال كان الجدول محذوف من قبل. موسوعة حسوب: الحذف من جدول SQL
  10. حاولي مشاركة الشيفرة البرمجية التي جربتي بها لنساعدك
  11. في الدالة لديك تقوم برسم خط مستقيم، باستخدام مكتبة PDFBox يمكن عمله كالتالي: // الخط PDFont font = PDType1Font.HELVETICA; float fontSize = 14; float fontHeight = fontSize; // تعريف المستند PDDocument doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); // تعريف سياق الكتابة على الملف PDPageContentStream contentStream = new PDPageContentStream(doc, page); contentStream.setFont(font, fontSize); // قيم إحداثيات الخط المستقيم float startY = page.getCropBox().getUpperRightY() - 30; float endY = page.getCropBox().getUpperRightY() + 30; float startX = page.getCropBox().getLowerLeftX() + 30; float endX = page.getCropBox().getUpperRightX() - 30; // رسم الخط contentStream.moveTo(startX, yCordinate); contentStream.lineTo(endX, yCordinate); contentStream.stroke(); // إغلاق القناة و حفظ الملف contentStream.close(); doc.save("Line.pdf"); ويمكن استخدام دوال لرسم مستطيل و غيره من الأشكال، لايتوفر التوثيق الرسمي للمكتبة على العديد من الشروحات للأسف حاول استخدام المكتبة pdfbox-graphics2d حيث تساعد على عمل رسومات ثنائية البعد بالاعتماد على pdfBox
  12. هذا السؤال مجاب عليه من قبل:
  13. الخوارزميات هي طرق حل للمشكلات بطريقة فعالة، تستخدم في البرمجة عن طريق كتابة أكواد تحاكي عمل الخوارزمية، لن تحتاج للخوارزميات خلال العمل ولا تجعلها عائقاً أماك، ويوجد العديد من المصادر لتعمل الخوارزمية أو البحث في الانترنت لتطبيقها، أي عليك فقط فهم عام للمنطق المطلوب.
  14. حسنا، لن يختلف الأمر كثيراً أقدم نفس النصيحة، يوجد مسار أساسيات PHP يشرح كل ما تحتاجه للبدء في الدورة.
  15. أهلا بك أيوب، هل تقصد أنك اشتركت في دورة تطوير واجهات المستخدم؟ هذه الدورة تركز على تصميم مواقع الويب وجعلها متوافقة مع الشاشات بجمع أحجامها Responsive Design باستخدام أدوات حديثة و المستخدمة في سوق العمل، وبنفس الوقت تصميم صفحات الويب لا يحتاج لمهارات برمجية أو خوارزميات أو تفكير منطقي عالي المستوى، حتى أن HTML - CSS ليست لغات برمجة بل توصيف لما تريد من المستعرض أن يعرضه. على كل حال إن أردت البدء بأساسيات البرمجة و التفكير المنطقي و دراسة بعض الخوارزميات و التطبيق عليهم يمكنك الانضمام لدورة علوم الحاسب و التركيز على الأساسيات التي ذكرتها أنت و قلت أنت قلق من عدم إتقانها، ثم بعدها عد إلى دورة تطوير الواجهات و ستلاحظ أنها سهلة. يمكنك التواصل مع (مركز المساعدة) لتبديل الدورة أو يمكنك شراء الدورة الأخرى أرجو عدم الخوف و القلق والبدء بالتعلم. بالتوفيق
  16. يمكننا بناء دالة تجلب عدد المنتجات المباع ضمن مجال من الوقت، طبعا يمكنك استدعاء الدالة عدة مرات، وفي كل مرة تمرر لها مجال مختلف public function itemsInHour($builder, $from, $to) { return $builder ->withCount(['transactions' => function ($transaction) use ($from, $to) { $transaction ->whereDate('created_at', '>', $from) ->whereDate('created_at', '<', $to); }]) // ->orderBy('transactions_count', 'desc'); } حيث أن: builder: باني الاستعلام transactions: جدول المناقلات أو المشتريات from تاريخ بدء البحث to تاريخ انتهاء البحث كما يمكن كالتالي: بمساعدة حزمة Carbon لجلب مشتريات آخر يوم تجميع و ترتيب بتعليمات SQL use Carbon\Carbon; $productsByDay = transactions::where('created_at', '>=', Carbon::now()->subDays(1)) ^^^^^^^^^^^^^^ يوم واحد ->groupBy('date') // تجميع حسب التاريخ ->orderBy('date', 'DESC') ->get([ DB::raw('DATE(created_at) as date'), DB::raw('COUNT(*) as "products"') ])->pluck('products','date')->toArray();
  17. المصفوفة العادية هي كائن برمجي يحوي عدد ثابت من العناصر ويتم تحديد عدد العناصر عن كتابة البرنامج بقيمة ثابتة (أو ضمن متغير)، فمن المساوئ الناتجة هي: حجز عدد عناصر أكبر من اللازم مما يؤدي لحجز ذاكرة بشكل غير ضروري حجز عدد أقل من اللازم وهنا لا يمكن تخزين العناصر الأخرى Vector هو صنف يسمح بتعريف مصفوفات ديناميكية الحجم أي تحوي عدد متغير من العناصر، أي عند التهيئة يمكن إنشاء مصفوفة Vector بطول 0 ثم إضافة العناصر إليها حسب الطلب، أو حتى إضافة عناصر لمصفوفة Vector قد تم إنشائها مسبقاً باستخدام التابع ADD، نلاحظ أن عدد العناصر غير ثابت، ويمكن حذف العناصر بالتابع remove والحصول على قيمة عنصر من التابع get يمكن الحصول على مثال من السؤال:
  18. عند عمل أي برنامج حاسوبي يمكن أن يعترضه بعض الأخطاء البرمجية (خطأ كتابة في الشيفرات) أو أخطاء منطقية (خطأ في جلب قيمة من مصفوفة باستعمال دليل أكبر من حجم المصفوفة أو قسمة على 0) وغيرها الفئات التي تم وضعها في السؤال: Checked Exception: يعتبر خطأ برمجي يحدث أثناء ترجمة البرنامج وقبل تشغيله مثل تخزين نص في متغير من نوع رقمي java.lang.String cannot be converted to int Unchecked Exception: تعني خطأ منطقي يحدث أثناء تشغيل البرنامج مثل الوصول للعنصر رقم 10 من مصفوفة فيها 5 عناصر java.lang.ArrayIndexOutOfBoundsException: 10 Error: وهو خطأ يحدث بسبب الجهاز الذي نشغل البرنامج عليه مثل عدم وجود ذاكرة كافية JVM is out of Memory
  19. يستخدم المبرمجون الكتلة البرمجية ضمن finally عندما يريدون تنفيذ شيفرة برمجية بعد نهاية قسم try catch بغض النظر عما حصل في البرنامج من استثناء أو لم يحصل شيء.. مثلا نقوم بإغلاق اتصال SQL فيها أو إغلاق قنوات الاتصال مع الملفات .. finally { try { if (fis != null) fis.close(); } catch (IOException ex) { ex.printStackTrace(); } } حتي يمكن وضع استثناءات ضمن FINALLY أو نقوم بعمل تنظيف clean up مثل حذف الأغراض البرمجية وماشابه
  20. يتم التخاطب بين برامج الحاسوب التي تعمل على الشبكة عن طريق المنافذ ports لتقوم بتباديل البيانات حيث أن المنفذ الافتراضي لقواعد بيانات MySQL هو 3306 يمكن معرفة المنفذ المستعمل لديك إما بتصفح بيانات إعداد MySQL أي الملف my.ini الخاص بالتهيئة ويكون المنفذ مكتوباً ضمنه default_authentication_plugin=mysql_native_password port =3306 [client] port =3306 socket = /tmp/mysql.sock [mysqld] default_authentication_plugin=mysql_native_password port =3306 أو تنفيذ استعلام بسيط كالتالي: show variables where variable_name in ('hostname','port'); ويمكن من مدير الأوامر cmd أو terminal تسجيل الدخول mysql -u root ثم نكتب الأمر mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
  21. إن Statement هي عبارة SQL التي سوف تنفذ فعليا في قاعدة البيانات، أما PreparedStatement هي عبارة عن الشكل العام للاستعلام بدون الوسطاء/القيم الممررة ضمن الاستعلام حيث تمرر القيم لاحقا بعد التأكد من خلوها من الأكواد البرمجية الخبيثة أي نتجنب حشر أكواد SQL ضمن الاستعلام فنحمي بذلك قاعدة البيانات. تلك المشكلة تدعى SQL injection أي حقن تعليمات SQL مع البيانات المدخلة للاستعلام تسبب في مشاكل مثل التعديلات ع البيانات أو تسريبها أو حذفها أو إعطاء صلاحيات للمستخدمين بدون تخويل (مثل في حالة أن جدول المستخدمين فيه صلاحيات لهم، فعند عمل تعديل بالدور لأحد الحقول يمكن أن يصبح مستخدم ما له صلاحيات مسؤول) كيف نمنع الحقن، يتم التخلص من بعض المحارف مثل ' بوضع محرف الهروب قبلها \ فتصبح تعامل مثل نص عادي ترسل PreparedStatement لقاعدة البيانات ليتم التهيئة لهذا الاستعلام أي عمل pre compile PreparedStatement تحجز موارد الذاكرة بشكل أكبر بقليل حتى تستقبل المدخلات وينتهي التنفيذ ما الذي يمكن أن يكتب المهاجم في المثال المرفق لديك؟ لاحظي SELECT * FROM employee WHERE id = ? ? => 123 or 1 = 1 ^^^ أي رقم في حال تم تمرير أي رقم ليتم الشرط عشوائي ثم تمرير شرط محقق دوماً سيعيد الاستعلام جميع معلومات المستخدمين حيث 1 = 1 محقق دوماً
  22. يمكنك استخدام مكتبة جافا التي تتيح لك التعامل مع ملفات PDF ومن هذه المكتبات يوجد pdfbox يمكنك تحميلها من الموقع الرسمي لهم، ثم تضمينها في مشروعك، وبعدها عليك قراءة التوثيق لكيفية التعامل معها لإنتاج ملف PDF وتحويل مخرجات تطبيقك عن طريقها للملف PFD الخاص بك مثال بسيط import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; public class Document_Creation { public static void main (String args[]) throws IOException { //إنشاء غرض برمجي للتعامل مع الملف PDDocument document = new PDDocument(); //حلف الوثيقة ي مسار معين document.save("C:/PdfBox_Examples/my_doc.pdf"); System.out.println("PDF created"); //Closing the document document.close(); } } يوجد بعض الأغراض البرمجية الهامة في المكتبة // تمثل الملف بالكامل PDDocument document = new PDDocument(); // تمثل صفحة واحدة PDPage my_page = new PDPage(); // إضافة الصفحة لملف الوثيقة document.addPage(my_page);
  23. الأقواس الدائرية تمثل مجموعة محارف () النقطة تمثل ظهور أي محرف (رقم أو حرف) \ تمثل محرف هروب escape أي أن الرمز الذي سيأتي بعده سيتم أخذه كما هو بدون معناه ضمن السياق مثل + * ؟ في حال وجود \ أماها ستعامل كمحارف الأقواس المجعدة {min,max} تحدد مجال لتكرار النمط الذي يسبقها 1\ يدعى backreference سيقوم بربط التعبير الذي قبله بالذي بعده مما يضمن تكرار الجزء الأول محد أدنى 3 مرات في مثالك أعتقد أن الحل السليم سيكون بهذه الطريقة re.search("(.)\1{4,}",password) re.search سيبحث عن النمط إن كان مكررا في كلمة السر أم لا، هنا نريد التحقق من 4 أيضاً إن أعاد البحث True هذا يعني أن هنالك تكرار
×
×
  • أضف...