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

Mustafa Suleiman

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

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

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

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

    365

كل منشورات العضو Mustafa Suleiman

  1. المسألة التي تحاول حلها هي String to Integer (atoi) والمطلوب هو: تحويل سلسلة نصية تحتوي على رقم إلى عدد صحيح، والهدف هو تحويل السلسلة إلى عدد صحيح، مع التعامل مع الحالات الخاصة مثل الفراغات في بداية السلسلة، والرموز غير الرقمية، وحدود التمثيل الصحيح. أي تحتاج إلى كتابة دالة تقوم بتحويل سلسلة نصية إلى عدد صحيح، والسلسلة يمكن أن تحتوي على فراغات في بدايتها، وقد تكون متباينة إذا كانت الأرقام إيجابية أو سلبية، وقد تحتوي السلسلة على أحرف غير رقمية وبالتالي يجب تجاهلها، وإذا تجاوزت القيمة المحسوبة حدود التمثيل الصحيح، يجب أن تُرجع INT_MAX (أكبر قيمة ممكنة للعدد الصحيح) أو INT_MIN (أصغر قيمة ممكنة للعدد الصحيح) حسب الحاجة. مثال: Input: str = " -42" Output: -42 Input: str = "4193 with words" Output: 4193 Input: str = "words and 987" Output: 0 Input: str = "-91283472332" Output: -2147483648 (INT_MIN) عليك تجاهل الفراغات في بداية السلسلة، وإذا كانت السلسلة فارغة أو لا يمكن تحويلها إلى عدد صحيح صالح، يجب أن تعيد الدالة قيمة 0. ولعلك تتسائل لماذا النتيجة هنا هي 0؟ Input: str = "words and 987" Output: 0 والسبب أن السلسلة "words and 987" تبدأ بكلمات (words) وليس برقم مباشر، وفي المسألة، يُطلب منك تحويل سلسلة تحتوي على رقم، وإذا كانت السلسلة لا تبدأ برقم، يجب عليك إرجاع 0.
  2. في حال أنك تستخدمين AsyncStorage فتستطيعي حذف التوكين من خلال التالي: await AsyncStorage.removeItem('accessToken'); نفذي التعليمة السابقة عند بداية التشغيل لمرة واحدة فقط وسيتم حذف التوكين ثم تعليق السطر لمنع حذف التوكين. وأظن أنها نفس المشكلة هنا في الدورة:
  3. حاول أولاً تثبيت مكتبة Wheel كالتالي: pip install wheel ثم حاول من جديد، وإن استمرت المشكلة حاول تثبيت مكتبة gensim من جديد وأيضًا تثبيت مكتبة pillow. وإن استمرت المشكلة حاول تجربة: pip install --use-pep517
  4. من الخطأ يظهر أنك بحاجة إلى تثبيت Microsoft Visual C++ 14.0 قم بتحميل وتثبيت التالي https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false بعد ذلك قم بتشغيل الملف ثم اختر Desktop development with C++ ثم اختر منها MSVC و Windows 11 SDK أو windows 10 حسب إصدار الويندوز لديك كالتالي: ثم اضغط على insatall وسيتم تحميل قرابة 6 جيجابايت لذلك عليك الإنتظار.
  5. من المحتمل أن يكون الخطأ الذي تواجهه بسبب عدم توافق الإصدار الأقدم من Gensim (3.8.3) مع الإصدار الأحدث من NumPy المثبت على نظامك، حيث تشير رسالة الخطأ تحديدًا إلى AttributeError: 'dict' object has no attribute '__NUMPY_SETUP__'، مما يعني أن Gensim تحاول الوصول إلى سمة غير موجودة في الإصدار الأحدث من NumPy. حاول تثبيت إصدار أقدم من NumPy متوافق مع Gensim 3.8.3 كالتالي: pip install numpy==1.19.5
  6. ستتوجه إلى Device Manager من خلال البحث عن ذلك في شريط البحث بالأسفل: بعد ذلك ستجد Display adapters اضغط على ذلك وستظهر لك كروت الشاشة لديك، اضغط على الكرت الخارجي لديك بزر الفأرة الأيمن ثم اختر disable device كالتالي:
  7. الإشتراك في الأكاديمية يتم بعملة الدولار، وحاليًا في مصر هناك تقييد على الدفع بالدولار، لذلك الحد الأقصى للدفع هو 250 دولار شهريًا، من خلال بطاقات الإئتمان Credit Cards فقط لذلك أنت بحاجة إلى فتح حساب واستخراج بطاقة Credit. والطريقة الأخرى هى الدفع من خلال وسيط مقابل نسبة، بحيث ترسل له المبلغ عن طريق فودافون كاش أو انستاباي وسيقوم هو بالإشتراك لك، وإذا أردت يمكنني إرسال حساب وسيط لك يمكنك التعامل معه لكي لا تتعرض للنصب.
  8. أعتقد أن المقصود هو جدول هو "EmailSenderReceiver" ونستخدم الأمر التالي لإنشاؤه: CREATE TABLE EmailSenderReceiver ( emailID INT NOT NULL AUTO_INCREMENT, senderID INT NOT NULL, receiverID INT NOT NULL, subject VARCHAR(255) NOT NULL, body TEXT NOT NULL, sentDate DATETIME NOT NULL, PRIMARY KEY (emailID), FOREIGN KEY (senderID) REFERENCES Users (userID), FOREIGN KEY (receiverID) REFERENCES Users (userID) ); ,الأمر سينشئ جدولًا يسمى "EmailSenderReciver" بستة أعمدة: emailID: رقم تعريف البريد الإلكتروني senderID: رقم تعريف المرسل receiverID: رقم تعريف المستلم subject: موضوع البريد الإلكتروني body: نص البريد الإلكتروني sentDate: تاريخ إرسال البريد الإلكتروني يحدد المفتاح الأساسي للجدول أن كل صف يجب أن يحتوي على قيمة فريدة لـ emailID. يحدد المفتاح الخارجي لـ senderID أن senderID يجب أن يكون قيمة موجودة في جدول UsersK ,يحدد المفتاح الخارجي لـ receiverID أن receiverID يجب أن يكون قيمة موجودة في جدول Users.
  9. الكود يعمل بشكل سليم فأنت تقوم بتمرير مصفوفة واستخدام ميثود join عليها ولا مشكلة في ذلك، يمكنك تجاهل تلك الرسالة أو تجربة كتابة الكود كالتالي: const addTwoNumbers = function(l1 = [], l2 = []) { const num1 = BigInt(l1.reverse().join('')) || 0n; const num2 = BigInt(l2.reverse().join('')) || 0n; const sum = num1 + num2; return Array.from(String(sum), Number).reverse(); }; console.log(addTwoNumbers([9, 9, 9, 9, 9, 9, 9], [9, 9, 9, 9]));
  10. يتم التحقق من رمز CSRF بشكل ضمني أثناء معالجة الطلب على الخادم، والعملية تحدث تلقائيًا ولا تتطلب تدخلك إلا إذا قررت تعطيل التحقق من رمز CSRF. والتحقق يحدث عن طريق المقارنة بين القيمة المرسلة في حقل الرمز CSRF في الطلب والقيمة المتوقعة المخزنة في جلسة المستخدم، مما يضمن أن الشخص الذي يقوم بإرسال الطلب هو نفسه الشخص الذي استلم الصفحة الأولى وحصل على الرمز CSRF. وإن لم يكن هناك تطابق بين القيمتين، سيتم رفض الطلب ويتم إثارة استثناء CSRFTokenError، وهناك استثناءات في بعض الحالات، مثل عدم وجود جلسة متصلة، ولكن عمومًا، التحقق الرمز CSRF جزءًا أساسيًا من إجراءات الأمان في Django. وتستطيع أيضًا التحكم في كيفية تنفيذ التحقق من رمز CSRF في Django من خلال تكوين إعدادات CSRF_USE_SESSIONS و CSRF_COOKIE_SECURE و CSRF_COOKIE_AGE وغيرها في ملف settings.py. ومتاح لك إعطاء أوامر معينة للخادم باستخدام middleware، مثلاً لإضافة حقل جديد إلى كل طلب أو لإعادة توجيه كل طلب إلى عنوان URL مختلف، كالتالي: from django.middleware.csrf import CsrfViewMiddleware class MyAppMiddleware(CsrfViewMiddleware): def process_request(self, request): # Do something before the request is processed return super().process_request(request) def process_response(self, request, response): # Do something after the request is processed return super().process_response(request, response) و يقوم middleware بإضافة حقل CSRF token إلى كل طلب يتطلب المصادقة. يقوم الوسيط أيضًا بإجراء بعض الإجراءات الأخرى قبل وبعد معالجة الطلب.
  11. الرسالة لديك تخبرك أنه يوجد مستودع بالفعل في ذلك الموجود وتم إعادة إنشاؤه، حيث يتم إنشاء مجلد .git بشكل مخفي، عليك الضغط على التالي لإظهاره:
  12. تستطيع استخدام أداة pyenv-win للتنقل بين إصدارات بايثون كما يحلو لك، والأمر بسيط: أولاً قم بحذف إصدار بايثون الذي لديك من خلال لوحة التحكم Control panel ثم programs and features. بعد ذلك قم بتشغيل منفذ الأوامر PowerShell كمسؤول run as administrator ثم الصق الأمر التالي: Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1" الآن قم بإعادى تشغيل منفذ الأوامر ونفذ الأمر التالي للتأكد من عملية التثبيت: pyenv --version ولتثبيت نسخة معينة من بايثون نقوم بالتالي: pyenv install 3.8.0 الآن لتفعيل تلك النسخة بشكل عالمي نقوم بالتالي: pyenv global 3.8.0 والجدير بالذكر أنه يمكنك تفعيل نسخة خاصة بمشروع معين أي يمكنك تثبيت إصدار 3.8.0 وتفعيله بشكل local محلي لمشروع معين من خلال تنفيذ الأمر التالي في مسار مجلد المشروع لديك: pyenv local 3.8.0 وستجد شرح أكثر هنا: https://github.com/pyenv-win/pyenv-win#installation
  13. نستخدم slugs بالعربي بنفس الطريقة التي تستخدم بها بالإنجليزية. 1- تعريف SlugField في موديل: from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() slug = models.SlugField(unique=True) 2- توليد الـ Slug: عندما تقوم بإنشاء مقالة جديدة، نستخدم مكتبة Django slugify لتوليد الـ slug بناءً على عنوان المقالة باللغة العربية، وعليك تثبيت المكتبة إذا لم تكن مثبتة بالفعل: pip install django-utils-six ثم، في مكان ما في مشروعك، يمكنك استخدام slugify كما يلي: from django.utils.text import slugify article = Article.objects.create(title="عنوان المقالة", content="محتوى المقالة") article.slug = slugify(article.title) article.save() 3- استخدام الـ Slug في العنوان URL: استخدم قيمة الـ slug لبناء عناوين URL كالتالي: urlpatterns = [ path('articles/<slug:article_slug>/', views.article_detail, name='article_detail'), ] وعند زيارة عنوان URL /articles/عنوان-المقالة/، سيتم توجيه المستخدم إلى عرض تفاصيل المقالة.
  14. تلك الخوارزمية ليست متاحة للجميع، وهي خاصة بشركات الإتصالات، وعامًة الخوارزميات التي يمكن الإعتماد عليها ستجدها مذكورة في التعليق بالأعلى، ومن الممكن فك تشفير أرقام كروت الشحن، ولكن ليس من السهل القيام بذلك. وتعتمد صعوبة فك تشفير أرقام الشحن على الخوارزميات المستخدمة في عملية توليدها، وإن كانت الخوارزميات المستخدمة قوية، فستكون عملية فك التشفير أكثر صعوبة. لكن المشكلة أن تلك الأرقام عشوائية ولا تتبع نمط معين، والخوارزمية تمنع تكرار نفس الرقم لكن الأرقام نفسها عشوائية، لذلك قد تصيب في بعض الأحيان في الحصول على رقم ولكن أحيانًا كثيرة لن تصيب.
  15. السؤال يتمحور حول تنفيذ استعلامات باستخدام قاعدة بيانات Access لتحقيق الوظائف المطلوبة، وتستطيع تنفيذ ذلك من خلال لغة SQL (Structured Query Language). ولكن الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، ولكن يمكن إرشادك للخطوات: أ) عرض صندوق الوارد لمستخدم (أحد أعضاء المجموعة): استخدم استعلام SELECT لاسترجاع البيانات من جدول الرسائل (Emails). استخدم الشرط (WHERE) لتحديد الرسائل التي تم إرسالها إلى المستخدم المعني أو إلى مجموعاته. قم بفرز النتائج بترتيب تنازلي حسب تاريخ البريد (EmailDate). ب) عرض جميع الرسائل البريدية التي تم إرسالها بواسطة مستخدم (أحد أعضاء المجموعة) مرتبة حسب تاريخ البريد: استخدم استعلام SELECT لاسترجاع البيانات من جدول الرسائل (Emails). استخدم الشرط (WHERE) لتحديد الرسائل التي تم إرسالها من قبل المستخدم المعني. قم بفرز النتائج بترتيب تصاعدي حسب تاريخ البريد (EmailDate). ج) عرض جميع الرسائل البريدية في مجموعة مستخدم: استخدم استعلام SELECT لاسترجاع البيانات من جدول الرسائل (Emails). استخدم الشرط (WHERE) لتحديد الرسائل التي تنتمي إلى المجموعة المعنية. د) إضافة مستخدم إلى مجموعة: استخدم استعلام INSERT INTO لإدراج بيانات جديدة في جدول يرتبط بالمستخدمين والمجموعات (على سبيل المثال، جدول GroupMembers). قم بتحديد معرف المستخدم ومعرف المجموعة الذين تريد إضافة المستخدم إليهم. https://wiki.hsoub.com/SQL
  16. في البداية مجال البرمجة ليس بالسهل وإلا تعلمه الجميع، فهو بحاجة إلى بذل مجهود والصبر لفترة ليست بالقصيرة بحد أدنى 4 أشهر وتصل إلى سنة حسب ظروف كل شخص والمجال الذي يتعلمه. وعامًة كبداية أنصحك بتعلم مجال الويب وأٌقصد الواجهة الأمامية، حيث سيتعين عليك تعلم HTML, CSS, JS ثم تعلم React أو Vue.js لتصبح مطور واجهة أمامية. وإذا أردت أن تصبح مطور PHP فعليك تعلم PHP ولارافل ووردبريس، والأمر يعتمد على ما إذا كنت تريد العمل بشركة أو تريد العمل على مواقع العمل الحر، والوقت المتاح لديك أيضًا. أيضًا لديك مجال الـ DevOps حيث يوجد عليه طلب حاليًا وتعلمه ليس بالصعب ولا يتم الإشارة إلى تعلمه كثيرًا رغم أنه من أسهل المجالات للدخول في سوق العمل الخاص بالبرمجة.
  17. ما هي اللغات التي تعلمتها وتريد التطبيق عليها؟ عامًة ستجد نصائح هنا وإرشادات للتطبيق على ما تعلمته وفي حال كان لديك سؤال أخبرني:
  18. نستخدم الدالة isalpha() لفحص ما إذا كان الحرف الأول من الباسورد حرفًا أم لا على النحو التالي: def convert_first_letter_to_capital(password): if password[0].isalpha(): return password[0].upper() + password[1:] else: return password read = open(R"C:\Users\Hass\desktop\txt.txt","r") re = read.read() for i in range(len(re)): try: r = re.split('\n') r1 = r[i].split(':') password = r1[1] password = convert_first_letter_to_capital(password) print(str(r1[0]) + ":" + password,"aafs") except Exception as ex: print(ex) continue وإليك مثال آخر باستخدام الدالة replace(): def convert_first_letter_to_capital(password): if password[0].isalpha(): return password.replace(password[0], password[0].upper()) else: return password read = open(R"C:\Users\Hass\desktop\txt.txt","r") re = read.read() for i in range(len(re)): try: r = re.split('\n') r1 = r[i].split(':') password = r1[1] password = convert_first_letter_to_capital(password) print(str(r1[0]) + ":" + password,"aafs") except Exception as ex: print(ex) continue
  19. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر ولكن يمكن إرشادك للخطوات: ستجد في موسوعة حسوب شرح للخورازميات المذكورة: https://wiki.hsoub.com/Algorithms ستجد في الرابط السابق الخاص بموسوعة حسوب أمثلة عملية من خلال لغات مختلفة يمكنك تفقدها وفهم الفكرة وكتابتها باللغة التي تريدها.
  20. في تلك الحالة من الأفضل تعلم GIT وGitHub من خلال التالي:
  21. هل قمت بعمل أي commits؟ أي قمت بالتالي: git add . ثم git commit -m "initial commit" ثم git push origin main وفي حال استمرار المشكلة أرجو تنفيذ الأمر التالي ثم إرفاق صورة: git branch -b
  22. أولاً SPSS هو برنامج إحصائي يستخدم لتحليل البيانات وإجراء التجارب الإحصائية، لكنك لم توضح ما الذي ترغب بفعله أو لديك مشكلة به، وعامًة إليك بعض النصائح الأساسية حول كيفية استخدام SPSS: اعتد على واجهة المستخدم في SPSS من أجل الوصول السريع إلى الأوامر والأدوات المختلفة. قم بإدخال البيانات في SPSS، من خلال استيراد البيانات من ملفات Excel أو نصية، أو إدخال البيانات يدويًا. اختر النوع المناسب من التحليل الإحصائي لبياناتك، بإجراء تحليلات مثل التحليل الوصفي، التحليل العاملي، واختبارات التباين (ANOVA)، والعديد من التحليلات الأخرى. استخدم أدوات SPSS لإنشاء الرسوم البيانية اللازمة لتصوير البيانات بشكل فعال. بمجرد الحصول على النتائج، تعلم كيفية تفسيرها بشكل صحيح، وSPSS يولد العديد من الإخراجات، ويجب عليك فهمها لاتخاذ القرارات الصحيحة.
  23. بإمكانك تعطيل ذلك التحذير مؤقتًا باستخدام تعليق eslint-disable-next-line فوق السطر الذي يولد التحذير، كالتالي: useEffect(() => { // eslint-disable-next-line react-hooks/exhaustive-deps // الكود الخاص بك هنا }, []); أو إنشاء ملف باسم .eslintrc في مجلد المشروع ثم وضع التالي به: { "plugins": ["react"], "rules": { "react-hooks/exhaustive-deps": [ "error", { "additionalHooks": ["useEffect"], "dependency-array-exclusions": ["[]"] } ] } } حيث تستخدم خاصية dependency-array-exclusions في ESLint لتستثني بعض المصفوفات من التحقق، وتستطيع استخدام تلك الخاصية لاستثناء المصفوفة الفارغة من التحقق، بحيث لا يصدر ESLint أي تنبيهات. وإن لم يعمل حاول تجربة الإعداد التالي: { "rules": { "react-hooks/exhaustive-deps": "off" } }
  24. يجب تحويل الإدخالات (name و number و choose) إلى أنواع بيانات مناسبة للمقارنة، وذلك باستخدام int() لتحويل الإدخالات إلى أعداد صحيحة. وضع الإدخالات داخل الحلقة لتكرار تنفيذ البرنامج. استخدام int() لتحويل choose إلى رقم صحيح للمقارنة في الشروط. ليصبح الكود كالتالي: entry_member = [["Amal", 1111111111], ["Mohammed", 2222222222], ["Khadijah", 3333333333], ["Abdullah", 4444444444], ["Rawan", 5555555555], ["Faisal", 6666666666], ["Layla", 7777777777] ] while True: print("Welcome to our phonebook !!! \n" "1 = To Add an entry\n" "2 = To Delete an entry\n" "3 = To Edit an entry\n" "4 = To View all entries") choose = int(input("Enter your choice: ")) if choose == 1: name = input("Enter a name: ") number = input("Enter a phone number: ") if len(number) != 10: print('Invalid phone number, please enter a 10 digit number') else: entry_member.append([name, number]) elif choose == 2: print("What is the entry you want to delete ?") name = input("Enter a name: ") number = input("Enter a phone number: ") for item in entry_member: if item[0] == name and item[1] == number: entry_member.remove(item) elif choose == 3: print("What is the entry you want to edit ?") name = input("Enter a name: ") number = input("Enter a phone number: ") for item in entry_member: if item[0] == name and item[1] == number: entry_member[entry_member.index(item)] = [name, number] elif choose == 4: for item in entry_member: print(f"Name: {item[0]}, Phone: {item[1]}")
  25. نعم تلك تصاميم فقط لتقوم بتحويلها إلى مشروع أي استلهام فكرة التطبيق والتصميم، وإذا أردت رؤية مشروع كامل يمكنك البحث في GitHub، أو رؤية شروحات على يوتيوب لمشاريع كاملة.
×
×
  • أضف...