المطلوب
أكتب برنامج يطلب من المستخدم إعطائه عدد صحيح و يخزنه في المتغير N.
بعدها يعرض له ناتج القيمة المضاعفة للأعداد التي قام بإدخالها.
إرشادات
المتغير
Sهو المتغير الذي سيحتوي على مجموع كل الأرقام الموجودة من 1 إلىN.الـ
iهو المتغير ( العداد ) الذي يزيد واحد في كل دورة.الـ
Nهو المتغير الذي يخزن العدد الذي سيدخله المستخدم و الذي تتوقف عنده الحلقة.الحلقة تبدأ من 1 و تتوقف عند
N, أي عند العدد الذي أدخله المستخدم.في كل دورة سيتم إعتبار قيمة العداد
iهي الـ Base و الـ Power, و سنحصل على Power لها من خلال الحلقةk.سنحتاج إلى المتغير
Pلتخزين ناتج ضرب المتغيرiبنفسه في كل دورة بداخل الحلقةkقبل إضافته على قيمة المتغيرS.
إنتبه: يجب تعريف المتغيرين S و F كـ double حتى لا نخسر أي رقم موجود بعد الفاصلة أثناء إجراء عمليات القسمة.
كود الجافا
import java.util.Scanner;
public class Power_And_Factorial {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
int N;
double P;
double F;
double S = 0;
System.out.print("Enter a number for N: ");
N = input.nextInt();
for (int i=1; i <=N; i++)
{
if (i%2 == 1 )
{
P = 1;
for (int k=1; k <=i; k++)
{
P = P * i;
}
S = S + P;
}
else
{
F = 1;
for (int k=1; k <=i; k++)
{
F = F * k;
}
S = S + ( 1/F );
}
}
System.out.print("S = " +S+ "\n");
}
}
شرح الكود
int N; double P; double F; double S = 0;
هنا قمنا بإنشاء المتغير N لتخزين الرقم الذي سيدخله المستخدم.
و المتغير P لتخزين القيمة المضاعفة لكل قيمة مفردة من قيم العداد i الذي سنستخدمه في الحلقة.
و المتغير F لتخزين قيمة الـ Factorial لكل قيمة مزدوجة من قيم العداد i الذي سنستخدمه في الحلقة.
و المتغير S لتخزين المجموع.
System.out.print("Enter a number for N: ");
N = input.nextInt();
هنا طلبنا من المستخدم إدخال عدد, ثم وضعناه في المتغير N.
for (int i=1; i <=N; i++)
{
if (i%2 == 1 )
{
P = 1;
for (int k=1; k <=i; k++)
{
P = P * i;
}
S = S + P;
}
else
{
F = 1;
for (int k=1; k <=i; k++)
{
F = F * k;
}
S = S + ( 1/F );
}
}
هنا في كل دورة من دورات الحلقة i سيتم فحص قيمة العداد i لمعرفة إذا كانت قيمته مفردة أم مزدوجة.
إذا كانت قيمة العداد i عبارة عن عدد مفرد سيحدث التالي:
سيتم إنشاء حلقة داخلية لحساب القيمة المضاعفة للعداد
i.ناتج القيمة المضاعفة للعداد
iسيتم تخزينه بشكل مؤقت في المتغيرPحتى تتوقف الحلقة الداخلية عن التنفيذ.بعدها سيتم إضافة قيمة المتغير
Pعلى قيمة المتغيرS.
إذا كانت قيمة العداد i عبارة عن عدد مزدوج سيحدث التالي:
سيتم إنشاء حلقة داخلية لحساب قيمة الـ Factorial للعداد
i.ناتج الـ Factorial للعداد
iسيتم تخزينه بشكل مؤقت في المتغيرFحتى تتوقف الحلقة الداخلية عن التنفيذ.بعدها سيتم إضافة 1 مقسوم على قيمة المتغير
Fعلى قيمة المتغيرS.
System.out.print("S = " +S+ "\n");
في الأخير سيعرض نتيجة جمع جميع الأرقام المضاعفة المخزنة في المتغير S.






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