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

محمد عاطف17

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

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

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

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

    68

كل منشورات العضو محمد عاطف17

  1. وعليكم السلام ورحمة الله وبركاته. عند تشغيل البرنامج فإن المتغيرات والبيانات التى يتم حفظها بداخل تلك المتغيرات يقوم البرنامج بحفظها في الذاكرة المؤقته في الجهاز لديك وبمجرد إغلاق البرنامج يتم مسح كافة تلك البيانات من الذاكرة المؤقته . حيث لم يتم تصميم البرامج لحفظ البيانات بتلك الطريقة . ولذلك لحفظ البيانات لديك ينبغى إستخدام قواعد البيانات لحفظها أو يمكنك حفظها في ملف لديك على الجهاز إن كان الأمر بسيط كما لديك هنا حيث يمكنك إستخدام ملف وليدعى مثلا users.txt وبداخله تقوم بحفظ البيانات . حيث حينما تريد حفظ البيانات تقوم بفتح الملف من خلال الدالة open وتقوم بالكتابة على الملف بإستخدام الدالة write هكذا مثلا : from sys import exit from time import sleep import os class User: def __init__(self, first_name, last_name, email, password, status="inactive"): self.first_name = first_name self.last_name = last_name self.email = email self.password = password self.status = status def display(self): print(f"First name: {self.first_name}") print(f"Last name: {self.last_name}") print(f"Email: {self.email}") print(f"Password: {self.password}") print(f"Status: {self.status}\n") print("_" * 20) def to_string(self): return f"{self.first_name},{self.last_name},{self.email},{self.password},{self.status}\n" def load_users(filename): users = [] if os.path.exists(filename): with open(filename, 'r') as file: lines = file.readlines() for line in lines: if line.strip(): first_name, last_name, email, password, status = line.strip().split(',') users.append(User(first_name, last_name, email, password, status)) return users def save_users(users, filename): with open(filename, 'w') as file: for user in users: file.write(user.to_string()) def create_user(): first_name = input("First name: ") last_name = input("Last name: ") email = input("Email: ") password = input("Password: ") return User(first_name, last_name, email, password) filename = 'users.txt' users = load_users(filename) while True: print("Welcome to user management\n") print("Choose an action\n") print("1. Add new user") print("2. Display all users") print("3. Exit\n") choice = input("Enter your choice: ") if choice == '1': users.append(create_user()) save_users(users, filename) print("User added successfully!\n") sleep(2) elif choice == '2': if users: for user in users: user.display() sleep(2) else: print("No users found!") sleep(2) elif choice == '3': print("Exiting...") exit(0) else: print("Invalid choice! Please select 1, 2, or 3.") حيث قمنا بحفظ البيانات في ملف يدعى users.txt ونقوم بقراءة تلك البيانات منه إذا أردنا ذلك . وبهذا حتى لو تم إغلاق البرنامج فستجد أن الملف users.txt يحتوى على البيانات ولهذا لن يتم فقد البيانات.
  2. قم بفتح الرابط في متصفح أخر . من المفترض عند الضغط على تحميل يتم توجيهك إلى صفحة تسجيل الدخول إذا لم يكن لديك حساب قم بتسجيل حساب جديد وبعد ذلك سيتم تحميل الملف معك .
  3. يمكنك الذهاب إلى الموقع الرئيسى الخاص ب oracle وتحميل نسخة ويندوز 64bit منها https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_ee يمكنك الذهاب إلى الرابط التالي وتحميل النسخة التى تريدها . كما في الصورة هذه النسخة الخاصة بويندوز 64bit لإصدار 19c . إذا كانت هذه النسخة هى ما تريد قم بالضغط على ZIP لتحميل النسخة لديك.
  4. وعليكم السلام ورحمة الله وبركاته . إن تعامل python مع البيانات وخاصة الأرقام مختلف تمام عن التعامل معها في لغة C. حيث أن python هى لغة Dynamic Type حيث يمكنك تغير نوع البيانات في وقت ال run time فإذا كنت قد عرفت المتغير ك int يمكنك تغيره إلى float أو حتى سلسلة نصية و python تسمح لك بهذا و في بايثون الأعداد الصحيحة يمكن أن تنمو بمرونة إلى أي حجم يتسع له الذاكرة المتاحة. أما لغة C هي لغة Static Type حيث لا يمكن تغير نوع المتغير بعد تعريفه فلا يمكن تغير النوع من int إلى float أو أى نوع أخر . والمشكلة التي تحدث والخاصة بظهور أرقام سالبة هي بسبب ال overflow حيث أن البيانات أكبر من حجم الذاكرة الحالية ولذلك يحدث فقدان للبيانات فتظهر أرقام غريبة . تخيل لو أن لدينا زجاجة تسع لتر واحد فقط من المياه ماذا سيحدث إذا وضعنا لترين بها ؟ بالفعل ستتسع فقط للتر واحد واللتر الأخر سوف ينسكب ويضيع وهكذا هى مشكلة ال overflow. والصورة السابقة للجدول الخاص بأنواع البيانات في لغة c و المجال الذي يتسع له كل نوع بيانات . فلاحظ النوع int يتسع من -32,768 إلى 32,767 لو كان 2 byte أي إذا تم وضع 32,768 لاحظ أنه زيادة رقم عن المجال المسموح ستحدث مشكلة ال overflow وستجد أن المتغير يحوى أرقام سالبة أو حتى صفر . لذلك في الكود الذي بلغة c يفضل إستخدام نوع بيانات كبير مثل unsigned long حيث المجال الخاص به كبير كما موضح في الجدول .
  5. إن موقع مستقل من المواقع الرائدة في العالم العربى لتوظيف و وعمل المستقلين عليه باللغة العربية حيث يمكنك البدأ منه في بداية مسيرتك لأن المنافسة فيه ليست قوية كما في المواقع العالمية التي ستجد مستقلين من جميع دول العالم لذلك المنافسة شديدة هناك. وتوجد العديد من المواقع العالمية للعمر الحر وأشهرهم هما : upwork freelancer Fiverr ولكن أخر موقعين هما مواقع إسرائيلية لذلك يفضل عدم العمل عليهم والتعامل مع upwrok حيث أنه من أفضل و أكثر المواقع شهرة للعمل الحر.
  6. إن تركك لشئ ما مدة طويلة بالطبع سينسيك الكثير حوله ولن تستطيع تذكر أشياء كثيرة بخصوص هذا . أما في البرمجة فالأمر يعتمد على ما كنت وصلت إليه سابقا . فإذا كنت قبل الإنقطاع قد ذاكرت جيدا وكانت نسبة إستيعابك للأمور كبيرة فستجد أن المراجعه سهلة بإذن الله وسريعه والطريقة الأفضل في هذه الحالة هي مراجعة التلخيصات إذا كنت قمت بهذا سابقا أما إذا لم تكتب أى تلخيصات فيمكنك مشاهدة دروس حو البرمجة سريعا أو المراجعة من المصادر التي ذاكرت منها سابقا . و يجب عليك أهم شئ أولا مراجعة الأساسيات و محاولة الإستذكار وبعد ذلك يمكنك إنشاء مشاريع صغيره بنفسك لتساعدك في المراجعة بشكل جيد و إذا كنت قد كتبت مشاريع سابقة يمكنك إعادىها دون النظر إليها إلا حين الإنتهاء من المشروع ومقارنة المشروعين وأنظر إلى طريقة كتابتك للكود سابقا وحاليا لتعرف مدى القصور لديك والأجزاء التى تحتاج مذاكرة مرة أخرى منك. أما الشعور بالضياع والتشتت فهذا أمر طبيعى جدا ولكن لا يجب عليك الإستسلام له فبعد المراجعة و التطبيق ستجد أن الأمور أصبحت أسهل و أفضل إن شاء الله فتعلم أى شئ من البداية يكون صعبا فى بادئ الأمر لهذا لا تقلق. أما بخصوص المصادر فيمكنك مشاهدة الدروس التى تريدها على اليوتيوب أو يمكنك الإشتراك في دورة دورة تطوير واجهات المستخدم هنا في الأكاديمية حيث ستساعدك لتصبح مطور واجهات مستخدم أو يمكنك قراءة الدروس والمقالات هنا في الأكاديمية أو موقع موسوعة حسوب حيث ستجد الكثير من الشروحات للدروس في العديد من لغات البرمجة : https://wiki.hsoub.com/الصفحة_الرئيسية https://academy.hsoub.com/programming/
  7. لا يوجد فرق فقط إن ال -q تقوم بمنع طباعة رسائل حقوق الملكية والإصدار ليس إلا . حيث ستجد إذا كتبت بايثون فقط ظهور نص خاص بحقوق الملكية والإصدار : أما إذا كتبت -q لن يقوم بطباعة النص السابق . ولمعرفة ما هي وظيفة و الخيارات المتاحة في بايثون يمكنك كتابة python - h . وإذا كان هذا السؤال خاص بدرس من دروس الدورة فيرجى مستقبلا وضع سؤالك أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا .
  8. المشكلة توجد في سطر 14 و سطر 22 حيث أنكي تستخدمين mysqli وليس PDO لذلك يجب وضعه القيمة بداخل الإستعلام SQL بدلا من كتابة علامة الإستفهام حيث هنا يظن أن علامة الإستفهام هي قيمة نصية وليس قيمة تريدين إستبدالها. لذلك يجب إستبدال سطر 14 بالتالي : $sql = "UPDATE studentinfomation SET username='$username', password='$password' WHERE password = '$password'"; وسطر 22 بالتالي : $sql = "SELECT * FROM studentinfomation WHERE password='$password'";
  9. يوجد عدة أخطاء في كتابة الكود . أولا في سطر 14 لا يوجد شئ يسمى $forsearch فى php يبدوا أنكي تريدين إستخدام foreach لذلك يجب إستبدال $forsearch ب foreach هكذا : foreach($_FILES['images']['tmp_name'] as $key => $tmp_name){ ثانيا في سطر 22 نسيتى كتابة علامة = لإضافة رسالة الخطأ : $errors[] = "حجم الملف كبير"; وأخيرا في سطر 31 نسيتي وضع علامة ال $ لتحديد المتغير errors : $errors[]= " ادخال فشل التحميل"; وهذا هو الكود كاملا بعد التعديل : <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "student"; $conn = new mysqli($servername , $username , $password , $dbname); if($conn->connect_error){ die("فشل الاتصال : " .$conn->connect_error); } if (isset($_FILES['images'])) { $errors = []; $uploaded_File = []; foreach($_FILES['images']['tmp_name'] as $key => $tmp_name){ $file_name = $_FILES['images']['name'][$key]; $file_tmp = $_FILES['images']['tmp_name'][$key]; $file_type = $_FILES['images']['type'][$key]; $file_size = $_FILES['images']['size'][$key]; $upload_dir = 'uploads/'; $uploaded_File = $upload_dir . basename($file_name); if ($file_size >2000000) { $errors[] = "حجم الملف كبير"; continue; } if (move_uploaded_file($file_tmp,$uploaded_File)) { $stmt = $conn->prepare("INSERT INTO imags (image1, image2) VALUES (?,?)"); $stmt->bind_param("ss",$uploaded_File); if ($stmt->execute()) { $uploaded_File[]= $uploaded_File; }else { $errors[]= " ادخال فشل التحميل"; } $stmt->close(); }else { $errors[]=" فشل التحميل"; } } if (!empty($uploaded_File)) { header("Location:confessionscreen.php"); } if (!empty($errors)) { echo" خطا".implode(",",$errors);} } $conn->close(); ?>
  10. إن بايثون تستخدم الإزاحات (Indentations) لتنظيم الكود وتحديد الهيكل والتسلسل الزمني للتعليمات ولذلك فإن أي إزاحة أو مسافة خاطئة تٌحدث خطأ في ترتيب وتسلسل الكود فتظهر مشكلة IndentationError: unexpected indent . ويبدوا من الصورة المرفقة وجود مسافات قبل print("Samer" * 2) لذلك يجب حذف اي مسافة فارغة قبل كتابة أى سطر حتى لا تحدث تلك المشكلة.
  11. g لا شكر على واجب . وبارك الله فيك أخي وجزانا وإياكم كل خير
  12. هل يمكنك إرسال الملف templates\store\product-details.html بعد التعديل الذي أجريته . وأيضا يرجى إرسال صورة للعناصر عند عمل inspect لها : وتأكد من أنها مختلفة مثل الصورة السابقة حيث كل id هو فريد لا يتكرر . وأيضا أن ال id وال for لكل عنصر متشابهان ليعمل بشكل صحيح . ولا شكر على واجب يمكنك السؤال في أي وقت
  13. مرحبا عزيزى محمود . الخطأ لديك في templates\store\product-details.html سطر رقم 85 و 86 حيث أنك تضع ال id الخاص بالعنصر input ك id="item-{{ item.sku }}" وهنا معظم ال item لها نفس ال sku فهنا ستجد أن العديد من العناصر لها نفس ال id ولذلك عند الضغط على label فإنه يبحث عن أول عنصر له ال id الخاص به ولذلك فإنه يختار العناصر في المقاس الإفتراضي . ولحل تلك المشكلة نقوم بتحديد متغير أخر له رمز فريد وهو {{ size.id }} وهو لن يتكرر مع ال item.sku لذلك يرجى تغير سطر 85 و 86 بالتالي : <input type="radio" name="item" id="item-{{ size.id }}-{{ item.sku }}" value="{{ item.sku }}" class="item-option" {% if forloop.first %}checked{% endif %}> <label for="item-{{ size.id }}-{{ item.sku }}"> <img src="{{ item.image.url }}" alt="{{ item.color }}"> </label> ولقد أرسلت لك الملف بعد التعديل . product-details.html
  14. من فضلك هل يمكنك إرسال قاعدة البيانات التي لديك حيث توجد أخطاء كثيرة بسبب قاعدة البيانات
  15. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  16. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  17. إذا كان هذا سؤال متعلق بإحدي الدورات فستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى مستقبلا طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. أما بخصوص المشكلة فهذا بسبب أن المنفذ 3000 مستخدم بالفعل حيث يبدوا أنك قد قمت بتشغيل المشروع في منفذ أوامر أخر لذلك يرجى غلقه.
  18. عموما إن لغات البرمجة والبرامج التي تستخدم في تحرير الأكواد مثل vs code وغيرها لا تستهلك مواردا كثيرة في العمل لذلك عمليا يمكنك إستخدام أي جهاز ولو كانت الرامات 4 GB. ولكن بالطبع كلما زادت الإمكانيات والرامات أمكنك تشغيل عدة برامج في نفس الوقت وستجد سرعة إستجابة في تشغيل البرامج . أما بخصوص الجهاز الخاص بك فهو جهاز جيد إلى حد ما و ، سيكون كافياً لتشغيل البرامج التي ذكرتها. Visual Studio Code: هذا البرنامج ليس ثقيلا على الموارد ولن يستهلك الكثير منها ولذلك لن تواجه أي مشاكل في تشغيله بإذن الله ولكن هذا يعتمد على كمية المشاريع التي تعمل بها في نفس الوقت والإضافات التي تستخدمها فإذا كان هناك إضافات كثيرة لديك ولافتحت أكثر من مشروع في نفس الوقت فمن الممكن أن تلاحظ بطئ أحيانا في الجهاز. لغة البايثون: يمكنك تشغيل معظم برامج Python وتطويرها بشكل مريح على هذا اللاب لذلك لا تقلق من حدوث أي مشكلة وأيضا نفس الملاحظات السابقة إذا كان المشروع كبيرا ويعتمد على مكتبات كثيرة فمن الممكن أن تجد بطئا ملحوظا . الأوتوكاد: يعتمد الأداء هنا على نوعية المشاريع التي تعمل عليها . حيث أن برنامج الأوتوكاد يتطلب مواردا كثيرة وأقل المتطلبات هي رامات 8GB والمفضل أن تكون 16 GB ويحتاج إلى كارت شاشة جيد للمساعدة في عمل Render وإظهار الرسومات. و لذلك إذا كان المشروع يعمل على رسومات معقدة أو كبيرة فقد تواجه بطئأ في أغلب الأحيان أما إذا كانت المشاريع بسيطة إلى متوسطة فغالبا لن تواجه مشاكل البطئ إلا قليلا.
  19. مرحبا بك ماجد. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى مستقبلا طرح سؤوالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. أما بخصوص ملفات المشروع فيوجد نوعين توجد ملفات إبتدائية وهي ما يجب تحميلها والعمل عليها مع المدرب لإكمال المشروع . أما الملفات النهائية فهي الملفات المكتملة للمشروع بعد إنهاءه وإنهاء المسار الخاص به . وهي تسفيدك في إختبار المشروع ومعرفة المميزات به وكيف يعمل لإختبار تطبيقه من خلاله. أما بخصوص المطلوب منك فهو لا يوجد أى شئ حاليا مطلوب سوى البدء في المذاكرة من خلال المسار الأول وهكذا كلما تنتهي من مسار وإنشاء المشاريع الخاصه به يمكنك البدء في المسار الذي يليه مباشرة و يجب البدأ أولا بمسار الأساسيات لأن هذا هو ما ستحتاجه . ويمكنك قراءة الإجابات التالية لمعرفة كيفية مذاكرة الدورة :
  20. وعليكم السلام ورحمة الله وبركاته. يمكنك تثبيت pip (مدير الحزم الخاص ببايثون) على نظامك دون الحاجة لإزالة npm (مدير الحزم ل node.js ). npm و pip يمكن أن يتواجدان على نفس النظام دون تعارض ودون حدوث أي مشاكل . ولتحميل pip كل ما عليك هو الذهاب إلى موقع بايثون الرسمي وتحميل برنامج بايثون الإصدار الذي تريده. ويجب عند التثبيت التأكد من تفعيل خيار Add to path : وهكذا ستجد أنه يوجد لديك npm و pip على نفس الجهاز
  21. يمكنك البحث في قائمة الويندوز عن environment : ومن المفترض أن تظهر معك إذا لم تظهر يمكن فتحها من مكان أخر . قم بالذهاب إلى الإعدادات ثم system ثم about بعد ذلك قم بإختيار advanced system settings : والآن سيتم فتح system proprties
  22. وعليكم السلام ورحمة الله وبركاته. نعم بالفعل ستجد في البداية الأمر صعب حين تقوم بتطبيق ما تعلمته على مشاريع كبيرة ومعقدة و أيضا حينما تحاول إستذكار الأمور و محاولة تطبيقها لذلك الأمر طبيعيا لا تقلق ويجب عليك محاولة التدريب كثيرا لإكتساب خبرة أكثر و تطوير مهاراتك. والخبرة ليست بالسنوات وليست بأعداد المشاريع بل هي تحسب فعليا بالأمور التي تستطيع تنفيذها و طريقة تنفيذها على أفضل حال . والمشاكل التي واجهتها وقمت بحلها فمن الممكن أن تعمل مشاريع كثيرة ولا تكتسب منها خبره لصغر تلك المشاريع أو عدم إستخدام الكثير من المميزات بها و لكن مشروع واحد يوازي جميع تلك المشاريع إذا كانت به العديد من المميزات و إستخدامك لأمور متقدمة به . ولكن هذا ليس نصيحة لترك المشاريع بل هي مفيدة في بداية مسارك المهني حيث يجب وضع تلك المشاريع في ال CV الخاص بك أو ال portfolio ليقوم الناس بتقيمك من خلالها . وإذا كنت تريد التوجه لمجال تعلم الآلة والذكاء الإصطناعي فإن تطوير الواجهات البرمجية لن يكون مفيدا كثيرا . يمكنك مع نفسك إنشاء مشاريع بسيطة لتدريب نفسك على حل المشكلات و كتابة الأكواد ولكن لا يفضل التعمق بها إذا لم تكن ستحتاجاها. ويمكنك التقديم على مشاريع عمل حر حينما ترى نفسك مؤهلا لذلك ونصيحة لك لا تتقدم على مشروع ترى أنك لن تستطيع إنجازه فهذا سيسبب في إعطاء تقيمات سلبية لك مما ستؤثر على حسابك و إختيار أصحاب المشاريع لك . ويفضل في مجال تعلم الآلة والذكاء الإصطناعي عموما أن تعمل في وظيفة في شركة أو حتى تدريب حاليا و ذلك حتى يكون لديك شخص يتابعك ويوجهك و أيضا سيكون لك الوصول للكثير من البيانات و الأدوات التي من الممكن أن تكلفك مبلغا كبيرا كعمل حر . و أيضا العمل الحر لن تعرف إذا كنت تسير في الإتجاه الصيح أم لا أو هل تنفيذك للأمور تم بشكل جيد أم لا لذلك كما أخبرتك يفضل أن يكون هناك من يقوم بتوجيهك ومتابعة ومراجعة عملك .
  23. في حالة عدم إجتياز الإختبار سيتم إعطاؤك ملاحظات حول ما فعلته في الإختبار وأماكن الضعف والقصور لديك لتقوم بمذاكرتها وتحسين مستواك بها . وبعد ذلك يمكنك التقدم للإختبار في وقت لاحق ويمكنك الإستفسار أيضا ليتم توضيح الأمور لك أكثر من خلال محادثة الدعم الفني الخاص بالأكاديمية من هنا.
  24. وعليكم السلام ورحمة الله وبركاته . يمكنك التواصل مع فريق الدعم الفني لإستبدال الدورة بدورة أخرى حيث الدعم الفني هو المسؤول عن ذلك. تستطيع محادثة الدعم الفني الخاص بالأكاديمية في أي وقت من هنا.
  25. نعم بالطبع يمكنك طلب تمارين حول الدرس الذي تريده في صندوق التعليقات التي أسفله وسيقوم المدربون بإعطاء تمارين إضافية لك على الدرس الذي تريده .
×
×
  • أضف...