PDA

View Full Version : مبتدی: چگونگی جمع اعداد موجود در آرایه



sajjad1365
چهارشنبه 11 آذر 1388, 16:49 عصر
سلام.
من تازه با سی شارپ کار میکنم.
یه کد برای جمع اعداد با ارایه میخواستم. (که تعداد عناصر و مقادیر ارایه رو کاربر بده)

ممنون

mehdi.mousavi
چهارشنبه 11 آذر 1388, 18:27 عصر
سلام. خیلی سخت بود؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟

سلام.
نه. اما نوشتنش زور داره! شما باید کتاب بخرید، بخونید، سعی کنید خودتون یه کدی بنویسید که اینکارو کنه، بعد که دیدید نمیشه، اینجا بگید "من اینطوری نوشتم، اما کدم مشکل داره! یکی بهم کمک کنه"! نه اینکه ... مردم بیکار که نیستن واسه شما عناصر آرایه جمع بزنن!

موفق باشید.

sajjad1365
چهارشنبه 11 آذر 1388, 18:40 عصر
سلام.
مثل اینکه حرفم خیلی تند بود .اره؟
مهدی جان من هم نگفتم بیکارید.(من کار با توابع رو خواستم که اگه با این مثال باشه بهتره). من خودم هم بیکار نشدم و یه چیزهایی نوشتم.ولی نه اینکه سی شارپ برای یک فاصله خطا میگیره واسه همین نتونستم کاری کنم (چون چند روزیه که سی شارپ رو شروع کردم)!!!!
خلاصه اگه راهنمایی کنین ممنون میشم.
باز هم اگه ناراحت شدید ببخشید........

softkadeh
چهارشنبه 11 آذر 1388, 18:55 عصر
vb کار میکردی تا حالا ؟

sajjad1365
چهارشنبه 11 آذر 1388, 19:18 عصر
چطور؟
اره از سی شارپ بهتر بلدم.

mehdi.mousavi
چهارشنبه 11 آذر 1388, 19:20 عصر
سلام. مثل اینکه حرفم خیلی تند بود .اره؟ مهدی جان من هم نگفتم بیکارید.(من کار با توابع رو خواستم که اگه با این مثال باشه بهتره). من خودم هم بیکار نشدم و یه چیزهایی نوشتم.ولی نه اینکه سی شارپ برای یک فاصله خطا میگیره واسه همین نتونستم کاری کنم (چون چند روزیه که سی شارپ رو شروع کردم)!!!! خلاصه اگه راهنمایی کنین ممنون میشم. باز هم اگه ناراحت شدید ببخشید........

خیر. درخواستتون منطقی بود، اما پافشاری روی درخواستتون غیر منطقی! "کسی نیست کمک کنه"، "فوری فوری"، "تو رو خدا یکی جواب بده" و و و ... اینها عباراتی هستن که مدام در بخشهای متفاوت این سایت میبینید و این واقعا ناراحت کننده هستش.

در هر حال، کدی که نوشتید رو بذارید، تا من تصحیح کنم.

موفق باشید.

alireza_tavakol
چهارشنبه 11 آذر 1388, 19:29 عصر
با عرض پوزش از اساتید محترم
من چون دوست دارم همیشه راحت به جواب برسم ، جواب این دوست عزیز رو ارسال کردم

public int sum_of_array(int member)
{
int[] array = new int [member];

int result=0;
for (int i = 0; i < member; i++)
result += array[i];

return result;
}

توی این کد فرض بر این بوده که پر کردن آرایه رو بلد هستین برای همین فقط سوالتون رو پاسخ دادن ( تعداد اعضا را از کاربر گرفته و عناصر رو با هم جمع زده )

موفق باشید

sajjad1365
چهارشنبه 11 آذر 1388, 19:38 عصر
سلام اقا مهدی .به نظرم خیلی عصبانی هستید!
در هر صورت خیلی ممنون. بازم شما
این تابع اصلی (میانگین):



public static float avrage(float[] a)
{

float sum = 0;
for (int i = 0; i < a.Length; i++)
sum = sum + a[i];
float ave = sum / a.Length;
return ave;

}

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



private void button1_Click(object sender, EventArgs e)
{

float []x = new float [Convert.ToInt32(textBox1.Text)];
for (int i = 0; i < x.Length; i++)
{
x[i] = 0;
comboBox1.Items.Add(i);
}


یه کامند دیگه برای مقدار دهی که خطا میده:


private void button2_Click(object sender, EventArgs e)
{

int i;

listBox1.Items.Add(textBox2.Text);
i = comboBox1.SelectedIndex;

x[i] = float.Parse(textBox2.Text);

}

ممنون

mehdi.mousavi
پنج شنبه 12 آذر 1388, 00:20 صبح
دوستان نمیگن چیکار باید کنم.؟ قسمت مقدار دهی ارایه خطا میده

سلام.
کدهایی که نوشتید جالب نیست... اول از تابع Average شروع می کنم... من این تابع رو به شکل زیر تغییر دادم:


public float Average(params float[] a)
{
float sum = 0;
for (int i = 0; i < a.Length; sum += a[i], i++) ;
return sum / a.Length;
}


به این ترتیب اگر خواستید میتونید Average رو اینطوری هم Call کنید:

float avg = Average(1, 2, 3);

میتونید آرایه ای از float ها هم بهش پاس کنید که بازم براتون میانگین رو محاسبه و پاسخ رو بهتون بر میگردونه.

بعد میریم سراغ تابع بعدی... منظورم button1_Click هستش. این تابع واقعا وحشتناکه! اینطور بنظر میرسه که شما میخواهید یک Array بطول 'عدد وارد شده در textBox1' ایجاد کنید، مقادیرش رو صفر گذاشته و بعد اعداد 0 تا 'عدد وارد شده در textBox1' رو در ComboBox اضافه کنید. (که چی؟ متوجه نمیشم!)

در تابع آخر دیگه آشفتگی به اوج خودش میرسه.... من واقعا از این کدهایی که نوشتید سر در نمیارم. اما چون قول داده بودم که اگر کد بذارید کمکتون می کنم، من این کد رو براتون می نویسم:

ابتدا یک TextBox بذارید روی صفحه و اسمش رو بزنید txtNumbers. سپس کد زیر رو به برنامه اضافه کنید:

public float Average(params float[] a)
{
float sum = 0;
for (int i = 0; i < a.Length; sum += a[i], i++) ;
return sum / a.Length;
}

public float GetInputAverage(string input)
{
List<float> numbers = new List<float>();

string[] tokens = input.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string token in tokens)
numbers.Add((float)Convert.ToDouble(token.Trim())) ;

return Average(numbers.ToArray());
}

private void button1_Click(object sender, EventArgs e)
{
string input = this.txtNumbers.Text;
if (!string.IsNullOrEmpty(input))
MessageBox.Show(string.Format("Average:{0}", GetInputAverage(input)));
}


حالا توی TextBox ای که رو صفحه گذاشتید، چند تا عدد بزنید و اونا رو با کاما از هم جدا کنید. مثلا:

1, 2, 5.76, 5.965, 24

و سپس کلید button1 رو فشار بدید. میانگین اعداد مزبور رو در یک MessageBox خواهید دید.

موفق باشید.

pourya_comphard
پنج شنبه 12 آذر 1388, 18:14 عصر
سلام
وقت نداشتم سری نوشتمش

sajjad1365
پنج شنبه 12 آذر 1388, 18:17 عصر
سلام. ممنون مهدی جان که کمک میکنی.
من combobox روکه گذاشتم برای اندیس ارایه است.
میخوام هر وقت که خواستم عدد مربوطه رو تو اندیس مورد نظر بذارم.
همچنین اعداد رو به صورت جداگانه (تک تک) برا اندیس ها وارد کنم.
تشکر

sajjad1365
پنج شنبه 12 آذر 1388, 23:37 عصر
باز هم سلام.
ممنون از دوستان که راهنمایی میکنن.
لطفا میگین کدی که توی buton نوشتم چرا خطا میده.؟
من فقط میخوام با این دکمه عناصر را در اندیس ها ثبت کنم ...خطا میده

private void button2_Click(object sender, EventArgs e)
{

int i;
listBox1.Items.Add(textBox2.Text);
i = comboBox1.SelectedIndex;
x[i] = float.Parse(textBox2.Text);
}

nasa1797
پنج شنبه 19 آبان 1390, 16:43 عصر
سلام من با آرایه ها توی سی شارپ مشکل دارم .راستش من میخوام توی یه حلقه k تا آرایه با اندازه 5 درست کنم .کسی میتونه کمکم کنه؟