public static Prev Prévision_final(ElemTabproba[] table, int jour_a_predire) {//la méthode qui donne le resultat final qui sera affiché ( les valeurs de variables en prenant les probabilités les plus grandes ) Prev a = new Prev(); Element[] interm = new Element[14]; for (int i = 0; i < interm.Length; i++) { interm[i] = new Element(); } for (int i = 0; i < 14; i++) // Pour chaque variables ( precip , tempMin , tempMax..... ) { interm[i] = table[i].GetValeurs()[0]; // reçoit la valeur ayant la plus grande probabilité qui sera par la suite affiché // Comme les valeurs de varaibles venant de probabilité sont ordonnée donc on prend la premiere valeur et on l'affiche comme elle a // la plus grand probabilité mais si il en existe deux ayant la meme probabilité on prend la plus récente if (table[i].GetLentghValeurs() == 2) { if (table[i].GetValeurs()[0].GetProba() == table[i].GetValeurs()[1].GetProba()) // même probailité { if (DateTime.Compare(table[i].GetValeurs()[0].GetDate(), table[i].GetValeurs()[1].GetDate()) > 0) // ==> Date plus récente { interm[i] = table[i].GetValeurs()[0]; } else { interm[i] = table[i].GetValeurs()[1]; } } } } // c'est la date de jour de la prévision c'est a dire dans nb jour d'aujourd'hui DateTime date = DateTime.Now.Date; date = date.AddDays(jour_a_predire); //remplir la sortie avec les données qu'on a obtenu ==> ces derniers représente les valeurs de variables à afficher a.SetDate(date); a.SetTempMin(interm[0].GetValeur()); a.SetTempMax(interm[1].GetValeur()); a.SetCloudCover(interm[2].GetValeur()); a.SetDewPoint(interm[3].GetValeur()); a.SetHeatIndex(interm[4].GetValeur()); a.SetHumidity(interm[5].GetValeur()); a.SetPrecipitation(interm[6].GetValeur()); a.SetPressure(interm[7].GetValeur()); a.SetTempEvening(interm[8].GetValeur()); a.SetTempMorning(interm[9].GetValeur()); a.SetTempNoon(interm[10].GetValeur()); a.SetTempWind(interm[11].GetValeur()); a.SetVisibility(interm[12].GetValeur()); a.SetWindSpeed(interm[13].GetValeur()); return(a); //Nous rend les valeurs des variables ayant la plus grande probabilité :) }
public static void previsions(int[] tab_id, Prev[] tab_prev, int nb_jours, string wilaya) { for (int i = 0; i < tab_id.Length; i++) { if (tab_id[i] != 0) { int id = tab_id[i] + nb_jours; bool b = false; string table = "[dbo].[" + wilaya + "]"; string cmmd = "SELECT * FROM " + table + " WHERE id = " + id; DataSet data = new DataSet(); connection(cmmd, b, ref data, wilaya); foreach (DataRow row in data.Tables[wilaya].Rows) { tab_prev[i] = new Prev(); tab_prev[i].SetTempMax(Convert.ToDouble(row["MAX_TEMPERATURE_C"])); tab_prev[i].SetTempMin(Convert.ToDouble(row["MIN_TEMPERATURE_C"])); tab_prev[i].SetWindSpeed(Convert.ToDouble(row["WINDSPEED_MAX_KMH"])); tab_prev[i].SetTempMorning(Convert.ToDouble(row["TEMPERATURE_MORNING_C"])); tab_prev[i].SetTempNoon(Convert.ToDouble(row["TEMPERATURE_NOON_C"])); tab_prev[i].SetTempEvening(Convert.ToDouble(row["TEMPERATURE_EVENING_C"])); string text = Convert.ToString(row["PRECIP_TOTAL_DAY_MM"]); text = text.Replace('.', ','); tab_prev[i].SetPrecipitation(Convert.ToDouble(text)); text = Convert.ToString(row["VISIBILITY_AVG_KM"]); text = text.Replace('.', ','); tab_prev[i].SetVisibility(Convert.ToDouble(text)); tab_prev[i].SetHumidity(Convert.ToDouble(row["HUMIDITY_MAX_PERCENT"])); tab_prev[i].SetPressure(Convert.ToDouble(row["PRESSURE_MAX_MB"])); text = Convert.ToString(row["CLOUDCOVER_AVG_PERCENT"]); text = text.Replace('.', ','); tab_prev[i].SetCloudCover(Convert.ToDouble(text)); tab_prev[i].SetHeatIndex(Convert.ToDouble(row["HEATINDEX_MAX_C"])); tab_prev[i].SetDewPoint(Convert.ToDouble(row["DEWPOINT_MAX_C"])); tab_prev[i].SetTempWind(Convert.ToDouble(row["WINDTEMP_MAX_C"])); tab_prev[i].SetId(Convert.ToInt32(row["id"])); tab_prev[i].SetDate(Convert.ToDateTime(row["Date"])); } } } }