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

أساسيات البرمجةحساب قيمة العاملي للعدد - التمرين التاسع

المطلوب

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


إرشادات

  1. s هو المتغير الذي سيحتوي على المجموع النهائي لكل عمليات الجمع لهذا وضعنا فيه 0 كقيمة أولية.
  2. n هو المتغير الذي يخزن العدد الذي سيدخله المستخدم و الذي تتوقف الحلقة عنده.
  3. i هو المتغير (العداد) الذي يزيد واحد في كل دورة الحلقة التي سننشئها من 1 إلى n.
  4. f هو المتغير الذي سنخزن فيه قيمة العاملي لكل قيمة من قيم العداد i.
  5. في كل دورة من دورات الحلقة i إذا كانت قيمته فردية سيتم إنقاص i + (i+1)! من قيمة s و إذا كانت قيمته زوجية سيتم زيادة i + (i+1)! على قيمة s.

الحل

var n;
var f;
var s = 0;
write("Enter n: ");
n = read();
for (var i=1; i<=n; i++)
{
f = 1;
for (var k=1; k<=i+1; k++)
{
f = f * k;
}
if (i % 2 == 1)
{
s = s - (i + f);
}
else
{
s = s + (i + f);
}
}
write("s = " + s);
var n; var f; var s = 0; write("Enter n: "); n = read(); for (var i=1; i<=n; i++) { f = 1; for (var k=1; k<=i+1; k++) { f = f * k; } if (i % 2 == 1) { s = s - (i + f); } else { s = s + (i + f); } } write("s = " + s);

سنحصل على النتيجة التالية في حال أدخلنا العدد 4 عند التشغيل.

Enter n: 4
s = 102

جرب الكود


شرح الكود

الفيديو التالي يشرح طريقة عمل الكود خطوة خطوة.



طريقة أبسط للحل

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

في الحل التالي قمنا بتبديل الحلقة المخصصة لحساب العاملي بمتغير إسمه k و هذا الحل يعتبر أفضل.

الحل

var n;
var f = 1;
var s = 0;
var k = 1;
write("Enter n: ");
n = read();
for (var i=1; i<=n; i++)
{
k++;
f = f * k;
if (i % 2 == 1)
{
s = s - (i + f);
}
else
{
s = s + (i + f);
}
}
write("s = " + s);
var n; var f = 1; var s = 0; var k = 1; write("Enter n: "); n = read(); for (var i=1; i<=n; i++) { k++; f = f * k; if (i % 2 == 1) { s = s - (i + f); } else { s = s + (i + f); } } write("s = " + s);

سنحصل على النتيجة التالية في حال أدخلنا العدد 4 عند التشغيل.

Enter n: 4
s = 102

جرب الكود


لم نضع طريقة تحليل هذا الكود لأنه يفترض بك أن تتمكن من تحليله بنفسك.