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

كتابه كود بلغة ++c يحسب ويخرج قيمة (1/2 )+(2/2 )+(3/2)+...+(n/2)

غدير القضاه

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...