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

Chihab Hedidi

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

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

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

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

    13

كل منشورات العضو Chihab Hedidi

  1. في Python 2، كتابة class Node(object): يُشير إلى أن فئة Node ترث من فئة object، هذه الصيغة تعني أن الفئة Node تعتمد على فئة object كمفترضة لها، وهذا يعني أنها ترث جميع السمات والسلوكيات الأساسية من الفئة object. أما حاليا في Python 3، يمكنك كتابة class Node: دون ذكر object، لأنه حاليا تفترض تلقائياً الوراثة من object، لذا class Node: هي نفسها class Node(object):.
  2. تقريبا في بيثون يشير مصطلح Object إلى مفهوم الكائنات في البرمجة الشيئية و تتيح لك OOP تنظيم البرنامج وتقسيمه إلى كائنات تفاعلية تتفاعل مع بعضها البعض. الكائن (Object) في البرمجة الشيئية هو مثيل محدد لنوع معين من البيانات، يجمع بين البيانات والسلوكيات، مثلا يمكن أن تكون السيارة كائنا، ولكن لكل سيارة خصائص محددة مثل اللون والسرعة والنموذج وما إلى ذلك. في بايثون، كل شيء هو كائن، بما في ذلك الأنواع الأساسية مثل الأعداد والسلاسل والقوائم وغيرها، بالإضافة إلى الكائنات التي تم إنشاؤها بواسطة المستخدم مثل الكائنات التي تنشئها عن طريق تعريف فئات جديدة، و عند العمل مع الكائنات في بايثون، يمكنك استخدام الخصائص والأساليب التي يوفرها الكائن للقيام بالعديد من العمليات المختلفة. و هذا تطبيق بسيط للمثال الذي ذكرته: class Car: def __init__(self, model, color): self.model = model self.color = color self.speed = 0 self.engine_status = False # استخدام الكائن my_car = Car("Toyota", "Red") print("Model:", my_car.model) print("Color:", my_car.color) يمكنك إن تطلع أكثر على الكائنات و البرمجة الكائنية في بيثون من خلال هذه المقالات:
  3. هي خوارزمية وليست بنية بيانات. يتم استخدام البنيات البيانية لتخزين البيانات وتمثيل العلاقات بينها، في حين يتم استخدام الخوارزميات لتنفيذ العمليات أو الحسابات على هذه البيانات. في هذا السياق، DFS هي خوارزمية تستخدم للتنقل والبحث في الرسوم البيانية. بالنسبة لهياكل البيانات يمكنك الإطلاع عليها من هنا:
  4. نعم يمكنك تطبيق خوارزمية البحث في العمق في لغة Python بسهولة، سـأحاول كتابة مثال بسيط لتطبيق DFS : # تعريف الرسم البياني على شكل قائمة مجاورة graph = { 'A': ['B', 'C'], 'B': ['D', 'E'], 'C': ['F'], 'D': [], 'E': ['F'], 'F': [] } # تطبيق البحث في العمق def dfs(graph, start, visited=None): if visited is None: visited = set() visited.add(start) print(start) for neighbor in graph[start]: if neighbor not in visited: dfs(graph, neighbor, visited) # بدء البحث من النقطة A dfs(graph, 'A') تذكر أن البحث في العمق قد يؤدي إلى تحديد مسارات طويلة بشكل لا نهائي في الرسم البياني إذا كان هناك دورة، لذا يجب استخدام مجموعة visited لتتبع النقاط التي تم زيارتها بالفعل وتجنب الحلقات. يمكنك أن تطلع أيضا على شرح هذه الخوازرميات لتأخذ فكرة عليها بشكل أفضل من خلال هذه المقالات:
  5. من الناحية البرمجية بالطبع يمكنك استخدام خصائص Django و Laravel معا في موقع واحد أو تطبيق واحد، ولكن يجب أن تكون هناك بعض الاعتبارات التي يجب مراعاتها، حيث يجب أن يكون لديك خادم واحد يتعامل مع كلا التقنيتين، و يكون التواصل عن طريف أن تستخدم Django لإنشاء API و Laravel لاستهلاك هذه الAPI، أو العكس. لكن يجب أن تعرف أنهما مبنيان باستخدام لغات برمجة مختلفة، فكل إطار عمل له هيكله وتقاليده وطريقته الخاصة في القيام بالأمور، خلط هذين الإطارين سيؤدي إلى قاعدة بيانات معقدة للغاية وصعبة الصيانة. إذا أحترت بين إختيار أحدهما يمكنك أن تطلع على هذه المقالات لتأخذ فكرة أفضل على كليهما:
  6. بالتأكيد هناك اختلافات بين أنواع البيانات VARCHAR وTEXT، سأحاول أن أعطيك شرح لكل نوع لتفهم أكثر و أيضا الفرق بينهما: VARCHAR: يستخدم لتخزين النصوص التي يمكن أن تتغير أطوالها، ويتم تحديد الحجم الأقصى للحقل عادة بعدد الأحرف أو البايتات، و يُعرف بحجم الحقل الذي يحتوي على عدد محدد من الأحرف، وعند تعريف حقل VARCHAR يجب تحديد الحجم الأقصى لهذا الحقل. TEXT: يستخدم لتخزين النصوص الطويلة التي لا يمكن تحديد طولها بشكل دقيق مسبقا، يستخدم هذا النوع عندما تحتاج إلى تخزين نصوص كبيرة مثل المقالات أو التعليقات أو المدخلات غير المحددة الطول، فلا يتم تحديد الحجم الأقصى مسبقا لحقل TEXT، مما يعني أنه قادر على التعامل مع كميات كبيرة جدا من البيانات النصية. الفرق الرئيسي هو في الحجم والأداء، VARCHAR يستهلك مساحة محددة في قاعدة البيانات بناء على الحجم الذي تحدده، بينما يمكن أن تكون الحقول TEXT أكبر بكثير ولكنها تأخذ وقتا أطول للبحث فيها وقد تؤثر على الأداء. بالنسبة للإستخدام يمكنك استخدام VARCHAR عندما يكون لديك حد أقصى لطول النص وتريد الاستفادة من أداء أفضل، أما استخدام TEXT فيكون في حالة لديك نص متغير الطول وغير معروف الحجم مسبقا أو عندما يكون النص كبيرا جدا. و يمكنك أن تقرأ أكثر على أنواع البيانات من خلال الرابط التالي: أنواع البيانات في SQL
  7. لقد اكتسبت مهارات مهمة في مجالات متعددة و هذه الأساسيات تعتبر مدخل للعديد من المجالات، و بما أنك أصبحت قادر على حل المشاكل البرمجية يمكنك الدخول في عالم العمل الحر عبر مستقل حيث ستجد هناك العديد من أصحاب المشاريع الذين يبحثون على مستقلين، و لكن لا تتوقف عند هذا الحد، فيجب عليك إختيار أحد المجالات التي تلهمك و ترى نفسك أنك ستبدع فيها و إستمر و طور نفسك فيها أكثر ، فقد تحتاج إلى تعميق معرفتك في مجالات محددة حسب نوع الخدمات التي ترغب في تقديمها، مثلا إذا كنت ترغب في تقديم خدمات تطوير الويب، فقد تحتاج إلى تعلم تقنيات مثل HTML، CSS، JavaScript، وإطارات العمل ك React أو Angular و غيرها، ولا تنسى بناء مشاريع عملية تستخدم مهاراتك البرمجية والتقنية لتوضيح قدرتك على تقديم الخدمات وحل مشاكل محددة. بالنسبة لإختبار الشهادة إذا لم تنجح سيرشدك المدرب لأماكن القصور ويطلب منك تداركها ثم تأدية الإختبار من جديد، و لمعلومات أكثر يمكنك الإطلاع على كيفية الحصول على الشهادة من هنا.
  8. لا يوجد دالة تقوم بهذا الأمر مباشرة و لكن يمكن إستغلال الدوال الأخرى لتنفيذ هذا الأمر، فمثلا يمكنك استخدام الدالة replace فهذه الدالة تقوم بتغيير الجزء المحدد من النص بقيمة أخرى، لذا يمكنك استخدامها لإزالة المسافات من النص، و هذا مثال على كيفية استخدامها: def remove_spaces(text): return text.replace(" ", "") text = "the king is sleeping" result = remove_spaces(text) print(result) # ستطبع "thekingissleeping" يمكنك أيضا استخدام الدالة join لدمج الكلمات دون مسافات بينها بالطريقة التالية: def remove_spaces(text): return ''.join(text.split()) text = "the king is sleeping" result = remove_spaces(text) print(result) # ستطبع "thekingissleeping" هنا split تقوم بتقسيم النص إلى كلمات باستخدام المسافات كمحدد، ثم join تقوم بدمج الكلمات بدون مسافات بينها.
  9. أعلم، أنا شرحت لك المشكلة و الحل المقترح لحلها، مع هذا إذا كان لديك مشكلة في أحد المفاهيم أرجوا طرحها أسفل فيديو الدورة. بالتوفيق.
  10. المشكلة لديك تكمن في أن عرض النتيجة يكون في السطر نفسه و ليس في سطر جديد و هذا من خصائص echo و لحل هذه المشكلة يجب أن تستخدم \n و التي تعني أن تكتب النتيجة في سطر جديد و هذا ما نستخدمه تقريبا في أغلب لغات البرمجة، فيصبح الكود لديك بالشكل التالي: echo strlen($str) . "\n"; بهذه الطريقة ستضمنين أن كل نتيجة تكون في سطر منفصل، ولا يصبح لديك مشكل في قراءتها.
  11. صحيح يمكنك استخدام منصة Google Colab لتشغيل أكواد Python عبر الإنترنت دون الحاجة إلى تثبيت أي برنامج، باستخدام Google Colab، يمكنك الوصول إلى العديد من مكتبات Python الشهيرة مثل NumPy وPandas وMatplotlib وغيرها، مما يتيح لك تطبيق مختلف التقنيات والمهارات في مجال البرمجة باستخدام Python بدون الحاجة إلى تثبيته محليا على جهاز الكمبيوتر الخاص بك. و لكن أرى أنه من الأفضل تثبيت Python على الجهاز، لأنه سهل التثبيت و لا يأخذ وقت، كما أن Google Colab محدود، أي ستستعمله لفترة معينة بعدها يتوقف و يتعين عليك الدفع حتى تستخدمه مرة أخرى، و نستخدمه في العادة في المشاريع الصغيرة في مجال الذكاء الإصطناعي، أما إذا كان المشروع كبير، فيضل أن يكون الجهاز.
  12. من الأفضل مشاركة الجزء الغير مفهوم في منشور هنا على الأكاديمية حتى يستفيد الجميع من النقاش والشرح.
  13. الكود الذي نشرته يقوم بمقارنة قيمتين a و b، ويخزن القيمة الأصغر منهما في المتغير min، ثم يقوم بطباعة قيمته بالنظر إلى الشرط الموجود في الكود: if a < b : min= a else: min=b يتم فحص إذا كان قيمة a أقل من قيمة b، إذا كان الشرط صحيحا، يتم تعيين قيمة a إلى المتغير min أما إذا كان الشرط غير صحيح ، فيتم تعيين قيمة b إلى المتغير min، بالتالي القيمة التي ستتم طباعتها في النهاية هي القيمة الأصغر بين a و b. يمكنك أن تطلع على الجمل الشرطية أكثر من خلال المقالات التالية:
  14. في السابق، كان من المهم تحديد نوع الملف لأن HTML كان يدعم أنواع مختلفة من المحتوى مثل النص العادي (text) والصور والوسائط الأخرى. ومع تقدم التطورات، أصبح من غير الضروري تحديد النوع بشكل صريح في معظم الحالات، لأن معظم المتصفحات الحديثة يمكنها التعرف على نوع الملف تلقائيا. لذا، يمكن ترك "type = text/css" بسبب التوافق مع المتصفحات القديمة التي قد تحتاج إلى هذا التحديد. عموما، في HTML5، يمكن حذف "type = text/css" بسبب السياق الافتراضي للعنصر <link> والذي يفترض أن يكون نوع الملف هو "text/css" تلقائيا، و لكن قد ترغب في الاحتفاظ بها لأسباب التوافق مع المتصفحات القديمة أو لأغراض التوثيق والوضوح في الشفرة.
  15. إذا كنت قد بنيت برامج متنوعة باستخدام بايثون ولديك خبرة مسبقة في العمل معها، فمن المحتمل أن تكون قادرا على تخطي مرحلة الأساسيات بدون مشاكل كبيرة، ولكن يجب عليك التأكد من فهم مفاهيم اللغة واستخدامها بشكل جيد قبل المضي قدما، و ما أقصده هنا هو المفاهيم الأساسية لهذه اللغة أهمها الهيكل التسلسلي الذي يعنى بتنفيذ الأوامر بتسلسل محدد، الشروط والحلقات التي تستخدم للتحكم في تدفق البرنامج، الدوال والمعالجة التجريبية لتقسيم البرنامج وتصحيح الأخطاء، الهيكل البياني للبيانات مثل القوائم والقواميس والتراكيب البيانية الأخرى واستخدامها بشكل فعال، ومفاهيم البرمجة كائنية التوجه التي قد تكون ضرورية في مشاريع أكبر وتتعلق بالفئات والكائنات. إذا كنت قادرا على فهم وتطبيق هذه المفاهيم بثقة، فيمكنك المضي قدما دون الحاجة إلى إعادة دراسة الأساسيات بالكامل، و حتى نقتل الشك باليقين، أقترح عليك إعادة فيديوهات الأساسية، و لكن مع تسريع الفيديو X1.5 أو X2 و ستتذكر كل شيء. بالتوفيق في مسارك إن شاء الله.
  16. أعتقد أن هذا بسبب التحديثات التي غيرت من المكتبة يمكنك الإطلاع على الطريقة من خلال مستندات المكتبة من هذا الرابط: pytube docs
  17. نعم يمكنك ذلك عن طريق استخدام مكتبة Python المعروفة باسم pytube لهذا الغرض، و إليك خطوات بسيطة لطريقة استخدامها: from pytube import YouTube # رابط الفيديو من YouTube video_url = 'رابط_الفيديو' # تحميل الفيديو yt = YouTube(video_url) stream = yt.streams.get_highest_resolution() # اختيار أعلى دقة stream.download() # تنزيل الفيديو يرجى استبدال 'رابط_الفيديو' برابط الفيديو الذي ترغب في تنزيله من YouTube، و في الأحيان قد تواجه بعض المشكلات في التنزيل في بعض الأحيان بسبب القيود التي يفرضها YouTube على بعض محتوى الفيديو. و يمكن أن يكون هناك مكتبات أخرى توفر نفس الخدمة لأنه مثل ما نعرف أن بيثون مفتوح المصدر و المكتبات فيه كثيرة جدا، فيمكنك البحث عن الموضوع أكثر و بالتأكيد ستجد ما يناسب إحتياجاتك.
  18. لا يعتبر تعلم لغة الجافا ضروريا بالضرورة لكي تصبحي مبرمجة، ولكن يمكن أن تكون لغة الجافا إحدى الخيارات المهمة والمفيدة في مسارك المهني كمبرمجة، الجافا هي إحدى اللغات البرمجية الشهيرة والتي تستخدم على نطاق واسع في تطوير البرمجيات، وتوفر فرصا واسعة في مختلف المجالات مثل تطوير تطبيقات الويب، وتطوير تطبيقات الجوال، وتطوير البرمجيات الخاصة بأنظمة التشغيل، وغيرها. إذا كانت هناك لغة برمجة أخرى تثير اهتمامك أكثر من الجافا، فبالطبع يمكنك أن تبدأ بتعلم تلك اللغة. الأمر المهم هو فهم المبادئ الأساسية للبرمجة وتطوير المهارات البرمجية العامة التي يمكنك استخدامها في تعلم لغات برمجة متعددة. يمكنك قراءة هذه المقالات لتأخذي فكرة على البرمجة و كيف تتعلمينها:
  19. في الواقع تطوير تطبيقات بايثون يسمح لك إستخدام العديد من قواعد البيانات المختلفة و التي يمكن استخدامها في تطبيقات الويب وتطبيقات الهاتف المحمول والمشاريع الأخرى، أما بخصوص الدورة فستستخدم قواعد البيانات العلائقية و بصفة أخص ستستعمل PostgreSQL، و لا تقلق بخصوص تعلمها، لأنه قبل الشروع في تعلم flask أو django تغطي الدورة كيفية التعامل مع قواعد البيانات، و بالتالي سيمكنك تعلمها داخل الدورة. و يمكنك رؤية ذلك من خلال الإطلاع على محتوى الدورة من الرابط التالي: أو من خلال الصفحة التي تعطيك تفاصيل أكثر عن الدورة حيث ستجد الجزء المطلوب داخل قسم أساسيات إطار العمل جانغو Django بإسم التعامل مع قواعد البيانات Databases: دورة تطوير التطبيقات باستخدام لغة Python
  20. المشكلة في الcompiler الذي تستخدمه، فبعضه يكون يحتوي عليها مباشرة و البعض الأخر لا، جربت الكود و إشتغل عندي بدون مشاكل، من أجل حل المشكلة المكتبة iterator تحتوي على الدالة نفسها، يمكنك تغيير الكود بالشكل التالي ليشتغل معك بدون مشاكل: #include <iostream> #include <iterator> using namespace std; int main() { int numbers[] = { 10, 20, 3, 30, 5, 7, 40 }; int numssize = std::size(numbers); cout << numssize; return 0; }
  21. مرحبا محمود، أرجوا نشر السؤال الخاص بك أسفل الفيديو الذي تواجه فيه المشكلة في الدورة.
  22. المشكلة هي أن الدالة في تعريفها تقوم بإرجاع عدد، بينما داخلها لا توجد أي قيمة مرجعة، كما أنك تقوم بطباعة النتيجة داخلها لذا لا تحتاج على إعادة الطباعة في ال main، و الأفضل أن تقوم بتعديل الدالة لتصبح void بالشكل التالي: #include <iostream> using namespace std; void calcspecial(int num1, int num2){ if(num1 == num2){ cout << "First = Second -> "; cout << num1 << " + " << num2 << " = " << num1 + num2 << endl; } else { if(num1 > num2){ cout << "First > Second -> "; cout << num1 << " - " << num2 << " = " << num1 - num2 << endl; } if(num1 < num2){ cout << "First < Second -> "; cout << num2 << " - " << num1 << " = " << num2 - num1 << endl; } } } int main() { calcspecial(40, 40); // First = Second -> 40 + 40 = 80 calcspecial(200, 50); // First > Second -> 200 - 50 = 150 calcspecial(100, 300); // First < Second -> 300 - 100 = 200 return 0; }
  23. حلك صحيح و يمكن أن يكون بشكل أبسط باستخدام نجمة واحدة، يمكن استخدام حلقة for للتحكم في عدد النجوم التي يجب طباعتها في كل سطر. إليك طريقة أخرى باستخدام نجمة واحدة: for (let i = 4; i > 0; i--) { console.log('*'.repeat(i)); } هذا الكود يستخدم حلقة for لإنشاء أربعة أسطر، حيث يبدأ بأربعة نجوم في السطر الأول ويقلل العدد تدريجيا في كل سطر، الدالة repeat تستخدم لتكرار النجمة بناء على قيمة المتغير i. و يمكنك الإطلاع أكثر على الحلقات في جافاسكريبت من خلال المقال التالي:
  24. في Vue.js، تتوفر عدة مكتبات لترجمة النصوص المتعددة اللغات، من بينها Vue I18n و Vuetify و Vue Translate، و يعتبر Vue I18n من أشهر هذه المكتبات، حيث توفر إمكانيات فعالة لترجمة النصوص بسهولة وإدارة اللغات المتعددة. Vuetify توفر دعما مدمجا لترجمة النصوص عبر خدمة i18n، مما يجعلها خيارا مناسبا لمن يستخدم هذه المكتبة لتصميم واجهة المستخدم، أما بالنسبة لمكتبة Vue Translate، فهي مكتبة مستقلة توفر وظائف ترجمة النصوص المبنية على Vue.js. لتضمين أي من هذه المكتبات في مشروعك في Vue.js، يتطلب الأمر عادة تثبيت المكتبة المناسبة باستخدام npm أو yarn، ثم استيرادها في ملفات مشروعك، وتكوينها وفقا لاحتياجات مشروعك. ها هو مثال على كيفية استخدام مكتبة Vue I18n في تطبيق Vue.js:في الملف main.js (أو أي ملف رئيسي آخر)، يمكنك استيراد Vue و VueI18n وتكوين المكتبة كما يلي: import Vue from 'vue'; import VueI18n from 'vue-i18n'; import App from './App.vue'; Vue.use(VueI18n); const i18n = new VueI18n({ locale: 'en', // اللغة الافتراضية messages: { en: { greeting: 'Hello!' }, fr: { greeting: 'Bonjour!' }, ar: { greeting: 'مرحباً!' } } }); new Vue({ el: '#app', i18n, render: h => h(App) }); ثم، في ملف مكون Vue (مثل App.vue)، يمكنك استخدام المكونات التي تحتوي على نصوص يجب ترجمتها. على سبيل المثال: <template> <div> <h1>{{ $t('greeting') }}</h1> </div> </template> <script> export default { name: 'App', mounted() { // يمكنك تغيير اللغة في وقت التشغيل this.$i18n.locale = 'fr'; // تغيير اللغة إلى الفرنسية } } </script> هنا يتم تحديد مكتبة Vue I18n وتكوينها في الملف main.js. ثم يتم استخدام النص المترجم في مكون Vue (App.vue) باستخدام $t('greeting') حيث يتم ترجمة النص وفقا للغة المحددة في المكتبة.
  25. البرمجة بإستخدام الأودو موجود داخل دورة تطوير التطبيقات باستخدام لغة Python، بعد الدخول من خلال زر دوراتي يمكنك أن تذهب لمسار تعلم الأودو من هنا:
×
×
  • أضف...