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

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

المطلوب

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


إرشادات

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

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

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

تحليل النتيجة

الخوارزمية

كود الجافا

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

شرح الكود


int N;
int F;
double S = 0;
int N; int F; double S = 0;
  • هنا قمنا بتجهيز المتغير N لتخزين الرقم الذي سيدخله المستخدم.
  • و المتغير F لتخزين الـ Factorial لكل قيمة من قيم العداد i الذي سنستخدمه في الحلقة.
  • و المتغير S لتخزين المجموع النهائي.


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


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


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

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


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

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة