PDA

View Full Version : Initialize Array



Maryam IT
شنبه 22 شهریور 1393, 00:33 صبح
سلام
من یه کدی میخوام که بتونه یه آرایه تو هر خونه ای که هست، همه ی محتویات آرایه رو پاک کنه و دوباره مقادیر رو از خونه ی اول شروع کنه که قرار بده!
خواهشا راهنمایی کنید

omid nasri
شنبه 22 شهریور 1393, 09:12 صبح
خوب تو یک حلقه، تعداد خونه رو در گام دوم حلقه قرار بده و به اون تعداد حلقه اجرا میشه، تو حلقه هم خونه ها رو null بزار و دوباره خودت مقدار دهی کن.

Maryam IT
شنبه 22 شهریور 1393, 10:43 صبح
ببینید برنامم تو یه تابع توی یک حلقه ی for تمام محاسبات رو انجام میده و میریزه تو متغیرای مربوطه بعدم مقدار متغیر ریخته میشه تو آرایه های مربوط به خودشون، وقتی دکمه ی show results زده میشه تمام مقادیر محاسبه شده نشون داده میشه. مشکم اینه که وقتی دوباره رو اون دکمه کلیک میکنم و جدول جدیدی رو نشون میده عددای توی جدول خیلی بزرگ میشن یعنی جوبای کاملا غلط!!!
حالا میخوام بدونم باید چیکار کنم که وقتی کاربر یکی از ورودی ها رو تغییر داد و دوباره دکمه show results رو زد جواب درست بده؟ نمیدونم باید آرایه ها رو دوباره null کنم؟ یا متغیرام رو؟ چیکار کنم؟
در واقع میخوام بدونم چطور میتونم اجرای دوباره از فرمم بگیرم بدون اینکه فرم رو باز و بسته کنم و بدون اینکه کاربر دوباره بخواد به همه ی ورودی مقدار بده؟

Mojtaba0
شنبه 22 شهریور 1393, 19:40 عصر
شاید با اجرای مجدد FormLoad() مشکلتون حل بشه.خیلی مشکلتون رو بد توضیح دادین
:متفکر:

کد:

FormLoad(null,null)

Maryam IT
شنبه 22 شهریور 1393, 19:53 عصر
ببینید بار اول که دکمه رو میزنم جدول نتایج رو کاملا درست نشون میده ولی اگه بدون اینکه فرم رو باز و بسته کنم دوباره دکمه رو بزنم نتایج عجیب و غریب نشون میده عددا بزرگ میشه. هر بارم که دکمه رو میزنم عددا بزرگتر میشه :لبخند:
من میخوام اگه هر چند بارم که دکمه ی نمایش نتایج رو بزنم همون جوابای درست رو نشون بده....یعنی یه جوری باشه که اگه مثلا کاربر خواست یکی از مقادیر ورودی رو تغییر داد دوباره با تغییرات جدید نتایج جدید و درست نشون بده ...چون اگه فرم رو باز و بسته کنم همه ی مقادیر ورودی که کاربر وارد کرده پاک میشه و دوباره از اول باید همه چی رو وارد کنه...خب این خیلی سخت میشه!
امیدوارم منظورمو رسونده باشم
خواهشا کمک کنید:افسرده:

Maryam IT
شنبه 22 شهریور 1393, 20:07 عصر
FormLoad بی تاثیر بود

دلتنگ اسمان
شنبه 22 شهریور 1393, 22:49 عصر
به جای این همه پست گذاشتن کدتون رو بذارین که راحت تر بشه راهنمایی کرد.
شاید بستگی به تعریف متغیرهات داره . احتمالا بصورت عمومی(قبل از ورود به رویداد دکمه show results) تعریف کردین. که اگه اینطوری باشه متغیرهاتون رو توی همون رویداد مقداردهی اولیه کنین. و حتی ارایه رو هم مقداردهی اولیه کنین.که هر بار اجرا میشه مقادیر قبلی رو پاک کنه و محاسبات جدید رو بگیره.

Mori Bone
یک شنبه 23 شهریور 1393, 07:13 صبح
شما از جنریک ها استفاده کن:
List<int> a = new List<a>;

برای مقداردهی مثل آرایه های معمولی و به شکل زیر عمل کنید:
a[0]

برای خالی کردن آرایه(که به درد این تاپیک می خوره):
a.clear();

برای آرایه چندبعدی:
List<int[] a= new List<int[]>;

برای مقدار دهی این آرایه های چند بعدی هم از کده زیر استفاده کن:
{
new int[] { 1 , 2 , 3 , 4 },
new int[] { 11 , 12 },
new int[] { 21 , 22 , 23 , 24 , 25 , 26}
}

وبرای دسترسی به عدد ۲۶ در آرایه بالا از کده زیر استفاده کن:

a[2][5]

Maryam IT
یک شنبه 23 شهریور 1393, 14:37 عصر
اینا متغیرام هستن که به صورت عمومی تعریف شده
Boolean check = false; double eight_concentration = 0;
double one_concentration = 0;
double avg_year_concentration = 0;
double tweny_four_concentration = 0;


double population_rate = 0;
double current_population = 0;
//int annual_population = 0;
double power_rate = 0;
double power_year_capita = 0;
double total_power_year = 0;
double total_power_year_conservation = 0;
string selectedItem_pollutant = "";
string selectedItem_fueltype = "";


double co2_hardcoal = 0;
double co2_browncoal = 0;
double co2_fueloil = 0;
double co2_otheroil = 0;
double co2_gas = 0;


double so2_hardcoal = 0;
double so2_browncoal = 0;
double so2_fueloil = 0;
double so2_otheroil = 0;
double so2_gas = 0;


double nox_hardcoal = 0;
double nox_browncoal = 0;
double nox_fueloil = 0;
double nox_otheroil = 0;
double nox_gas = 0;


double co_hardcoal = 0;
double co_browncoal = 0;
double co_fueloil = 0;
double co_otheroil = 0;
double co_gas = 0;


double nonmethane_hardcoal = 0;
double nonmethane_browncoal = 0;
double nonmethane_fueloil = 0;
double nonmethane_otheroil = 0;
double nonmethane_gas = 0;


double particmatter_hardcoal = 0;
double particmatter_browncoal = 0;
double particmatter_fueloil = 0;
double particmatter_otheroil = 0;
double particmatter_gas = 0;


double rsp_hardcoal = 0;
double rsp_browncoal = 0;
double rsp_fueloil = 0;
double rsp_otheroil = 0;
double rsp_gas = 0;


double o3_hardcoal = 0;
double o3_browncoal = 0;
double o3_fueloil = 0;
double o3_otheroil = 0;
double o3_gas = 0;


double fuel_pollutant = 0;


double U = 0 ;
string solar_radiation = "";
string cloud_cover = "";
string dispersion_equation = "";
string dispersion_parameters = "";


double x_meter = 0;
double y = 0;
double z = 0;


double x_kilometer = 0;
double h_stack ;
double gas_Exit_Velocity = 0;


double a = 0;
double b = 0;
double c = 0;
double d = 0;


string Day_StabilityCat = "";
string Night_StabilityCat = "";


double Q = 0;

double Stack_Diameter ;


double delta_h = 0;


double Day_Sigma_z = 0;//meter
double Day_Sigma_y = 0;//meter



double Night_Sigma_z = 0;//meter
double Night_Sigma_y = 0;//meter





int prediction_year;





double Day_concentration;
double Night_concentration;
double concentration;


double Pi = Math.PI;


double[] Concentration = new double[40];
double[] annual_population = new double[40];
double[] annual_power = new double[40];
double[] day_sigma_z = new double[40];
double[] night_sigma_z = new double[40];
double[] day_sigma_y = new double[40];
double[] night_sigma_y = new double[40];
double[] annual_q = new double[40];
double[] annual_day_concentration = new double[40];
double[] annual_night_concentration = new double[40];
double[] morb_cost = new double[40];
double[] mort_cost = new double[40];
double[] morb_pop = new double[40];
double[] mort_pop = new double[40];
double[] Accumulation_Concentration = new double[40];
double[] Concentration_conservation = new double[40];
double[] Filtering_allowed_q = new double[40];
double[] Filtering_allowed_concentration = new double[40];
double[] Filtering_allowed_day_concentration = new double[40];
double[] Filtering_allowed_night_concentration = new double[40];
double[] Efficiency = new double[40];
double accumulation_concentration = 0;


double currencies = 0;
double annual_currencies = 0;
double Inflation = 0;
string dieseas = "";


double morbidity_cost = 0;
double mortality_cost = 0;
double morbidity_rate = 0;
double mortality_rate = 0;
double morbidity_population = 0;
double mortality_population = 0;


double conservation = 0;
double th;
double residence_time = 0;
double destroy_factor = 0;


double Q_growth_rate = 0;
double bg_concentration = 0;
double standard_filtering = 0;
double filtering_allowed_q = 0;
double filtering_allowed_concentration = 0;
double filtering_allowed_day_concentration = 0;
double filtering_allowed_night_concentration = 0;
double efficiency = 0;


اینم دکمه ای که نتایج رو توی یه دیتا گرید ویو در یه فرم دیگه ارسال میکنه
private void button1_Click(object sender, EventArgs e) {
Prediction();

tabular_result f1 = new tabular_result(Concentration,
Filtering_allowed_concentration,
Filtering_allowed_day_concentration,
Filtering_allowed_night_concentration,
Filtering_allowed_q,
Efficiency,
Concentration_conservation,
Accumulation_Concentration , prediction_year,
annual_population, annual_power, day_sigma_z,
night_sigma_z, day_sigma_y, night_sigma_y, annual_q,
annual_day_concentration, annual_night_concentration,
mort_pop, morb_pop, mort_cost, morb_cost);
f1.Show();}

اینم تابع prediction هست
private void Prediction() {
for(int i = 0 ; i<prediction_year; i++)
////************************
mohasebat anjam mishe
//////**********************
mort_pop[i] = mortality_population;
morb_pop[i] = morbidity_population;
mort_cost[i] = mortality_cost;
morb_cost[i] = morbidity_cost;



Concentration[i] = concentration;
annual_day_concentration[i] = Day_concentration;
annual_night_concentration[i] = Night_concentration;
annual_population[i] = current_population;
day_sigma_y[i] = Day_Sigma_y;
day_sigma_z[i] = Day_Sigma_z;
night_sigma_y[i] = Night_Sigma_y;
night_sigma_z[i] = Night_Sigma_z;
annual_q[i] = Q;
annual_power[i] = total_power_year;
}
}

من هر راهی به ذهنم رسید امتحان کردم
اگه میشه بیشتر راهنماییم کنید :ناراحت:

دلتنگ اسمان
یک شنبه 23 شهریور 1393, 14:53 عصر
تمامی متغیرهای مربوطه (که در باتن1 استفاده میکنین) رو در همون رویداد یعنی قبل از فراخوانی متد Prediction(); مقداردهی اولیه کنین. بعد نتیجه رو بگین.

Maryam IT
یک شنبه 23 شهریور 1393, 15:08 عصر
توی جدول هیچی نشون نمیده
ببینید یه سری از این متغیرا از طریق ورودی هایی که کاربر وارد میکنه مقدار دهی میشن
وقتی قبل از فراخوانی تابع، مقدار دهی اولیه بشن همه ی چیزایی که کاربر وار کرده پاک میشه