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

باستخدام Arraylist أرغب بحساب المعدل

بدأه Zaianb في 11 أبريل 2009 · 10 رد · 711 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيف حالكم أخوتي

لدي مشكله

في الكود التالي

في الكود التالي أقوم بسؤال المستخدم بادخال

درجاته

وفي حال انتهاء من كتابته درجاته عليه ان يقوم بأدخال 0

حتى يقوم البرنامج

بعد ذلك بحساب المعدل

لو فرضنا أن المستخدم أدخل

20

40

ثم ادخل 0

المعدل يجب ان يكون 30

لكن الكود التالي لايقوم بذلك

بل يكتب

0

2

لمذا؟؟

أين يكون خطأي

صيغة الكود كالتالي

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace grades.arraylist

{

class Program

{

static void Main(string[] args)

{

ArrayList Grades = new ArrayList();

int mygrade = 0;

do

{

Console.WriteLine("Entar your grade");

mygrade = int.Parse(Console.ReadLine());

if (mygrade > 0)

{

Grades.Add(mygrade);

}

}

while (mygrade > 0);

int total = 0;

foreach (int grade in Grades)

{

total += 0;

}

Console.WriteLine(total / Grades.Count);

Console.WriteLine(Grades.Count);

Console.ReadLine();

}

}

}

إذا كان هناك من لديه القدره على مساعدتي فليتكرم علي بذلك وسأكون له من الشاكرين

تحياتي لكم جمعيا

#2

الخطأ في هذا السطر:

total += 0;

بدل أن تجمع الدرجات كنت تجمع أصفارًا ، ولهذا المعدل كان 0

سبحان الله وبحمده ... سبحان الله العظيم

#3

السلام عليكــم ورحمـة الله وبركاتــه ،،

الخطا هنا

foreach (int grade in Grades)

{

total += 0;

}

انت بتجمع صفر كل مرة المفروض تكون total+=grade;

#4

اسفة ....مشوفتش رد الاخ احمد

#5
دعاء مختار كتب:
اسفة ....مشوفتش رد الاخ احمد

حصل خير :)

سبحان الله وبحمده ... سبحان الله العظيم

#6

السلام عليكــم ورحمـة الله وبركاتــه ،،

يعطيكم العافيه أخواني ماقصرتوا

بس ممكن سؤال ثاني

يعني عذرا إذا أزعجتكم بكثرة اسئلتي

في الكود التالي حاولة اني أسئل المستخدم بادخال اسمه ومن ثم درجاته

ثم يعود الكود ليسئلة مرة اخرى عن اسم الطالب

وعن درجات

أستخدمة

while loop

لكن بما اني استخدم جمله وليس رقم

فان الجزء التالي خطأ

New = string.Parse(Console.ReadLine());

يقول بانه

string does not contain a definition for parse

في هذه الحاله ماذا يجب علي ان أكتب

الكود كاملا

كالتالي

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace grades.arraylist

{

class Program

{

static void Main(string[] args)

{

ArrayList Grades = new ArrayList();

int mygrade = 0;

int New = 0;

while(New !=0)

{

Console.WriteLine("Please Entar your name");

New = string.Parse(Console.ReadLine());

do

{

Console.WriteLine("Entar your grade");

mygrade = int.Parse(Console.ReadLine());

if (mygrade > 0)

{

Grades.Add(mygrade);

}

}

while (mygrade > 0);

Grades.Sort();

int total = 0;

foreach (int grade in Grades)

{

total += grade;

}

Console.WriteLine(total / Grades.Count);

Console.WriteLine(Grades.Count);

Console.ReadLine();

}

}

}

}

اذا كان هناك من لديه القدرة على مساعدتي فليتكرم علي بذلك

وسأكون له من الشاكرين

تحياتي لكم جميعا

#7

السلام عليكم ورحمة الله وبركاته

اولا خلي new نوعه string

ثانيا خلي جملة القراء من غير parse

ثالثا خلي جملة التاكد من ان المستخدم ادخل اسمه كالتالي ;""=!while new

#8

السلام عليكــم ورحمـة الله وبركاتــه ،،

ده الكود وياريت تلاحظي التعديلات البسيطة الموجودة

 static void Main(string[] args)
        {
            ArrayList Grades = new ArrayList();

            int mygrade = 0;

            string New = ""; //string not int
            Console.WriteLine("Please Entar your name");

            New = Console.ReadLine();//no need to parse

            if (New !="")//no need to while
            {


                do
                {

                    Console.WriteLine("Entar your grade");

                    mygrade = int.Parse(Console.ReadLine());

                    if (mygrade > 0)
                    {

                        Grades.Add(mygrade);

                    }

                }

                while (mygrade > 0);

                Grades.Sort();

                int total = 0;

                foreach (int grade in Grades)
                {

                    total += grade;

                }

                //display result in nice format
                Console.Write("Average is: "); 
                Console.WriteLine(total / Grades.Count);
                Console.Write("Number of grades are: ");
                Console.WriteLine(Grades.Count);

                Console.ReadLine();

            }
#9

يعطيك العافيه أختي

أنتبهت لأخطأئي

طيب عندي سؤالي ثاني

وعن جد اعتذر لكثرة أسئلتي واستفساراتي

انا حاولت التالي

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace grades.arraylist

{

class Program

{

static void Main(string[] args)

{

ArrayList Grades = new ArrayList();

int mygrade = 0;

string New ="";





do

{

Console.WriteLine("Please Entar your name");

New = Console.ReadLine();

if (New != "")

{

New.count(New);

}



Console.WriteLine("Entar your grade");

mygrade = int.Parse(Console.ReadLine());

if (mygrade > 0)

{

Grades.Add(mygrade);

}

}

while (mygrade > 0);

Grades.Sort();

int total = 0;

foreach (int grade in Grades)

{

total += grade;

}

Console.WriteLine(total / Grades.Count);

Console.WriteLine(Grades.Count);

Console.ReadLine();

}

}

}

امذا في هذا الجزء يجود خطأ

New.count(New);

شنو المفروض أستخدم بدل

count

الغرض من الكود

ان يقوم بسؤال المستخدم بادخال اسم الطالب في المره الاولى

ومن ثم يقوم بدخال درجاته

ثم تتكرر العمليه مرة اخرى

اي يقوم البرنامج بالسؤال عن الاسم والدرجات مره اخرى

حتى يقوم المستخدم باقافها

اتمنى ان لا اكون أزعجتكم بكثرة اسئلتي

انا بنتظار مساعدتكم

تحياتي لكم جميعا

#10

السلام عليكــم ورحمـة الله وبركاتــه ،،

اولا لا اري لزوم لهذا السطر

New.count(New);

الكود

			   static void Main(string[] args)
		{
			ArrayList Grades = new ArrayList();

			int mygrade = 0;

			string New = " "; 
		   Console.WriteLine("Please Entar your name");
		   New = Console.ReadLine();

		   while(New!=" ")
			{

				Console.WriteLine("Entar your grade");

				mygrade = int.Parse(Console.ReadLine());



				while(mygrade>0)
				{
					Grades.Add(mygrade);
					Console.WriteLine("Entar your grade");
					mygrade = int.Parse(Console.ReadLine());



				}


				Grades.Sort();

				int total = 0;

				foreach (int grade in Grades)
				{

					total += grade;

				}

				//display result in nice format
				Console.Write("Average is: ");
				Console.WriteLine(total / Grades.Count);
				Console.Write("Number of grades are: ");
				Console.WriteLine(Grades.Count);
				Console.WriteLine("============================");

				Console.WriteLine("Please Entar your name");
				New = Console.ReadLine();

			} 

		}

الكود عبارة عن 2 (while) لوب جوه بعض . الاولي لطلب ادخال الاسم ولو المستخدم دخل مسافة البرنامج بينتهي . والثانية لطلب ادخال الدرجات لو المستخدم دخل صفر طلب ادخال الدرجات بيتوقف وبيطلب ادخال اسم اخر

#11

أشكرك أختي

على مجهود وتعبك معي

لك مني جزيل الشكر والتقدير

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