Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

الخوارزمياتحساب قيمة الـ Power للعدد - التمرين الرابع

المطلوب

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


إرشادات

  1. S هو المتغير الذي سيحتوي على مجموع كل الأرقام الموجودة من 1 إلى N.
  2. i هو المتغير (العداد) الذي يزيد واحد في كل دورة.
  3. N هو المتغير الذي يخزن العدد الذي سيدخله المستخدم و الذي تتوقف عنده الحلقة.
  4. الحلقة تبدأ من 1 و تتوقف عند N, أي عند العدد الذي أدخله المستخدم.
  5. في كل دورة سيتم إعتبار قيمة العداد i هي الـ Base و الـ Power, و سنحصل على Power لها من خلال الحلقة k.
  6. سنحتاج إلى المتغير P لتخزين ناتج ضرب المتغير i بنفسه في كل دورة بداخل الحلقة k قبل إضافته على قيمة المتغير S.

إنتبه: يجب تعريف المتغيرين S و P كـ double لأنه عند إجراء عمليات المضاعفة قد يصل الناتج إلى أعداد كبيرة جداً.


النتيجة المطلوبة

لنفترض أن المستخدم أدخل العدد 4.

طريقة التحليل

الخوارزمية

كود الجافا

import java.util.Scanner;
 
public class Power {
 
    public static void main (String[] args) {
 
        Scanner input = new Scanner(System.in);
 
        int N;
        double P;
        double S = 0;
 
        System.out.print("Enter a number for N: ");
        N = input.nextInt();
 
        for (int i=1; i<=N; i++)
        {
            P = 1;
            for (int k=1; k<=i; k++)
            {
                P = P * i;
            }
            S = S + P;
        }
 
        System.out.print("S = " +S+ "\n");
 
    }
 
}

شرح الكود

  • الهدف من هذا السؤال جعل قيمة الـ Base تساوي قيمة الـ Power.


        int N;
        double P;
        double S = 0;
  • هنا قمنا بإنشاء المتغير N لتخزين الرقم الذي سيدخله المستخدم.
  • و المتغير P لتخزين القيمة المضاعفة لكل قيمة من قيم العداد i الذي سنستخدمه في الحلقة.
  • و المتغير S لتخزين المجموع.


        System.out.print("Enter a number for N: ");
        N = input.nextInt();
  • هنا طلبنا من المستخدم إدخال عدد, ثم وضعناه في المتغير N.


        for (int i=1; i<=N; i++)
        {
            P = 1;
            for (int k=1; k<=i; k++)
            {
                P = P * i;
            }
            S = S + P;
        }
  • هنا في كل دورة من دورات الحلقة i سيحدث التالي:
    • سيتم وضع القيمة 1 كقيمة أولية للمتغير P قبل إستخدامه في الحلقة k لأن القيمة 1 لا تؤثر في عملية الضرب.
    • بعدها سيتم إنشاء الحلقة k التي تبدأ من 1 إلى i.
      إذاً, عدد دورات الحلقة k يساوي قيمة العداد i و هكذا ستصبح قيمة الـ Baseتساوي قيمة الـ Power.
    • في كل دورة من دورات الحلقة k سيتم ضرب قيمة العداد i بقيمة المتغير P القديمة, ثم تخزين الناتج في المتغير P من جديد.
      و هكذا في كل مرة تتوقف فيها الحلقة k عن التنفيذ سيكون المتغير P يحتوي على قيمة العداد i المضاعفة.
    • بعد أن أصبحت القيمة المضاعفة للعداد i مخزنة في المتغير P سيتم إضافتها على قيمة المتغير S.


        System.out.print("S = " +S+ "\n");
  • في الأخير سيعرض نتيجة جمع جميع الأرقام المضاعفة المخزنة في المتغير S.

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


دورة تعلم البرمجة للمبتدئين >