Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals 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 و F كـ double حتى لا نخسر أي رقم موجود بعد الفاصلة أثناء إجراء عمليات القسمة.


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

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

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

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

الخوارزمية

كود الجافا

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");
}
}
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;
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();
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 );
}
}
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");
System.out.print("S = " +S+ "\n");
  • في الأخير سيعرض نتيجة جمع جميع الأرقام المضاعفة المخزنة في المتغير S.

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


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