اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

أولًا نقوم بكتابة أساسيات أي برنامج ب C++ وهي الدالة main.

#include <iostream>

using namespace std;

int main () {


}

ثم سنقوم بإنشاء متغيرين:

  •  المتغير الأول هو لحفظ قيمة n، وستأخد نوع int لأنه عدد صحيح طبيعي.
  • المتغير الثاني لحفظ قيمة المجموع total، ستأخد القيمة الإبتدائية 0 ونوع float.
#include <iostream>

using namespace std;

int main () {
	
  int n;
  float total = 0;

}

بعد ذلك سنطلب من المستخدم إدخال قيمة n.

#include <iostream>

using namespace std;

int main () {
	
  int n;
  float total = 0;
  
  cout << "Enter n: ";
  cin >> n;

}

 

بعد ذلك ستقوم بعمل تكرار من قيمة 1 إلى قيمة n عن طريق for بالشكل التالي:

#include <iostream>

using namespace std;

int main () {
	
  int n;
  float total = 0;
  
  cout << "Enter n: ";
  cin >> n;
  
  for (float i = 1; i <= n; i++){
      
  }

}

في كل تكرار سنقوم بجمع total مع قيمة i/2.

#include <iostream>

using namespace std;

int main () {
	
  int n;
  float total = 0;
  
  cout << "Enter n: ";
  cin >> n;
  
  for (float i = 1; i <= n; i++){
      total = total + i / 2;
  }

}

وفي النهاية سنقوم بطبع قيمة المجموع، أي طبع قيمة total.

#include <iostream>

using namespace std;

int main () {
	
  int n;
  float total = 0;
  
  cout << "Enter n: ";
  cin >> n;
  
  for (float i = 1; i <= n; i++){
      total = total + i / 2;
  }
                        
  cout << total;

}

يمكنك تجربة الكود عن طريق الرابط التالي.

  • 0
نشر (معدل)

يمكن أيضاً تبسيط المطلوب رياضياً عن طريق أخذ 1/2 عامل مشترك، وإستخدام قانون مجموع الأعداد من 1 إلى n، فيصبح المجموع:eqnn.png

ويصبح الكود كالآتي:

#include <iostream>
using namespace std;

int main () {
  int n;
  float total = 0;
  
  cout << "Enter n: ";
  cin >> n;
  
  cout << (float)n*(n+1)/4;
}

يمكنك تجربته من هنا.

تم التعديل في بواسطة مصطفى القباني
  • 0
نشر

أولا نقوم بإنشاء الدالة التي ترجع لنا قيمة المجموع :

  • هنا ندخل while loop لنتمكن من إضافة المجموع الأول إلى المجموع الكلي
  • ثم نضيف i = i + 1; لزيادة قيمة المتغير  i بقيمة 1
  • الدالة هنا ترجع لنا قيمة المجموع الكلي عبر المعامل n
#include <iostream>

using namespace std;

/* نقوم بإنشاء الدالة التي ترجع لنا قيمة المجموع  */ 
float get_sum(int n){
	/* هنا تهيئة قيم المتغيرات n والمجمو ع sum*/
    float sum = 0;  
    float i = 1;
      while(i <= n){
          sum = sum + (i / 2);
          i = i + 1;
      }
  
    return sum;
}

ثانيا : ننشئ الدالة الرئيسة main :

  • بعد إدخال قيمة n ,نقوم بمناداة الدالة get_sum بالمعامل n
  • نضع الناتج من الدالة داخل المتغير sum 
  • نقوم بإخراج قيمة sum للحصول على المجموع الكلي 
int main () {
  float sum ; int n;
  /* n نقوم بإدخال قيمة المتغر */ 
  cout << "Please Enter Value of N: ";
  cin >> n;
    
  /* n مناداة الدالة مع إعطائها قيمة للمعامل */    
  sum = get_sum(n);
  /* ثم نقوم بإرجاع قيمة المجموع الكلي */                     
  cout << sum;

  return 0;
}

 

يمكنك التأكد من هذه الدالة عبر هذا الرابط

 

 

  • 0
نشر (معدل)
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
  	/*  sum نقوم بتعريف متغير لتخزين ناتج جمع المتسلسلة */
  	/* و متغير اّخر لحساب قيمة كل حد في المتسلسة */
    double sum = 0, a;
  	
  	/* n نقوم بتعريف متغير لتخزين عدد حدود المتسلسلة */
    int n, i;
    cout << "\n\n Find the sum of the series 1/2 + 2/2 +.....+ n/2:\n";
    cout << "----------------------------------------------------------------\n";
    cout << " Input the value for nth term: ";
    cin >> n;
  	/* نقوم بعمل حلقة لحساب كل حد من حدود المتسلسلة و جمعه إلى الحدود الأخري */
    for (i = 1; i <= n; ++i) 
	{
      	/* نقوم بحساب قيمة كل حد من حدود المتسلسلة */
        a = i / 2;
        cout  << i << "/" << "2" << " = " << a << endl;
      /* نقوم بجمع كل حد  إلى الحدود السابقة */
        sum += a;
    }
    cout << " The sum of the above series is: " << sum << endl;
}

الكود السابق يوضح ال logic المستخدم لحساب مجموع المتسلسلة

يمكن بعد ذلك استخدامه داخل دالة من نوع double لأننا نريدها أن ترجع مجموع السلسلة و هو من نوع double 

double sumOfSeries(int n);

/* main section */

double sumOfSeries(int n) {
	/* كود جمع المتسلسلة السابق */
  return sum;
}

 

تم التعديل في بواسطة Yomna Raouf
  • 0
نشر

ممكن باستخدام الازاحه لليمين فهي غير معقده علي cpu مثل عمليه القسمه 


#include <iostream>

using namespace std;


double sum(int n){
    double total = 0.0;
    
    for (int i = 1; i <= n; i++){
        total = total + (double)(i>>1);
        if (i&1) total+=0.5;
    }
    
    return total;
}

int main () {
    int n=0;
    
    cout <<"Enter n: ";
    cin >>n;
                        
    cout <<sum(n) <<endl;
    
    return 0;
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...