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

Mustafa Suleiman

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

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

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

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

    302

أجوبة بواسطة Mustafa Suleiman

  1. لا يوجد دليل رسمي بخصوص ذلك، لكن حاول تجربة فتح الملف عن طريق الضغط على File بالأعلى ثم إختيار import ومنها اختر import to stage وإذا لم يفلح الأمر فعليك باستيراد الفيديو وليس ملف aep.

    حيث ستجد في قائمة import خيار باسم import video، وستظهر لك نافذة بخصوص الخيارات التي تريدها لاستيراد الفيديو وتستطيع البحث عن Importing and working with video - Adobe Animate CC وستجد فيديوهات تشرح لك الأمر.

    لكن ما هو مدعوم ومتاح وستجد له شروحات كثيرة، هو استيراد ملف adobe animate في برنامج After Effects من خلال قائمة File اضغط على Import ثم خيار file واختر ملف adobe animate الذي تريده.

    وتستطيع البحث عن Adobe Animate to After Effects Workflow وستجد شرح لذلك.

     

  2. عليك بالتوجه إلى الرابط التالي وتسجيل الدخول إذا طلب منك ذلك:

    https://accounts.hsoub.com/settings?service=11

    ثم ستجد الاسم واسم العائلة، قم بتغييره للاسم الذي تريده، وبالأسفل اضغط على حفظ التعديلات.

    2023-05-07_16-55-42.thumb.png.75cc18431c0724ee0cb559650d4bb1da.png

    وستجد أنه تم تعديل  الاسم هنا، وإذا لم يتم ذلك، قم بتسجيل الخروج ثم إعادة تسجيل الدخول.

  3. أرجو منك التعليق أسفل فيديو الدرس في المرة القادمة.

    المشكلة الخاصة بك يتم حلها من خلال وضع عرض أكبر من 13% لعناصر div داخل .h مثلاُ ثم قم بوضع 400px كعرض لها وأيضًا وضع margin لها بقيمة 20px لوضع مسافة بينها عندما تتراص بشكل رأسي.

    ولاحظ أن العرض يجب أن يكون قيمة وليس نسبة فعند وضعه كنسبة لن تتراص العناصر فوق بعضها وستتقلص لأنها تأخذ نسبة من مساحة الأب وتتقلص على أساسه.

    ولكن أنت قمت بكتابة الكثير من الأكواد التي لا يوجد داعي لها ولا مشكلة في ذلك طالما الكود يعمل في البداية، وبإمكانك تحسين الكود من خلال كتابته بالشكل التالي:

    HTML

       <section class="boxes">
          <div>1</div>
          <div>2</div>
          <div>3</div>
        </section>

    CSS

    .boxes {
      display: flex;
      flex-wrap: wrap;
    }
    
    .boxes div {
      background-color: bisque;
      width: 400px;
      margin: 20px;
      font-size: 40px;
    }

     

    • أعجبني 1
  4. بتاريخ 11 ساعة قال Ebrahim Abdo2:

     

    لدي سوال هل استعمال  كود ارسال الى الوتس باي طريقة يعمل ام فقط في حالات محددة 

    طالما أنك تستخدم HTML وجافاسكريبت فسيعمل الكود، أو عليك تعديل الكود ليعمل باللغة التي تستخدمها، فمثلاً لو أردت استخدامه في مشروع Django فعليك بتعديل الكود بالشكل التالي:

    <!DOCTYPE html>
    <html>
    <head>
      <title>شراء المنتج</title>
      <script src="{% static 'js/checkout.js' %}"></script>
    </head>
    <body>
      <div>
        <img src="{% static 'images/صورة_المنتج.jpg' %}" alt="صورة المنتج">
        <p>وصف المنتج</p>
        <button id="checkoutButton">شراء المنتج</button>
      </div>
      <div id="checkoutForm" style="display: none;">
        <h2>تأكيد الشراء</h2>
        <form id="purchaseForm" action="{% url 'purchase' %}" method="post">
          {% csrf_token %}
          <label for="name">الاسم:</label>
          <input type="text" id="name" name="name" required><br><br>
            <label for="address">العنوان:</label>
      <input type="text" id="address" name="address" required><br><br>
    
      <label for="phone">رقم التليفون:</label>
      <input type="text" id="phone" name="phone" required><br><br>
    
      <input type="submit" value="تأكيد الشراء">
    </form>
      </div>
      <script>
        document.getElementById('checkoutButton').addEventListener('click', function() {
          document.getElementById('checkoutForm').style.display = 'block';
        });
    
        document.getElementById('purchaseForm').addEventListener('submit', function(event) {
          event.preventDefault();
    
          const name = document.getElementById('name').value;
          const address = document.getElementById('address').value;
          const phone = document.getElementById('phone').value;
          const productLink = window.location.href;
    
          const message = "اسم المنتج: " + productLink + "%0A" +
                          "الاسم: " + name + "%0A" +
                          "العنوان: " + address + "%0A" +
                          "رقم التليفون: " + phone;
    
          const whatsappURL = "https://wa.me/رقم_الواتساب?text=" + encodeURIComponent(message);
          window.open(whatsappURL);
    
          // قد يكون من الأفضل إرسال طلب الشراء إلى الخادم هنا بدلاً من فتح نافذة واتساب مباشرة.
          // يمكن استخدام مكتبة AJAX أو fetch API لإرسال البيانات إلى عنوان URL لمشاهدة Django.
        });
      </script>
    </body>
    </html>

     

  5. لا يوجد طريقة أفضل من كتابة الكود وبناء المشاريع عند تعلم البرمجة، فمهما شاهدت من شروحات وقرأت دروس ومقالات لن تحقق الكثير سوى أنك تمتلك معلومات فقط، ولكنها ليس منظمة وليست لها فائدة إلا من خلال التطبيق العملي لزيادة مهاراتك وتثبيت المعلومات.

    وتستطيع رؤية تصاميم كاملة من خلال المواقع التي تم ذكرها في النقاشات التالية:

    وإذا كان الأمر صعب عليك بخصوص تنفيذ تصميم كامل، فتستطيع تصميم مكون واحد فقط كقسم من الصفحة ثم تنفيذ مكون آخر حتى تنتهي من الصفحة، ثم تحاول ربط المكونات ببعضها.

    أو استمر في إنشاء المكونات أو التصاميم الصغيرة ثم بعد فترة قم بإنشاء تصميم كامل مكون من أكثر من صفحة.

    • أعجبني 1
    • شكرًا 1
  6. ما تريده تستطيع تنفيذه باستخدام HTML و جافاسكريبت بالشكل التالي:

    <!DOCTYPE html>
    <html>
    <head>
      <title>شراء المنتج</title>
    </head>
    <body>
      <div>
        <img src="صورة_المنتج.jpg" alt="صورة المنتج">
        <p>وصف المنتج</p>
        <button onclick="redirectToCheckout()">شراء المنتج</button>
      </div>
    
      <div id="checkoutForm" style="display: none;">
        <h2>تأكيد الشراء</h2>
        <form onsubmit="sendWhatsAppMessage(event)">
          <label for="name">الاسم:</label>
          <input type="text" id="name" required><br><br>
    
          <label for="address">العنوان:</label>
          <input type="text" id="address" required><br><br>
    
          <label for="phone">رقم التليفون:</label>
          <input type="text" id="phone" required><br><br>
    
          <input type="submit" value="تأكيد الشراء">
        </form>
      </div>
    
      <script>
        function redirectToCheckout() {
          document.getElementById('checkoutForm').style.display = 'block';
        }
    
        function sendWhatsAppMessage(event) {
          event.preventDefault();
    
          const name = document.getElementById('name').value;
          const address = document.getElementById('address').value;
          const phone = document.getElementById('phone').value;
          const productLink = window.location.href;
    
          const message = "اسم المنتج: " + productLink + "%0A" +
                        "الاسم: " + name + "%0A" +
                        "العنوان: " + address + "%0A" +
                        "رقم التليفون: " + phone;
    
          const whatsappURL = "https://wa.me/رقم_الواتساب?text=" + encodeURIComponent(message);
          window.open(whatsappURL);
        }
      </script>
    </body>
    </html>

    وعليك باستبدال "صورة_المنتج.jpg" بمسار صحيح لصورة المنتج الخاصة بك، واستبدال "رقم_الواتساب" برقم واتساب حقيقي لحسابك.

    ووظيفية الكود هي إنشاء قسم يحتوي على صورة المنتج ووصفه، ثم زر "شراء المنتج"، وعند النقر على الزر، يتم عرض نموذج التحقق من الشراء،  وبمجرد ملء النموذج والنقر على زر "تأكيد الشراء"، يتم فتح نافذة واتساب جديدة تحتوي على رابط المنتج  والبيانات التي تم إدخالها في نموذج التحقق.

    حيث ستظهر البيانات في صيغة نصية، تحتوي على اسم المنتج، الاسم، العنوان، ورقم التليفون، وسيتم إرسالها إلى الرقم الذي قمت بتعيينه لحساب الواتساب الخاص بك.

    • أعجبني 1
    • شكرًا 1
  7. تحتاج إلى استخدام مكتبة خارجية أو برنامج مساعد يمكنك من تشغيل الملفات الصوتية، حيث أن لغة التجميع تعتبر لغة منخفضة المستوى وتركز بشكل أساسي على التحكم المباشر في وحدات المعالجة المركزية ومكونات النظام، وليست مصممة بشكل مباشر للتعامل مع الملفات الصوتية.

    فإذا كنت مهتمًا بتشغيل ملف موسيقى في برنامج بلغة التجميع، عليك بالبحث عن مكتبات خارجية تقوم بتنفيذ هذه المهمة وتوفير وظائف للتلاعب بالملفات الصوتية، وتعتمد الطريقة الدقيقة على نظام التشغيل الذي تستخدمه ونوع المعالج.

    والخطوات العامة هي البحث عن مكتبات تدعم تنسيقات الملفات الصوتية المختلفة مثل MP3 أو WAV.

    أيضًا تستطيع استخدام واجهات برمجة التطبيقات (APIs) المتاحة في بعض أنظمة التشغيل لتشغيل الملفات الصوتية من خلال برنامج بلغة التجميع، وهي الطريقة الأسهل، حيث يمكنك استدعاء واجهة برمجة التطبيقات المناسبة من برنامج التجميع الخاص بك.

    ومع ذلك، يجب أن تلاحظ أن استخدام لغة التجميع لتشغيل ملفات موسيقى أمرًا معقدًا ويتطلب خبرة متقدمة في لغة التجميع وهياكل البيانات وتنسيقات الملفات الصوتية.، ومن الأفضل استخدام لغة برمجة أعلى مستوى مثل C أو C++ أو Python لتنفيذ هذه المهمة، حيث تتوفر بهذه اللغات مكتبات جاهزة.

    • شكرًا 1
  8. قمت بتنفيذ الفكرة التي تريدها في الكود التالي  لإنشاء <section> تحتوي على <div> وأربعة عناصر <div> داخليّة بأحجام متساوية، وسيتم تراصها فوق بعضها عند تصغير الصفحة:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8" />
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Document</title>
      <style>
        * {
          padding: 0;
          margin: 0;
          box-sizing: border-box;
        }
    
        section {
          width: 100%;
          height: 100vh;
          display: flex;
          justify-content: center;
          align-items: center;
          background-color: lightgray;
        }
    
        .container {
          display: flex;
          flex-wrap: wrap;
          justify-content: center;
          align-items: center;
          width: 80%;
          height: 80%;
        }
    
        .box {
          width: 45%;
          height: 45%;
          background-color: tomato;
          margin: 2.5%;
        }
    
        @media (max-width: 768px) {
          .box {
            width: 90%;
            height: 30%;
          }
        }
      </style>
    </head>
    <body>
      <section>
        <div class="container">
          <div class="box"></div>
          <div class="box"></div>
          <div class="box"></div>
          <div class="box"></div>
        </div>
      </section>
    </body>
    </html>

    عند تصغير الشاشة إلى حجم أقل من 768 بكسل، سيتم ضبط أحجام العناصر الداخلية لتتناسب مع الشاشة الصغيرة وتظهر بشكل مناسب.

    أي أن المشكلة لديك كانت في تحديد العرض بنسبة 13% لعناصر div داخل عنصر <div class="h"> وبالتالي أنت بحاجة إلى تغيير العرض من خلال ميديا كويري كما فعلت في الكود.

    أرجو أنك تكون قد فهمت الفكرة، وإذا ما زال هناك أمور غير واضحة لك بالنسبة للتصميم المتجاوب فعليك بقراءة المقالات التالية بعناية:

     

  9. بالطبع عزيزي فسنك مناسب جدًا لتعلم البرمجة، وبإمكانك أن تصبح أفضل من المحترفين الحاليين إذا ما اجتهدت وإلتزمت بمسار تعليمي.

    ولكن عليك بالتأني وعدم الاستعجال فسنك ما زال صغيرًا والطريق طويلة أمامك، فاستفد من تلك الميزة بتعلم الأساسيات جيدًا سواء من خلال بايثون أو C++.

    وبإمكانك تعلم أساسيات البرمجة من خلال دورة علوم الحاسب في أكاديمية حسوب، أو أي مصدر تريده، المهم هو الإلتزام بمسار تعليمي حتى لو لم يكن الأفضل طالما أنك تفهم الشرح وتستطيع التطبيق.

    والشهادة والسيرة الذاتية لن تفيدك الآن، فحاليًا تستطيع تعلم البرمجة وبناء المشاريع ثم العمل على مواقع العمل الحر مثل خمسات ومستقل، ولكن يجب قراءة مقالات عن كيفية التعامل مع العملاء بشكل إحترافي.

    وعند بلوغك السن القانوني تستطيع العمل في شركات ووقتها ستستفيد بالشهادات والسيرة الذاتية بلا شك، لكن مجال البرمجة يعتمد على المهارة والإحترافية لا الشهادة وتجميع الكورسات.

    لذلك تحلى بالصبر ولا تتسرع وبعد تعلم الأساسيات قم بإختيار مجال البرمجة الذي تريده وأنصحك بمجال الويب كبداية، ثم قم ببناء المشاريع مرة مع الشرح أو المدرب ومرة بمفردك.

    وقد تم النقاش من قبل حول سؤال مماثل لسؤالك، أرجو منك قراءة النقاشات والمصادر التالية:

    دليل خدمة العملاء: كيف تقدم خدمة احترافية لعملائك؟

  10. في GitHub، تُستخدم تعابير "master" و "main" للإشارة إلى الفرع الافتراضي الرئيسي لمستودع Git.

    والفرق بينهما هو فقط في الاسم وليس في الوظيفة أو الأداء.

    فقديمًا، كان اسم الفرع الافتراضي في GitHub هو "master"، وهذا الاسم استُخدم للإشارة إلى الفرع الرئيسي الذي يحتوي على النسخة الرئيسية من المشروع. ومع ذلك، بدأت GitHub في اعتماد مصطلح "main" بدلاً من "master" بسبب القلق المتزايد حول المصطلح "master" وتأثيره اللاحق على العنصرية والتمييز العنصري.

    لذا، لجعل GitHub أكثر شمولًا ومتعدد الثقافات، قامت GitHub بتغيير اسم الفرع الافتراضي من "master" إلى "main". ومع ذلك، لا يزال بإمكان المستخدمين استخدام اسم "master" إذا كانوا يفضلون ذلك.

    أي أن استخدام "master" أو "main" في GitHub يعتبر مسألة تفضيل شخصي، ولا يؤثر ذلك على أداء مستودع Git أو إمكانياته.

    ولتحويل اسم الفرع الافتراضي في مستودع Git من "master" إلى "main" أو العكس، يمكنك اتباع الخطوات التالية:

    1. قم بفتح مستودع Git الذي ترغب في تغيير اسم الفرع الافتراضي فيه على GitHub.
    2. انتقل إلى صفحة الإعدادات (Settings) للمستودع.
    3. ابحث عن قسم يسمى "Branches" أو "Default Branch"، وسيعرض الفرع الافتراضي الحالي (مثل "master" أو "main").
    4. انقر على الزر أو الرابط المرتبط بتغيير الفرع الافتراضي.
    5. ستظهر لك قائمة تحتوي على الفروع المتاحة في المستودع، حدد الفرع الجديد الذي ترغب في جعله الافتراضي (مثل "master" أو "main").
    6. قد يُطلب منك تأكيد التغيير وإدخال كلمة مرورك.
    7. بعد التأكيد، ستتم عملية تحويل الفرع الافتراضي، وسيتم استخدام الفرع الجديد في المستقبل.

    يرجى ملاحظة أن تحويل اسم الفرع الافتراضي على GitHub لا يؤثر على تاريخ أو تاريخ الالتزامات الموجودة في المستودع، وهو مجرد تغيير في الاسم المستخدم للفرع الافتراضي.

    • أعجبني 1
  11. السجلات التي تظهر في إخراج البرنامج هي رسائل تنبيه ومعلومات تقنية من إطار العمل EclipseLink (المستخدم كإطار مستعار JPA) المستخدم في تطبيقك، وتقدم بعض المعلومات حول تكوين الكائنات المستمرة (persistent entities) والعلاقات بينها.

    وعليكي البحث عن رسائل خطأ أو استثناءات محددة في سجل الأخطاء الخاص بالتطبيق، فتلك الرسائل التي تظهر في إخراج البرنامج ليست ذات صلة مباشرة بقاعدة البيانات ولا توضح أي مشكلة محددة في الاتصال ب MySQL.

    لذا، يرجى توضيح المشكلة التي تواجهها مع قاعدة البيانات MySQL وتقديم المزيد من التفاصيل أو رسائل الخطأ إذا كانت متاحة. 

  12. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، ولكن إليك خطوات الحل:

    يجب تعريف نموذج للعميل يحتوي على المعلومات اللازمة مثل الاسم، رقم الحساب، الرصيد الحالي، إلخ.

    1. تعريف نموذجين منفصلين للحساب الشخصي والحساب الشركة، كل واحد يحتوي على الحقول الخاصة به.
    2. إنشاء قاعدة بيانات لتخزين معلومات العملاء، وتستطيع استخدام قاعدة بيانات SQL أو أي نظام تخزين آخر يدعم العمليات الأساسية مثل الإدخال والاستعلام والتحديث والحذف.
    3. كتابة برنامج باستخدام لغة C# لتنفيذ العمليات المطلوبة، واستخدام أنواع البيانات والهياكل التحكم المناسبة لتنفيذ العمليات المختلفة.
    4. تنفيذ العمليات الأساسية مثل السحب، الإيداع، عرض رصيد العميل، حذف العميل، وفقًا للطلبات المحددة.
    5. يتم استخدام عمليات قاعدة البيانات لإضافة وتحديث واستعلام البيانات الخاصة بالعملاء.
    6.  تمديد النموذج والبرنامج لدعم تعريف نوعين مختلفين من العملاء، ويمكن إضافة حقول إضافية للنموذج للعملاء الشركة وتعديل البرنامج ليتعامل مع هذه الحالة بشكل صحيح.

    بعد اتباع هذه الخطوات، سيتمكن البرنامج من تنفيذ العمليات الأساسية التالية ضمن البنك:

    • السماح للمستخدم بإدخال مبلغ يرغب في سحبه من حسابه، ثم يقوم البرنامج بتحديث رصيد الحساب وتخزين التغيير في قاعدة البيانات.
    • يستطيع للمستخدم بإدخال مبلغ يرغب في إيداعه في حسابه، ثم يقوم البرنامج بتحديث رصيد الحساب وتخزين التغيير في قاعدة البيانات.
    • السماح للمستخدم بإدخال رقم حساب العميل، ثم يقوم البرنامج بجلب معلومات العميل من قاعدة البيانات وعرض رصيده الحالي.
    • إمكانية إدخال رقم حساب العميل الذي يرغب في حذفه، ثم يقوم البرنامج بحذف معلومات العميل من قاعدة البيانات.

    وإذا أردت توضيح بخصوص الخطوات السابقة أخبرني.

     

  13. يمكنك مساعدتك بخطوات الحل لكونه سؤال إختباري:

    1.  استخدمي import لاستيراد المكتبات التي ستستخدمها في البرنامج، مثل smtplib لإرسال البريد الإلكتروني وrandom لإنشاء كود عشوائي للطالب.
    2.  بتعريف المتغيرات التي ستحتوي على معلومات البريد الإلكتروني مثل البريد الإلكتروني وكلمة المرور ومعلومات الخادم البريدي.
    3. إنكتابة دالة تستخدم المكتبة random لإنشاء كود عشوائي يتم إرساله إلى الطالب، وقد يكون هذا الكود مكونًا من أحرف وأرقام عشوائية.
    4. كتابة دالة تستخدم المكتبة smtplib لإرسال البريد الإلكتروني، تستطيعي استخدام معلومات البريد الإلكتروني وكلمة المرور ومعلومات الخادم البريدي المعرفة مسبقًا لإرسال رسالة بريد إلكتروني تحتوي على الكود العشوائي إلى الطالب.
    5. كتابة رمز لقراءة معلومات الطالب مثل الاسم والبريد الإلكتروني وغيرها، وقومي بتخزينها في المتغيرات المناسبة.
    6. استدعِ الدالة التي تنشئ الكود العشوائي واستدعِ الدالة التي ترسل البريد الإلكتروني بمعلومات الطالب.
    7. إدراج تعليمات للتحقق من نجاح إرسال البريد الإلكتروني، باستخدام معلومات الرد التي توفرها مكتبة smtplib للتحقق من أن البريد الإلكتروني تم إرساله بنجاح، عورض رسالة تأكيد إذا تم إرسال البريد الإلكتروني بنجاح، أو رسالة خطأ إذا حدثت مشكلة أثناء الإرسال.

    8. تنسيق رسالة البريد الإلكتروني بشكل مناسب، يمكن أن تحتوي على التحية وتوضيح للطالب بأنه تم إنشاء إيميل رسمي له ويحتوي على الكود العشوائي، وتستطيعي استخدام تنسيق السلاسل في بايثون (مثل format()) لإدراج متغيرات الطالب في رسالة البريد الإلكتروني.

    9. اختبار البرنامج عن طريق إدخال معلومات طالب والتأكد من أن البريد الإلكتروني يتم إرساله بنجاح ويحتوي على الكود العشوائي.

     

  14. المطلوب هو تصميم موقع بسيط من خلال HTML و CSS و جافاسكريبت، وطالما أنه سؤال إختباري فعليك بالإجتهاد في تنفيذه، وتستطيعي طرح الأسئلة هنا لأي مشكلة تواجهك أثناء تنفيذ المشروع.

    وأنصحك بقراءة المقالات التالية فهي ستمكنك من تنفيذ المشروع في حال قمتي بدراستها:

     

  15. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، ولكن يمكن مساعدتك بخطوات الحل:

    خطوات الحل لكل سؤال بشكل عام هي:

    1. قبل بدء كتابة الخوارزمية ورسم خريطة التدفق، يجب أن تفهمي المشكلة جيدًا وما المطلوب من البرنامج.
    2.  يجب معرفة المدخلات التي ستتلقاها الخوارزمية والمخرجات التي يجب أن تقوم الخوارزمية بإنتاجها.
    3.  استنادًا إلى فهمك للمشكلة ومتطلبات المدخلات والمخرجات، عليك بتصميم خوارزمية تقوم بحل المشكلة بالطريقة المطلوبة.
    4. استخدمي لغة البرمجة المناسبة لكتابة الخوارزمية بناءً على التصميم الذي قمت به، ويجب أن تتضمن الخوارزمية تعليمات وأوامر للتحكم في التدفق والتكرار حسب الحاجة.
    5.  بعد كتابة الخوارزمية، قم برسم خريطة التدفق الخاصة بها، وتستطيعي استخدام رموز معينة لتمثيل العمليات والشروط والتحكم في التدفق.
    6. قومي بتشغيل البرنامج واختباره باستخدام مدخلات مختلفة للتحقق من صحة عمله واحتمالية حدوث أخطاء.
    7. إذا كان هناك أي أخطاء أو أداء ضعيف، عليك بتحسين الخوارزمية وكرر عملية الاختبار والتحسين حتى تصلي إلى النتيجة المرجوة.

    وكمساعدة في السؤال الأول عليك باستخدام  حلقة تكرارية (حلقة while أو for) تستمر حتى "number" يصبح أكبر من 20، وفي السؤال الثاني حلقة تكرارية (حلقة while أو for) تستمر حتى "number" يصبح أكبر من 30.

    وأكملي باقي الخطوات للخوارزمية حيث يجب تعيين متغير في البداية بقيمة معينة، والخورازمية لا تكون بالتفصيل بل تكون نقاط عامة عن كيفية تنفيذ البرنامج وليست بالتفصيل فمثلاً في السؤال الأول تستطيعي كتابة أحد النقاط كالتالي داخل الحلقة، فحص ما إذا كان "number" زوجي أم لا.

  16. الكود الذي قمت بكتابته يقوم ببعض الحسابات الخاطئة ولا يتوافق تمامًا مع المتطلبات المحددة. إليك بعض المشكلات في الكود:

    1. لا تقوم بفحص إذا ما كان الزبون اشترى أكثر من 2 عناصر عند حساب الخصم. يجب أن يكون لديك شرط يحدد إذا ما كان العدد أكبر من 2 قبل حساب الخصم.
    2. في حل case 1 و case 2، يجب أن يكون الخصم 7% وليس 10%. يجب عليك تعديل القيمة المستخدمة في حساب الخصم.
    3. في حساب الخصم لأي عنصر يتجاوز سعره 7 JOD، يجب أن تضيف 1% من سعر العنصر للخصم وليس من الإجمالي الكلي للفاتورة، لذلك قم بتعديل الجزء المتعلق بهذا الحساب.
    4. لا يتم احتساب الخصم الإضافي للعملاء الذين قاموا بشراء أكثر من عنصرين وإجمالي الفاتورة يتجاوز 20 JOD، عليك بإضافة الخصم الإضافي البالغ 5% للقيمة المناسبة.
    5. الكود لا يقوم بتحديد الحد الأقصى للخصم والذي يجب أن يكون 50% من الفاتورة الإجمالية، ويجب أن تقوم بفحص القيمة المحسوبة للخصم وإعادة تعيينها إلى القيمة المحددة في حالة تجاوز الحد الأقصى.

    حاول تعديل الكود من خلال النقاط السابقة، وتوفير الكود بعد تعديله وسيتم مساعدتك في الحل.

    القسم الخاص بمقالات لغة c في أكاديمية حسوب.

  17. هناك بعض التنبيهات التي تظهر لك، وتتعلق بالتكامل مع مكتبة XR Interaction Toolkit، وتشير إلى وجود تعارض في استخدام المصدات الفعَّالة (Colliders) بين الكائنات التفاعلية (Interactable objects) المختلفة، وهناك Collider يتم استخدامه بالفعل من قبل كائن تفاعلي آخر.

    الأسباب المحتملة لحدوث هذه الأخطاء هي:

    1. قد يكون هناك انتهاك لقواعد التصادم (Collision) في المشهد، حيث يتم تسجيل مصدات (Colliders) متعددة لكائن واحد.
    2.  هناك تداخل في استخدام مصدات الكائنات التفاعلية بين مكونات المشهد المختلفة أو النماذج المستوردة.

    حاول اتباع الخطوات التالية لحل المشكلة:

    1. قم بمراجعة المشهد الخاص بك وتأكد من عدم وجود أي تداخل في استخدام المصدات بين الكائنات التفاعلية المختلفة. قم بالتحقق من الكائنات التفاعلية المذكورة في الأخطاء وتأكد من أن المصدات المستخدمة لكل منها فريدة ولا يتم استخدامها بالفعل من قبل كائن تفاعلي آخر.
    2. تأكد من أن الطبقة التفاعلية (Interaction Layer) للكائنات مع المشكلة معينة هي "Teleport". يمكنك التحقق من ذلك في إعدادات الكائن التفاعلي.
    3. قد يكون هناك تداخل في الترميز أو المكونات المستخدمة في المشروع. قم بمراجعة البرمجة والتأكد من أن الأشياء المختلفة التي تستخدم المصدات لديها تعيينات فريدة وصحيحة.

    إذا استمرت المشكلة، قد تحتاج إلى مراجعة البرمجة الخاصة بك والتأكد من أن الكائنات التفاعلية والكائنات التفاعلية والمصدات الخاصة بها تم تهيئتها واستخدامها بطريقة صحيحة.

    أيضًا عليك بالتحقق من سلسلة الأحداث والتوقيتات التي تقوم فيها بتفعيل وتعطيل الكائنات التفاعلية والمصدات، وتحقق من النقاط التالية:

    1. تأكد من أن كل كائن تفاعلي لديه مصدات فريدة وليست متشابهة مع مصدات كائنات تفاعلية أخرى.
    2. بمراجعة البرمجة المرتبطة بالأحداث التي تنشط وتعطل فيها الكائنات التفاعلية والمصدات. تأكد من عدم تسجيل نفس المصدات في أكثر من كائن تفاعلي في نفس الوقت.
    3. فحص أي مكونات إضافية متواجدة في المشهد أو المشروع التي قد تتداخل مع نظام التفاعل. ابحث عن أي تعارضات في استخدام المصدات بين هذه المكونات والكائنات التفاعلية.
    4. قد يكون من المفيد إعادة تشغيل Unity وإعادة تحميل المشهد من الصفر. قد تكون هناك حالة تشغيل سابقة تؤثر على استخدام المصدات في الحالة الحالية.
    5. إذا كنت تستخدم مكتبات أو حزم إضافية، تأكد من تحديثها إلى أحدث إصداراتها، فقد تكون هناك تحسينات أو إصلاحات لمشكلة مماثلة تم تصحيحها في التحديثات الأحدث.
  18. تستطيع استخدام السكريبتات والتحكم بمكونات اللعبة لتنفيذ هذا النوع من الحركات،  وإليك مثال بسيط لكيفية تنفيذ حركة لفتح باب المكتب عندما يتم توجيه الجهاز والضغط على زر الإمساك:

    1- قم بإنشاء كائن في الساحة يمثل الباب.

    2- إضافة مكون RigidBody إلى الكائن الذي يمثل الباب. هذا المكون سيمكّن الباب من التفاعل مع القوى الفيزيائية مثل الجاذبية والتصادم.

    3- إنشاء سكريبت جديد وربطه بكائن الباب. يمكنك أن تسميه، على سبيل المثال، "DoorController".

    4- في داخل السكريبت، أنشئ متغيرات لتخزين المكونات اللازمة. قم بتعيين قيمة افتراضية للمتغيرات في دالة Start(): 

    private Rigidbody doorRigidbody;
    private bool isDoorOpen = false;
    
    void Start()
    {
        doorRigidbody = GetComponent<Rigidbody>();
    }

    5- في دالة Update()، قم بفحص حالة الجهاز وزر الإمساك. إذا تم توجيه الجهاز نحو الباب وتم الضغط على زر الإمساك، قم بتغيير حالة الباب لتكون مفتوحة وتطبيق قوة لفتح الباب:

    void Update()
    {
        // قراءة إدخالات الجهاز
        float horizontalInput = Input.GetAxis("Horizontal");
        float verticalInput = Input.GetAxis("Vertical");
        bool grabInput = Input.GetButtonDown("Grab");
    
        // تحقق مما إذا تم توجيه الجهاز للباب وتم الضغط على زر الإمساك
        if (horizontalInput > 0 && grabInput)
        {
            // فتح الباب
            isDoorOpen = true;
    
            // تطبيق قوة لفتح الباب
            Vector3 force = transform.right * 100f; // تعديل القوة حسب الحاجة
            doorRigidbody.AddForce(force);
        }
    }

    6- قم بتعليق السكريبت على كائن الباب في Unity Inspector لكي يتم تنفيذه في اللعبة. انتقل إلى نافذة Unity وحدد كائن الباب في الساحة، ثم ابحث عن المكون "DoorController" في مربع الكومبو الموجود في Inspector، وسحب السكريبت وإفلاته على المكون "DoorController" لتعليق السكريبت على الكائن.

    7- تكوين إدخالات المحور وزر الإمساك في Unity لتفعيل الحركة. في لوحة المشروع، انتقل إلى قسم "Input" في الإعدادات. قم بإنشاء محورين لتمثيل حركة الجهاز عن طريق الاختيار الأفقي والرأسي،  أيضًا أنشيء زر لتمثيل زر الإمساك. قم بتعيين الأزرار والمحاور المعرفة في السكريبت في الخطوة 5 إلى إدخالات المحور وزر الإمساك الخاصة بها في لوحة المشروع.

    8- قم بتجريب اللعبة من خلال الضغط على زر اللعب في Unity لتشغيل اللعبة وتجربة الحركة. عند توجيه الجهاز نحو الباب والضغط على زر الإمساك، يجب أن يتم فتح الباب وتطبيق القوة لفتحه.

     

  19. هناك بعض المواقع الأخرى بالإضافة إلى ما تم ذكره:

    وتستطيع أيضًا صور من نوع Vector للتصميم من البداية، حيث تُستخدم الصور النوعية (Vector Images) في Adobe Animate للتصميم والتحريك بطرق مختلفة، وتتيح هذه الصور مزيدًا من المرونة والقابلية للتعديل والتحريك.

    إليك الخطوات الأساسية لاستخدام الصور النوعية في Adobe Animate:

    1. قم بإنشاء ملف جديد في Adobe Animate.
    2. اختر أداة Pen Tool أو Shape Tool لرسم الصور النوعية.
    3. بعد الانتهاء من الرسم، انتقل إلى لوحة الخصائص Properties Panel وحدد النوعية الناعمة (Smooth) أو النوعية الحادة (Sharp) للصورة.
    4. يمكنك تحريك الصورة ببساطة باستخدام أداة Selection Tool.
    5. لتغيير حجم الصورة دون فقدان جودتها، قم بتحريك الـ Anchor Point في لوحة الخصائص.
    6. أيضًا تستطيع إنشاء حركات بديهية للصورة باستخدام أداة Motion Editor.

     

  20. بتاريخ 2 دقائق مضت قال Abdullah Alamri4:
     <?php echo " النص النص النص
     <br>
     <input type='button' value=''>
     " 
    ?>

    لو كتبت هذا النص داخل ملف php  فإنه سيترجمها

    أنا اريده أن يظهر لي نفس الكود كاملا بدون أي ترجمه

    لاحظ موقع حسوب لم يترجم لي هذا الكود وإنما اظهره مثل ما كتبته

    تستطيع طباعة ما تريده داخل echo كالتالي:

    <!DOCTYPE html>
    <html>
    <head>
    	<title>مثال</title>
    </head>
    <body>
    <code>
    <?php echo htmlspecialchars('<?php echo " النص النص النص"; ?><br><input type="button" value="">'); ?>
    </code></body>
    </html>

    لاحظ استخدام دالة htmlspecialchars() لتحويل الرموز الخاصة إلى entities ومنع تفسير الكود بواسطة المتصفح.

    • أعجبني 1
  21. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، ولكن يمكن إرشادك لطريقة الحل، وأيضًا لم يتم توضيح ما هي اللغة المستخدمة في البرنامج وهل مطلوب استخدام قاعدة بيانات؟ أرجو توضيح ما المطلوب لمساعدتك بشكل أفضل.

    وعلي أي حال، إليك الخطوات المطلوبة لتفعيل كل خدمة في البرنامج هي كالتالي:

    1- لتفعيل خدمة إضافة طالب

    • طلب من المستخدم إدخال تسلسل الرقم الجامعي للطالب الذي يريد إضافته.
    • إنشاء كائن من الصف الطالب (class student) باستخدام البيانات التي يدخلها المستخدم، مثل الاسم والرقم الجامعي والكلية والمعدل السنوي.
    • تسلسل الرقم الجامعي للطالب الجديد بحسب الرقم الذي يدخله المستخدم.

    2- لتفعيل خدمة البحث عن طالب

    • طلب من المستخدم اختيار طريقة البحث المرغوبة، سواء كان البحث بالرقم الجامعي أو الاسم.
    • استرجاع بيانات الطالب المطابقة للبحث، مثل الاسم والرقم الجامعي والكلية والمعدل السنوي.

    3- لتفعيل خدمة حذف بيانات طالب

    • طلب من المستخدم إدخال رقم الجامعي للطالب الذي يريد حذفه.
    • البحث عن الطالب المطابق للرقم الجامعي ويتم حذف بياناته.

    4- لتفعيل خدمة الفرز حسب معيار محدد

    • طلب من المستخدم اختيار معيار الفرز المطلوب، سواء كان الفرز بالرقم الجامعي أو الاسم أو السنة الدراسية أو الكلية أو المعدل السنوي.
    • فرز القائمة الحالية من الطلاب بناءً على المعيار المختار.

    5- لتفعيل خدمة طباعة قوائم الطلاب

    طباعة قائمة بجميع الطلاب المسجلين بالبرنامج، ويتضمن ذلك بيانات كل طالب مثل الاسم والرقم الجامعي والكلية والمعدل السنوي.

  22. بتاريخ 6 دقائق مضت قال Abdullah Alamri4:

    ايضا لا زالت لا تعمل

    مثلا علامتي التنصيص تحذفها

    وتترجم كود HTML فلو وضعت بداخلها كود input  فهي تخرج لي حقل ولا تعرض نفس الكود

    هذا ما يظهر لي في المتصفح عزيزي وأظن أن هذا هو ما طلبته أنت، وإذا كان غير ذلك فأرجو توضيح المطلوب بالضبط.

    2023-05-05_18-43-28.png.dbfaa3b16b0506183af1de5726c6147a.png

  23. تستطيع استيراد الفيديو ولكن لن تستطيع التعديل عليه أي أنه سيعمل كفيديو فقط، وإذا أردت التعديل على المجسمات التي تظهر في الفيديو فعليك بتحميلها ووضعها في البرنامج.

    وذلك من خلال بعض المواقع التي توفر مجسمات ثلاثية الأبعاد لبرنامج Blender بشكل مجاني  3D Bender Models، ومنها:

  24. بتاريخ 11 دقائق مضت قال Abdullah Alamri4:

    Mustafa Suleiman

    لا تعمل هذه الطريقة

    شاهد المرفقات

    وشكرا لك

    Adnane Kadri

    عملت الطريقة لكنها بتكون متعبة لكثرة الرموز

    اضافة الى الاحتياج لمعرفة تعبير كل رمز

    وشكرا لك

    يبدوا أنني فهمت سؤالك بشكل غير صحيح، في تلك الحالة، عليك باستخدام الكود التالي:
     

    <!DOCTYPE html>
    <html>
    <head>
    	<title>مثال</title>
    </head>
    <body>
     <code><?php echo "echo النص النص النص;" ?></code>
    </body>
    </html>

     

    • أعجبني 1
×
×
  • أضف...