المطلوب
أكتب برنامج يطلب من المستخدم إعطائه عدد صحيح و يخزنه في المتغير N.
ثم يقوم بحساب ناتج جمع و طرح الأرقام من 1 إلى N كما في الصورة التالية.
إرشادات
المتغير
Sهو المتغير الذي سيحتوي على مجموع كل الأرقام الموجودة من 1 إلىN.الـ
iهو المتغير ( العداد ) الذي يزيد واحد في كل دورة.الـ
Fهو المتغير الذي نخزن فيه الـ Factorial لقيم العدادi.الـ
Nهو المتغير الذي يخزن العدد الذي سيدخله المستخدم و الذي تتوقف عنده الحلقة.الحلقة تبدأ من 1 و تتوقف عند
N, أي عند العدد الذي أدخله المستخدم.ركز جيداً, نحن لا نجمع قيم الـ
iنحن نجمع الـ Factorial لكل قيمة من قيم العدادi.إذا كانت قيمة الـ
iعدد مفرد, نضيف Factorial الـiعلى قيمة المتغيرS.و إذا كانت قيمة الـ
iعدد مزدوج, ننقص Factorial الـiمن قيمة المتغيرS.
كود الجافا
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;
}
if (i%2 == 1)
{
S = S + F;
}
else
{
S = S - F;
}
}
System.out.print("S = " +S+ "\n");
}
}
شرح الكود
int N; int F; double S = 0;
هنا قمنا بتجهيز المتغير N لتخزين الرقم الذي سيدخله المستخدم.
و المتغير F لتخزين الـ Factorial لكل قيمة من قيم العداد i الذي سنستخدمه في الحلقة.
و المتغير S لتخزين المجموع النهائي.
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;
}
if (i%2 == 1)
{
S = S + F;
}
else
{
S = S - F;
}
}
هنا في كل دورة من دورات الحلقة i سيحدث التالي:
سيتم وضع القيمة 1 كقيمة أولية للمتغير
Fلأننا سنستخدم هذا المتغير لتخزين قيمة الـ Factorial في كل مرة للعدادi.بعدها, سيتم إنشاء حلقة داخلية تبدأ من 1 إلى قيمة العداد
iالحالية بهدف حساب قيمة الـ Factorial للعدادiو تخزينها في المتغيرFبشكل مؤقت.بعد أن أصبحت قيمة الـ Factorial للعداد
iمخزنة في المتغيرFسيحدث التالي:إذا كانت قيمة العداد
iعبارة عن عدد مفرد, سيتم إضافة قيمة المتغيرFعلى قيمة المتغيرS.إذا كانت قيمة العداد
iعبارة عن عدد مزدوج, سيتم طرح قيمة المتغيرFمن قيمة المتغيرS.
System.out.print("S = " +S+ "\n");
في الأخير سيتم عرض النتيجة النهائية المخزنة في المتغير S.
نصيحة
لتطوير قدرتك على التحليل, حاول كتابة هذا البرنامج لوحدك من جديد و اتبع نفس الأسلوب الذي اتبعناه في التمرين الثالث.





محرر الويب
نظام الألوان
محول الوحدات
محلل عناوين الشبكات