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

مساعدة من فضلكم حول الألغوريتم

بدأه Hounex في 18 يناير 2011 · 5 رد · 873 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

إخواني الأفاضل كيفكم ؟

أتمنى أن تكونوا بألف خير

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

كتابة ألغوريتم عبارة عن برنامج مثلا أنا أدخلت 30 يوما يعني شهر كل يوم فيه درجة حرارة معينة عندما يأتي الذي يستخدم البرنامج الخوارزمي يكتب اليوم 1 أو 2 يضغط entrer تخرج له درجة الحرارة التي انا ادخلتها غير هذا أريد أيضا إذا أدخل كلمة max تخرج له درجة الحرارة الأعلى في ذاك الشهر كذالك min بالنسبة لدرجة الحرارة السفلى التي وصلت في ذالك الشهر و أيضا درجة الحرارة الوسطى بالنسبة لمحاولتي لا أتسطيع ذالك لأن درجة الصعوبة كبيرة في انتظاركم ( لي 4 نقط إضافية إذا أعطيته للأستاذ كاملا )

وشكرا لك مسبقا

#2

للرفع

إخواني في انتظاركم

#3
Hounex كتب:

للرفع

إخواني في انتظاركم

اول حل جاء في ذهني هو عمل array تمثل الشهر وقيمه كل element في array تمثل درجه حراره هذا اليوم

بالنسبه لل max او min يمكن معرفه اعلي element في array

public int max(int[] temp) {
        int max = temp[0];
        for (int i = 0; i < temp.length; i++) {

            if (temp > max) {

                max = temp;

            }

        }
        return max;
    }

تم تعديل هذه المشاركة بواسطة Ahmed-Ghanem في 21 يناير 2011 في 00:09

2coscqr.jpg
#4

لا يا أخي الكريم

انا عاوزه بالألغوريتم

وشكرا لك مسبقا

#5

للرفع

−1
#6

تفضل اخوي هذه الدالة تقوم بجميع الوظائف التي ذكرتها

1- تستخرج درجة يوم محدد

2- تستخرج اكبر درجة في الشهر

3- تستخرج اصغر درجة في الشهر

4- تعطي المتوسط الحسابي للدرجات

طبعا ً هذه الدالة بلغة C

degree(day){
 int num_day_month = 30;
 int degree_day[30] = {70,10,15,71,55,66,77,88};
     if(day > 0 && day <= num_day_month)
     {
         day = day - 1;
         return degree_day[day];
     }else{
         int x = 0,i,z;
             switch(day){
                case 'max':
                          for(i=0;i<num_day_month;i++)
                          {
                              if(degree_day > x)
                              {
                                  x = degree_day;     
                              }
                          }
                          return x;
                          break;
                case 'min':
                          x = degree_day[0];
                          for(i=0;i<num_day_month;i++)
                          {
                               if(degree_day < x)
                               {
                                  x = degree_day;
                               }
                          }
                          return x;
                          break;  
                case 'ave':
                         for(i=0;i<num_day_month;i++)
                         {
                            x = x + degree_day;
                         }
                        z = x / num_day_month;
                        return z;       

                default:
                          return 2;            
            }
     }
}

لاحظ المصفوفة degree_day انا حطيت فيها ثمانية قيم تبع ثمانية ايام

انت كمل الباقي طبعا ً هذه المصفوفة ان حددت مداها فقط 30 موقع في الذاكرة ممكن تزيدها وممكن تنقصها

وايضا ً لاحظ المتغير num_day_month هذا يمثل عدد ايام الشهر يعني يساوي مدى المصفوفة

انا عملته لاني استخدمته اكثر من مره وحتى لا يتم تكرار الرقم في اكثر من موضع وضعته في متغير

طريقة استخدام الدالة :

لاستخراج درجة يوم معين :

degree(4);

لاستخراج القيمة الكبرى

degree('max');

لاستخراج القيمة الصغرى

degree('min');

لاستخراج المتوسط الحسابي

degree('avg');

تم تعديل هذه المشاركة بواسطة M.B.O في 6 فبراير 2011 في 02:05

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

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

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

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

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

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