بســم الله الـرحمــن الرحيــم
السلام عليكم ورحة الله وبركاته
عندي طلب بسيط للفاهمين في السي شارب
عندي مجموعة من الاعداد التي يتم قراءتها من المستخدم ابغى احسب اعلى درجة واقل درجة (ملاحضة اكثر من درجة يعني بالدوال الجاهزة ما ينفع )
ولكم جزيل الشكر
بســم الله الـرحمــن الرحيــم
السلام عليكم ورحة الله وبركاته
عندي طلب بسيط للفاهمين في السي شارب
عندي مجموعة من الاعداد التي يتم قراءتها من المستخدم ابغى احسب اعلى درجة واقل درجة (ملاحضة اكثر من درجة يعني بالدوال الجاهزة ما ينفع )
ولكم جزيل الشكر
قم بعمل for وقم بعرض الارقام كاملة وداخل الفور قم بعمل هذا
maxnumber=max(x )
if(maxnumber>y)
y=maxnumber
الاكبر رقم
)minnumber=min(x
if(mixnumber<y)
y=minnumber
لاصغر رقم
صلى الله عليه وسلم عليه الصلاة و السلام
أخي الكريم أنا أشتغلت فتره على السي شارب بس مالقيت أيش الأداه اللي أستخدمها للحصول على قيمه من المستخدم مثل الـ InputBox ممكن تعطيني الـ syntax تبعها؟
لإنهاء إدخال الارقام أضغط رمز سالب "-"
You don't need to sort if you are interested only in the biggest and smallest numbers. Just do a for loop and check on every item..
int max = int.MinValue;
int min = int.MaxValue;
for (int val...) {
if (val > max) max = val;
if (val < min) min = val;
}تم تعديل هذه المشاركة بواسطة هاني الأتاسي في 30 أكتوبر 2008 في 11:44
Coding on the Cloud and for the Cloud!
الأخ ... هاني الأتاسي
قدم الاخ بن عوض نفس Algorithm الذى تفضلت وقدمته وقد قراءته، المثال الذى قدمته فى فى مشاركتى يقدم أضافه جديده للموضوع - بأستخدام الدوال الجاهزة - ورد على
soliman123 كتب:(ملاحضة اكثر من درجة يعني بالدوال الجاهزة ما ينفع )
تم تعديل هذه المشاركة بواسطة دحدوح في 30 أكتوبر 2008 في 11:50
بن عوض ..
شكرا للتوضيح ...
وإذا سمحت لي أن أوضح أكثر .. لا يعني من وجود دالة جاهزة أن يتم استخدامها .. مثلا أفضل من ال sort في هذا المثال يمكن استخدام linq extensions:
int[] a = new[] { 1, 2, 3 };
int max = a.Max();
int min = a.Min();ولها complexety of O(N) مثل الكود الذي كتبته .. ولكن باستخدام دالتي Max و Min يعني أننا سوف نفحص كل رقم مرتين بدال مرة واحدة كما في الكود السابق..
Coding on the Cloud and for the Cloud!
اعرف هذه الطريقة - لكن السائل ذكر فى سؤاله يتم قراءتها من المستخدم، ولأستخدامها نحتاج ان يحدد المستخدم مسبقاً عدد الارقام المدخلة، لذلك أفضل استخدام List أو ArrayList
اخي استقبل المعدلات أو الارقام داخل مصفوفه ,
وتعريف المصفوفه يكون كالتالي // اذا تعمل MAIN
int [] a=new int [5];
غير الرقم 5 بعدد الـ اعداد الموجوده لديك ... (او هناك طريقه اخرى المستخدم يحدد عدد الاعداد)
تضع محل "5" متغير من نوع int .. وضع قبل تعريف المصفوفه
المتغير = int.Parse(Console.ReadLine());
وهذا لاستقبال اعداد داخل المصفوفه :
for (int i = 0; i < a.Length; i++)
{
a = int.Parse(Console.ReadLine());
}والان هذا الكود لمعرفه الـ Maximum بطريقه سهله للفهم
int max = a[0];
int min = a[0];
for (int i = 1; i < a.Length; i++)
{
if (max < a)
max = a;
}
for (int i = 0; i < a.Length; i++)
{
if (min > a)
min = a;
}وتستطيع مثلا وضع كل واحده في ميثود وتحط return min . .. . return max
او اذا كل شغلك بالـ Main حط
Console.WriteLine("Max Num = "+ max+" Min Num = "+min);تم تعديل هذه المشاركة بواسطة shadi-ib في 30 أكتوبر 2008 في 19:29
Chaos is rejecting all you have learned, chaos is being YOURSELF
shadi-ib كتب:اخي استقبل المعدلات أو الارقام داخل مصفوفه ,وتعريف المصفوفه يكون كالتالي // اذا تعمل MAIN
int [] a=new int [5];غير الرقم 5 بعدد الـ اعداد الموجوده لديك ... (او هناك طريقه اخرى المستخدم يحدد عدد الاعداد)
تضع محل "5" متغير من نوع int .. وضع قبل تعريف المصفوفه
المتغير = int.Parse(Console.ReadLine());
أخى الكريم انا ذكرت فى ردى {لأستخدامها نحتاج ان يحدد المستخدم مسبقاً عدد الارقام المدخلة}، وهذا ما حاولت تجنبه فى الكود بأستخدام ArrayList.
هل عندك طريقة لأستخدام كودك دون أن تحتاج الى ان يحدد المستخدم مسبقاً عدد الارقام المدخلة؟
ممممـ مبنى Stack
LIFO ....
وبعدها انت تعالج المعطيات
Chaos is rejecting all you have learned, chaos is being YOURSELF
shadi-ib كتب:ممممـ مبنى StackLIFO ....
وبعدها انت تعالج المعطيات
ممكن مثال توضيحى لمقارنة السهوله وحجم الكود والاداء؟
اظن انه مش رح يظبت لانه لازم يحدد حجم الـ STACK وهيك رجعنا لنقطه البدايه
Chaos is rejecting all you have learned, chaos is being YOURSELF
استخدام ArrayList يشبه عمل Stack او Queue
فإذا قرائتها بالترتيب تشبه ال Queue واذا قرائها بالعكس تشبه Stack
بالاضافه الى انها تحتوى الداله Reverse التى بها يمكن عكس ترتيب العناصر
ليش التعقيد ياشباب! هذا حل دحدوح من غير استخدام مصفوفات ولا ستاك ولا كيو!
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int max = int.MinInt;
int min = int.MaxInt;
do
{
Console.Write("Enter value: ");
string input = Console.ReadLine();
int val;
if (int.TryParse(input, out n))
{
if (val > max) max = val;
if (val < min) min = val;
}
else
{
Console.WriteLine("Invalid value!");
}
}
while (input != "-");
Console.WriteLine("Min: {0}, Max: {1}", min, max);
}
}
}Coding on the Cloud and for the Cloud!
ولكن هذا لا يحتفظ بالمدخلات لأستخدام لاحق !
هههههههههههههه
مفهوم ضمناً :P
لانه عاوز درجات فاكيد عاوز يحدد الترتيب والاعلى والاقل والناجح والراسب :P