الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود برنامج حساب عدد الطلاب الراسبين و الناجحين

بدأه yahya91 في 7 ديسمبر 2009 · 2 رد · 6,077 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

طلب منا أن نتكت كود بلغة سي بلس بلس كمبتدئين للبرنامج التالي :

نص السؤال

اكتب برنامجاً بلغة ال c++ يقوم بإدخال علامتي الفحص النظري و العملي لمقرر البرمجة 1 لطلاب السنة الثانية ثم يحسب مايلي :

عدد الطلاب الناجحين و عدد الطلاب الراسبين ثم يطبع النتائج على الشاشة ؟

قمت بحل هذا السئال كالتالي :

#include <iostream.h>
#include<math.h>
void main ()
{
	int m ,i=1,c ,failed=0 , passed=0  ;
	cout << "enter the number of student in computer engeeniring 2ed year who did the exams " << endl ;
	cin >> m ;
	int a , b ;
	while(i<=m)
	{
	cout<<" enter the markes of practial and normal exam " << endl ; 
	cin >> a >>b ;
    c=a+b;
	if (c<60)
	{
		cout << " faild " << endl ; 
		failed = failed + i ;
	}
	else
	{
		cout << "passed " << endl ;
		passed = passed + i ;

	}
i++ ;
	}
	cout << passed << "is passed "<<endl ; 
	cout << failed << " is failed "<<endl ;

}

وظهر عدد الراسبين 2 من أجل طالبين أحدهما ناجح (كما هو في الصورة المرفقة ).

فهل غلطي هو استخدام البنية if ضمن البنية while

if (c<60)
	{
		cout << " faild " << endl ; 
		failed = failed + i ;
	}
	else
	{
		cout << "passed " << endl ;
		passed = passed + i ;

أليس من المفروض أن يتحقق من الشرط و هو

c<60

و بالتالي إذا لم يتحقق سوف ينتقل إلى else .

يعني هل i في

failed = failed + i

تأخذ قيمة عندما لا يتحقق شرط If

جزاكم الله خيراً .. و عذراً على الإطالة

post-217808-12601438755831_thumb.gif

#2

هاد الكود اللي طلع معي و بيحل مسألتك بشكل صحيح

#include <iostream.h>
#include<math.h>

void main ()

{        

	int grade,c,passed,failed;
	passed=0;
            failed=0;

	cout << "enter the number of student in computer engeeniring 2ed year who did the exams " << endl ;        
	cin >> grade ;        
	int a , b ;

	while(grade>0)        
	{        
		cout<<" enter the markes of practial and normal exam " << endl ;         
		cin >> a >>b ;    

              	c=a+b;
                        grade--;

	if (c>=60)        
		{                
			cout<<"passed"<<endl;
			passed=passed+1      ; 
		}        
		else        
		{   
			cout << "failed" << endl ;
			failed=failed+1;

		}

	}        
	cout << passed << "is passed "<<endl ;         
	cout << failed << " is failed "<<endl ;        
}

تم تعديل هذه المشاركة بواسطة cold0zero في 7 ديسمبر 2009 في 05:11

#3

شكراً جزيلاً لك .. و بارك الله جهودك عرفت أين خطائي و هو في السطر التالي حيث كتبت

failed = failed + i

و الصحيح

failed = failed + 1

و بالتالي يمكن كتابة الكود كالتالي :

#include <iostream.h>
#include<math.h>
void main ()
{
        int m ,i=1,c ,failed=0 , passed=0  ;
        cout << "enter the number of student in computer engeeniring 2ed year who did the exams " << endl ;
        cin >> m ;
        int a , b ;
        while(i<=m)
        {
        cout<<" enter the markes of practial and normal exam " << endl ; 
        cin >> a >>b ;
    c=a+b;
        if (c<60)
        {
                cout << " faild " << endl ; 
                failed = failed + 1 ;
        }
        else
        {
                cout << "passed " << endl ;
                passed = passed + 1 ;

        }
i++ ;
        }
        cout << passed << "is passed "<<endl ; 
        cout << failed << " is failed "<<endl ;

}

و هكذا تم الحصول على الكود الصحيح بجهود أخي "غولد زيرو"

post-217808-12601842517656_thumb.gif

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…