الكود

  • برمجية ISBN-10 بلغة Java

    بدايةً، دعني أشير إلى الأخطاء في الكود المقدم:

    1. في الحلقة التي تقوم بإدخال الأرقام الأولى للـ ISBN، تستخدم حلقتين متداخلتين، وهذا ليس ضروريًا ويؤدي فقط إلى تكرار الحلقة. يمكنك استخدام حلقة واحدة فقط لإدخال الأرقام.

    2. في حلقة إدخال الأرقام، تقوم بضرب كل رقم في موقعه بالتسلسل من 1 إلى 9 وتخزين الناتج في كل مرة في الخانة المقابلة في مصفوفة num. هذا غير صحيح، يجب عليك أن تخزن القيمة المحسوبة في كل مرة في مصفوفة منفصلة.

    3. عند حساب مجموع الأرقام المحسوبة، تستخدم حلقة تقوم بجمع القيم من الفهرس 0 إلى 9. هذا يؤدي إلى تجاوز الحد الأقصى للمصفوفة وقد يتسبب في خطأ ArrayIndexOutOfBoundsException. يجب أن تقوم بجمع القيم من الفهرس 0 إلى 8 فقط.

    4. عند طباعة الـ ISBN-10، تحاول طباعة مصفوفة بأكملها باستخدام num. يجب أن تقوم بتكوين سلسلة نصية تحتوي على الأرقام الصحيحة المدخلة.

    بناءً على الملاحظات السابقة، يمكن تعديل الكود على النحو التالي:

    java
    import java.util.Scanner; public class ISBN_Number { public static void main(String[] args) { Scanner s = new Scanner(System.in); int[] num = new int[9]; System.out.println("Enter the first 9 digits of an ISBN as an integer: "); for (int i = 0; i < num.length; i++) { num[i] = s.nextInt(); } int sum = 0; for (int i = 0; i < num.length; i++) { sum += num[i] * (i + 1); } int d10 = sum % 11; System.out.print("The ISBN-10 number is "); for (int i = 0; i < num.length; i++) { System.out.print(num[i]); } if (d10 == 10) { System.out.println("X"); } else { System.out.println(d10); } } }

    هذا التعديل يقوم بتصحيح الأخطاء المذكورة أعلاه ويجعل البرنامج يعمل بالطريقة المطلوبة. يقوم البرنامج الآن بقبول الأرقام الأولى للـ ISBN كرقم صحيح ويحسب الرقم العاشر ويطبع الـ ISBN النهائي بشكل صحيح.

    المزيد من المعلومات

    بالطبع، سأكمل المقال بإضافة بعض الشروحات والتوضيحات حول الكود المعدل وكيف يعمل:

    بعد تعديل الكود، يصبح أكثر فهمًا وفعالية. دعني أوضح الآن كيف يعمل البرنامج الجديد:

    أولاً، يقوم البرنامج بطلب إدخال الأرقام الأولى للـ ISBN من المستخدم. ثم، يخزن هذه الأرقام في مصفوفة num بحيث يتم تخزين الرقم في الفهرس 0 في num[0] وهكذا.

    بعد ذلك، يتم استخدام حلقة for لحساب المجموع الذي سيستخدم في حساب الرقم العاشر من الـ ISBN. يتم ضرب كل رقم في موقعه بتسلسله ويتم إضافة الناتج إلى المجموع.

    بعد حساب المجموع، يتم استخدام العملية % للحصول على الباقي عند القسمة على 11. هذا الباقي هو الرقم العاشر من الـ ISBN.

    ثم، يتم طباعة الأرقام الأولى للـ ISBN باستخدام حلقة for أخرى، مع ملاحظة أن الفهارس تبدأ من 0 وتنتهي في 8.

    أخيرًا، يتم التحقق مما إذا كان الرقم العاشر هو 10 أم لا. إذا كان 10، يتم طباعة “X” بدلاً من الرقم 10، وإلا فإنه يتم طباعة الرقم العاشر بشكل عادي.

    هذا البرنامج الآن يمتثل تمامًا لمتطلبات المسألة ويقوم بإنشاء رقم ISBN-10 بشكل صحيح استنادًا إلى الأرقام التي يدخلها المستخدم.

  • كيفية تشغيل الكود بعد constructor في بناء Lombok

    كيفية تشغيل الكود بعد البناء في بنّان Lombok

    في البناء الخاص بك، تحتاج إلى استدعاء init() بعد بناء الكائن من الفئة Foo. ولكن مع Lombok، لا يتم تضمين طريقة لاستدعاء init() مباشرة بعد بناء الكائن. ومع ذلك، يمكنك تحقيق هذا السلوك من خلال إعادة تعريف طريقة build() يدوياً في فئتك. لحسن الحظ، يمكن أن تكون هذه العملية مرنة وتتماشى مع التغييرات المستقبلية في فئتك دون الحاجة إلى تغيير البناء الخاص بك كل مرة.

    الخطوات التالية توضح كيفية تحقيق هذا:

    1. تعريف فئة Foo مع البناء باستخدام Lombok.Builder

    java
    import lombok.Builder; @Builder public class Foo { public String val1; public int val2; public List listValues; // تعريف طريقة init() الخاصة بك public void init() { // قم بإجراء بعض الفحوصات على القيم. } // تعريف طريقة build() المعدلة يدوياً public static class FooBuilder { public Foo build() { Foo foo = new FooBuilder() .val1(val1) .val2(val2) .listValues(listValues) .build(); // بناء الكائن باستخدام Lombok Builder الافتراضي foo.init(); // استدعاء init() بعد البناء return foo; } } }

    2. استخدام البناء الجديد

    java
    Foo foo = Foo.builder() .val1("value1") .val2(2) .listValues(Arrays.asList("value1", "value2")) .build(); // سيتم استدعاء init() تلقائياً بعد بناء الكائن

    باستخدام هذا النهج، يمكنك استدعاء init() بسهولة بعد بناء الكائن باستخدام Lombok.Builder، دون الحاجة إلى تغيير بناء الكائن في كل مرة تقوم فيها بإضافة حقول جديدة إلى فئتك.

    المزيد من المعلومات

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

    1. التدقيق في القيم: يجب عليك التحقق من القيم الممررة إلى البنّان وضمان صحتها قبل استدعاء init()، خاصة إذا كانت هناك متطلبات محددة للبناء.

    2. التعامل مع القيم الافتراضية: إذا كانت لديك قيم افتراضية لحقول Foo، يجب عليك التعامل معها بشكل مناسب داخل طريقة build() المعدلة. على سبيل المثال، يمكنك تحديد قيم افتراضية لحقول val1 و val2 في البناء الافتراضي لـ FooBuilder، ولكن لا تنسى تضمين هذه القيم في حالة عدم تقديمها.

    3. التحقق من النص بالقيمة الافتراضية في حالة توفر قيم افتراضية للحقول، يمكنك تشغيل init() فقط عندما يتم تعيين القيم الافتراضية. إذا كانت القيم تأتي من قبل المستخدم، فقد تحتاج إلى التحقق من القيم أولاً قبل استدعاء init().

    4. التعامل مع تغييرات في الهيكل: إذا تمت إضافة حقول جديدة إلى Foo، فستحتاج إلى تحديث طريقة build() المعدلة لتضمين هذه الحقول في البناء.

    5. التفكير في إعادة الاستخدام: قد تحتاج إلى إعادة استخدام طريقة init() في سياقات أخرى داخل فئة Foo. في هذه الحالة، قد تفضل استخدام طريقة خاصة بالتحقق مرة واحدة من جميع القيم، ثم استدعاء init() بناءً على هذه القيم.

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

  • تصحيح أخطاء تنسيق الكود Python

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

    1. في الدالة cube(number), يجب أن تعيد قيمة n مرفوعة للتكعيب بدلاً من استدعاء cube(n). لذا يجب تعديلها إلى:
    python
    def cube(n): return n ** 3
    1. في الدالة by_three(number), يجب أن تحدد المتغير الذي تريد استخدامه بدلاً من استخدام n دون تعريفه. ويجب أن تقوم بإرجاع نتيجة cube(number) بشكل صحيح داخل الشرطية if، وكذلك تحت الشرطية else. لذا يجب تعديلها إلى:
    python
    def by_three(n): if n % 3 == 0: return cube(n) else: return False

    بعد تصحيح الأخطاء، يجب أن تكون الدوال تعمل بشكل صحيح.

    المزيد من المعلومات

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

    1. تعريف الدوال: في الدالة cube(number)، قمت بتعريف المدخل كـ number ولكن استخدمت n في الجسم الدالة، هذا يمكن أن يسبب الخلط. الأفضل استخدام نفس الاسم للمدخل والمتغير داخل الدالة، مما يسهل فهم الكود. الشيء نفسه ينطبق على الدالة by_three(number).

    2. استدعاء الدالة cube: في دالة by_three، يتم استدعاء الدالة cube داخل الشرطية if ولكن لم يتم حفظ القيمة المعادة من الدالة cube في أي متغير. يجب تخزين القيمة المعادة من cube واستخدامها بشكل مناسب.

    3. تهيئة الدوال: يجب تعريف الدوال cube و by_three بشكل صحيح، وتوضيح المعاملات التي تستقبلها والقيم التي تعيدها.

    بناء على ذلك، يمكن تعديل الكود كالتالي:

    python
    def cube(n): """ تقوم هذه الدالة بإعادة التكعيب لعدد محدد. """ return n ** 3 def by_three(n): """ تقوم هذه الدالة بالتحقق مما إذا كان العدد قابل للقسمة على 3 أم لا. إذا كان العدد قابل للقسمة على 3، تقوم بإعادة تكعيبه، وإلا تعيد False. """ if n % 3 == 0: return cube(n) else: return False

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

  • تحسين تجربة CameraCaptureUI في Windows 10 باستخدام واجهة الشاشة الكاملة

    تتعلق استفساراتك حول كيفية بدء CameraCaptureUI في وضع ملء الشاشة بدلاً من البدء في نافذة صغيرة. يبدو أن التغيير في سلوك التطبيق يعتمد على الإصدار المستخدم لنظام التشغيل Windows، حيث يشير سيناريوك إلى استخدام WinRT لـ Windows 8.1. لكن مع تحديث إلى Windows 10، يلاحظ المستخدمون أن تطبيق الكاميرا يفتح في نافذة صغيرة بدلاً من ملء الشاشة كما هو الحال في Windows 8.

    تحتاج إلى فهم أن هذا السلوك قد يكون مرتبطًا بتحديثات وتغييرات في نظام التشغيل. تظهر الشكاوى المشابهة عادةً في تطبيقات WinRT التي تم إعادة توجيهها لدعم Windows 10. ولكن هناك حلاً بسيطًا يمكن تجربته لتحقيق ما تريد.

    يمكنك استخدام خاصية CameraCaptureUI.PhotoSettings لتحديد الخيارات التي تحتوي على وضع الشاشة الكاملة. يمكنك تحديد CroppedAspectRatio لتحقيق نتائج أفضل في وضع الشاشة الكاملة. إليك كيفية تعديل الشيفرة:

    csharp
    CameraCaptureUI cameraUI = new CameraCaptureUI(); cameraUI.PhotoSettings.CroppedAspectRatio = new Size(16, 9); // أو أي نسبة أخرى تناسب تطبيقك Windows.Storage.StorageFile capturedMedia = await cameraUI.CaptureFileAsync(CameraCaptureUIMode.Photo);

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

    المزيد من المعلومات

    موضوع استخدام واجهة CameraCaptureUI في بيئة Windows 10 يثير العديد من الاهتمامات، خاصةً عند تحديث التطبيق من Windows 8.1 إلى Windows 10. في البداية، ينبغي التنويه إلى أن استخدام خاصية CameraCaptureUI.PhotoSettings تُظهر لنا واجهة برمجة التطبيق (API) القوية المتاحة للمطورين للتفاعل مع الكاميرا في تطبيقاتهم.

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

    قد يكون من الفعّال تحديد خيارات إضافية، مثل MaxResolution و AllowCropping و Format. يمكن أن يسهم تحديد AllowCropping في تحسين تجربة المستخدم في وضع الشاشة الكاملة.

    csharp
    CameraCaptureUI cameraUI = new CameraCaptureUI(); cameraUI.PhotoSettings.CroppedAspectRatio = new Size(16, 9); // أو أي نسبة أخرى تناسب تطبيقك cameraUI.PhotoSettings.MaxResolution = CameraCaptureUIMaxPhotoResolution.HighestAvailable; cameraUI.PhotoSettings.AllowCropping = true; Windows.Storage.StorageFile capturedMedia = await cameraUI.CaptureFileAsync(CameraCaptureUIMode.Photo);

    يمكنك أيضًا استخدام واجهة برمجة التطبيق الخاصة بالكاميرا بشكل أكثر تخصيصًا عبر Windows.Media.Capture API. ومع ذلك، يجب مراعاة تأثير التغييرات على تجربة المستخدم وقابلية الاستخدام.

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

  • حل مشكلة LINK : fatal error LNK1104 في تجميع مشروع SDL بـ Visual Studio 2005

    عند مواجهتك لرسالة الخطأ LINK : fatal error LNK1104: cannot open file ‘SDL_lib.obj’ أثناء تجميع مشروع يحتوي على SDL في بيئة التطوير Visual Studio 2005، يكون ذلك ناتجًا عن عدة أسباب ممكنة، ولكن يمكن حله ببساطة عبر اتخاذ بعض الخطوات.

    أولاً وقبل كل شيء، تحقق من أنك قد قمت بتكوين بيئة التطوير بشكل صحيح لدعم SDL. تأكد من أنك قمت بتضمين المسار الصحيح للملفات الرئيسية لـ SDL في مشروعك. يمكنك فعل ذلك من خلال التوجه إلى إعدادات المشروع (Project Settings)، ثم اختيار Configuration Properties ومن ثم VC++ Directories. قم بإضافة مسارات الملفات الرئيسية لـ SDL في مجالات Include Directories و Library Directories.

    ثانيًا، تأكد من أنك تستخدم الإصدار الصحيح من SDL. يجب أن يكون الإصدار المستخدم متوافقًا مع نسخة الـ Visual Studio التي تستخدمها. في بعض الأحيان، قد تكون هناك تباينات بين إصدارات SDL، لذا تحقق من ذلك.

    ثالثًا، تأكد من أنك قد قمت بإضافة ملفات المكتبة الصحيحة إلى مشروعك. ربما تكون قد نسيت إضافة ملفات المكتبة الخاصة بـ SDL، مثل ‘SDL.lib’، إلى مشروعك. يمكنك إضافة هذه الملفات في قسم Input من Configuration Properties، ثم Additional Dependencies.

    رابعًا، تحقق من أنك تستخدم الإعدادات الصحيحة للنظام الخاص بك (32 بت أو 64 بت). قد تحتاج إلى ضبط هذه الإعدادات لتتناسب مع نظام الأمان الذي تعمل عليه.

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

    مع اتباع هذه الخطوات، يجب أن تكون قادرًا على حل مشكلتك وتجنب ظهور رسالة الخطأ LINK : fatal error LNK1104: cannot open file ‘SDL_lib.obj’ أثناء تجميع مشروعك في بيئة التطوير Visual Studio 2005.

    المزيد من المعلومات

    إذا كنت تواجه رسالة الخطأ LINK : fatal error LNK1104: cannot open file ‘SDL_lib.obj’، يمكنني تقديم مزيد من المعلومات لتفهم الوضع بشكل أفضل.

    تحديد مكان ملفات SDL:
    تأكد من أن ملفات SDL الضرورية، مثل ‘SDL.lib’ و ‘SDL.dll’، متاحة في المسارات الصحيحة. يمكن أن يكون هناك خلل في مسار المكتبة أو عدم وجود الملفات اللازمة.

    إعدادات التكامل مع SDL:
    تأكد من أنك قد قمت بتكوين مشروعك بشكل صحيح لدمج SDL. يجب أن يتم تحديد SDL في إعدادات المشروع ويجب أن يكون لديك روابط صحيحة إلى الملفات الرئيسية لـ SDL.

    تحقق من إصدار Visual Studio:
    تأكد من أنك تستخدم الإصدار الصحيح من Visual Studio الذي يدعم SDL وأنه قد تم تثبيت أي تحديثات أو تصحيحات هامة.

    البحث عن حلاً عبر المجتمعات التقنية:
    قم بالبحث في مجتمعات التطوير والمنتديات المتخصصة حول SDL وVisual Studio 2005. قد تجد تجارب أخرى مشابهة وحلول فعّالة من قبل المطورين الآخرين.

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

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

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

  • مثال ألة حسابة بلغة جافا

    مثال على آلة حاسبة بلغة جافا

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

    الكود

    فيما يلي الكود المصدر لآلة الحاسبة:

    
        import java.util.Scanner;
    csharp
    Copy code
    public class Calculator {
      public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
    
        System.out.print("أدخل العدد الأول: ");
        double num1 = scanner.nextDouble();
    
        System.out.print("أدخل العدد الثاني: ");
        double num2 = scanner.nextDouble();
    
        System.out.print("اختر العملية (+, -, *, /): ");
        char operator = scanner.next().charAt(0);
    
        double result = 0.0;
    
        switch (operator) {
          case '+':
            result = num1 + num2;
            break;
          case '-':
            result = num1 - num2;
            break;
          case '*':
            result = num1 * num2;
            break;
          case '/':
            result = num1 / num2;
            break;
          default:
            System.out.println("عملية غير صحيحة");
        }
    
        System.out.println("النتيجة: " + result);
    
        scanner.close();
      }
    }
    

    الشرح

    سنقوم بتحليل الكود المصدر لآلة الحاسبة خطوة بخطوة:

    1. نستورد فئة Scanner من مكتبة جافا لاستقبال الإدخال من المستخدم.
    2. ننشئ كائنًا من الفئة Scanner لاستخدامه في قراءة الإدخال من المستخدم.
    3. نطلب من المستخدم إدخال العدد الأول والعدد الثاني.
    4. نطلب من المستخدم اختيار العملية التي يرغب في تنفيذها (جمع، طرح، ضرب، قسمة).
    5. نستخدم بيانات الإدخال لتنفيذ العملية المحددة باستخدام بيان switch-case.
    6. نعرض النتيجة للمستخدم.
    7. نغلق كائن الـ Scanner بعد الانتهاء من الاستخدام.
  • ما هو الكود النظيف , وكيف يمكن تنظيف الكود ؟

    ما هو الكود النظيف , وكيف يمكن تنظيف الكود ؟

    الكود النظيف هو نمط كتابة البرمجة الذي يهدف إلى جعل الكود سهل القراءة وفهمه وصيانته. يعتبر الكود النظيف مؤشرًا على جودة البرمجة ويسهل تعاون المطورين عليه.

    هنا بعض المبادئ العامة للكود النظيف:

    1. التسميات المفهومة: استخدم أسماء متعلقة بالمفهوم وواضحة للمتغيرات والدوال والفئات والوحدات الأخرى في الكود. تجنب استخدام اختصارات غامضة أو أسماء غير واضحة.

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

    3. التعليقات البسيطة والشرح: أضف تعليقات مفيدة للكود لتوضيح عملية أو تفسير الأكواد المعقدة. استخدم التعليقات بشكل معتدل وفي الأماكن التي يكون فيها الكود صعب الفهم.

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

    5. التجريب والاختبار: قم بفحص الكود واختباره بشكل منتظم للتأكد من عمله بشكل صحيح وفقًا للتوقعات.

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

    1. إزالة التعليقات غير الضرورية: قم بمراجعة التعليقات في الكود واحذف التعليقات التي لم تعد ضرورية أو غير واضحة.

    2. تنظيف الأكواد المكررة: بحث عن الأكواد المك

    ررة في البرنامج واستبدلها بدوال أو قطع برمجية تعيد استخدامها.

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

    4. تسميات واضحة: تأكد من أن جميع التسميات في الكود واضحة ومفهومة وتعكس وظيفتها بدقة.

    5. إعادة التفكير في التصميم: قد يتطلب تنظيف الكود إعادة التفكير في التصميم العام للبرنامج لتحسينه وتبسيطه وجعله أكثر فهمًا وصيانة.

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

  • مصطلحات أساسية في البرمجة

    ما هي المصطلحات التي تتكر كثيرا عند كل مبرمج ؟

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

    🔸 المتغيرات Variables

    المتغيرات هي عبارة عن مواقع في الذاكرة تخزن البيانات بشكل مؤقت ويمكن تغيير قيمتها أثناء تنفيذ البرنامج. فمثلا يمكن للبرنامج أن يُخزن في المتغير Var1 القيمة 1 ثم يخزن القيمة 2، والقيمة التي سترجع من المتغير
    هي آخر قيمة تم تخزينها.

    ‏🔸 الثوابت Constant

    هي عبارة عن مواقع في الذاكرة تُخزن فيها البيانات بشكل مؤقت ولكن لا يمكن تغيير قيمتها أثناء تنفيذ البرنامج. فمثلا يُمكن للبرنامج أن يخزن في الثابت Con1 القيمة 1 لكنه لا يستطيع تغييرها وإن حاول تغييرها فإن المترجم يُرسل رسالة خاطئة أثناء تنفيذ البرنامج.

    ‏🔸 الحدث Event

    هو عبارة عن فعل يقوم به المستخدم للبرنامج المصمم كالنقر على أداة “الزر Button” أو تغيير نص في مربع نص “Text Box” أو حتى تحريك الماوس أو الفأرة ويرافقه تنفيذ الإجراء المتعلق به.

    ‏🔸 الإجراء Procedure

    هو عملية أو عمليات ينفذها البرنامج عند تحقق حدث معين كالنقر على أداة الزر “Button” في البرنامج.

    🔸 الكائن object

    قد يكون تعريف لكود أداة تحكم مثل الزر “Button” ويكون له عدة إجراءات.

    🔸 الكود أو “الشفرة البرمجية” Code

    هو عبارة عن أوامر برمجية تعطى للكمبيوتر على شكل نص تُكتب بواسطة لغة من لغات البرمجة كلغة “الفيجوال بيسك” والتي يفسرها مترجم يسمى ليفهمها الكمبيوتر ولكل وحدة نمطية أو أداة تحكم كود
    خاص به في الفيجوال بيسك. وقد يكون الكود مقسما إلى ‏كائنات “Objects”،
    ودالات أو توابع “Functions”، وإجراءات “Procedures”، و أحداث “Events”.

    🔸 المترجم Compiler

    هو أداة تقوم بترجمة البرنامج دفعة واحدة إلى لغة الآلة وتُنتج ملف تنفيذى بامتداد “exe –> executable file”، يعمل مباشرة بدون وسيط، وهذا يعنى أن لغات البرمجة المترجمة تقوم بتحويل النص البرمجى المكتوب بها إلى لغة الآلة مباشرة وتُنتج ملف تنفيذي، ‏

    🔸 المفسر Interpreter

    هو أداة تقوم بترجمة البرنامج إلى لغة الآلة سطر سطر، وهذا يعنى أن البرنامج المكتوب بلغات برمجة تفسيرية يتم ترجمته إلى نص برمجى وسيط بلغة منخفضة المستوى ( لغة وسيطة )، ويُنتَج ملف للبرنامج وبداخله هذا الكود, لذا لا يمكن تنفيذه على هذه الصورة مباشرة حيث يحتاج إلى ‏برنامج آخر يقوم بترجمة الأكواد المكتوبة بداخله إلى لغة الآلة، هذا البرنامج يسمى “المفسر”، ففي لغة الــJava مثلاً يُترجم النص البرمجى إلى كود وسيط يسمى “Byte code”، وتُنتج ملف بامتداد jar، هذا الكود البرمجي لا يُمكن تشغيله وتنفيذه على أي جهاز مباشرة حيث يحتاج إلى ما ‏يسمى “آلة جافا الافتراضية”، والتى تعمل كمفسر للبرنامج الناتج حتى يتم تنفيذه.
    تطبيقات الدوت نت أيضا تعتمد على نفس الأسلوب بحيث يتم تحويل الكود البرمجى المكتوب بلغة من لغات الدوت
    إلى لغة وسيطة منخفضة المستوى تسمى لغة “مايكروسوفت Visual Basic نت”.

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر