PDA

View Full Version : مبتدی: طریقه نوشتن برنامه ای که 20 عدد را گرفته میانگین را حساب کند چه جوری هست؟



msafari
دوشنبه 02 اردیبهشت 1392, 20:15 عصر
سلام دوستان من مبتدی هستم
طریقه نوشتن برنامه ای که 20 عدد را گرفته میانگین را حساب کند چه جوری هست ممنون میشم کمکم کنید

sobhmoud
دوشنبه 02 اردیبهشت 1392, 20:35 عصر
سلام
تو باید یک تکست باکس بذاری و یک آرایه سراسری تعریف کنی که 20 عدد رو می گیره بعد تو ایونت ها درقسمت textchang بنویسی اگه کاربر کلید اینتر رو زد عدد داخل تکست باکس به آرایه اضافه کن بعدشم با یک دکمه میانگین ارایه رو حساب کن
اینم کد تو تکست باکست:
int[] a = new int[20];
int b = 0;
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (a<20)
{
a[b] = textBox1.Text;
textBox1.Clear;
b++;
}
}

امیدوارم اشتباه نکرده باشم دوستان اگه راه حل بهتری دارند بذارند استفاده کنیم

danialafshari
دوشنبه 02 اردیبهشت 1392, 20:36 عصر
سلام
کاری نداره
بهتره خودتون درستش کنید
اگر این چنین چیزهایی رو بیارید از بقیه بپرسید که باید یک سایت از سوالات شما بزنند چون فقط شما در نقش تایپیست هستید
موفق باشید

-------------

int[] a = new int[20];
int b = 0;
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (a<20)
{
a[b] = textBox1.Text;
textBox1.Clear;
b++;
}
}
آقای sobhmoud
مطمئنید کدتون درسته ؟ :متفکر:
توی TextChanged که e.keyCode نداره
تو شرط a رو همانند int مقایسه می خواید بکنید در صورتی که int[] است و آرایه هست !
از حلقه باید استفاده کرد

complexcoding
دوشنبه 02 اردیبهشت 1392, 20:40 عصر
يه تكس باكس بذار با يه دكمه با يك ليبل بعد رو فرم خالي دو بار كليك كن اينو بنويس:
int a=0;
int b=0;
double c=0;
بعد رو دكمه دوبار كليك كن و اينو بنويس:
a = a + Convert.tostring(TextBox1.text);
بعد يه دكمه ديگه بذار روش دوبار كليك كن اينو بنويس:
label1.text = Convert.ToString(a / b);
بعد نتيجه رو ليبل نمايش داده مي شه.
نكته: بزرگي و كوچيكي حروف در كدهاي من رعايت نشده به اين نكته در محيط ويژوال استوديو دقت كن .

msafari
سه شنبه 03 اردیبهشت 1392, 18:25 عصر
سلام دوستان این کدی که دادید اصلن نداه if (e.KeyCode == Keys.Enter)
کجا باید بزنمش

sobhmoud
سه شنبه 03 اردیبهشت 1392, 19:56 عصر
اره از همه غذر خواهم واقعا ببخشید کدم اشتباه بود بازم معذرت

complexcoding
سه شنبه 03 اردیبهشت 1392, 20:10 عصر
اره از همه غذر خواهم واقعا ببخشید کدم اشتباه بود بازم معذرت
داداش اشكال نداره كد من كه درسته ! مگه اينجا فقط يه نفر كمك كرده اين همه كد... مي تونه با يه شرط ساده تو كد من بعد از 20 تا مقدار گرفتن خروجي ميانگين رو حساب كنه.

uniqueboy_ara
سه شنبه 03 اردیبهشت 1392, 20:34 عصر
این 3تا رو به فرم اضافه کن ( با اسم های پیش فرض) Lable, TextBox, Button
بعدش این کد رو بنویس:
public partial class Form1 : Form
{
List<int> NUMBERS;
public Form1()
{
InitializeComponent();
NUMBERS = new List<int>();
}

private void button1_Click(object sender, EventArgs e)
{
NUMBERS.Add(int.Parse(textBox1.Text));
label1.Text = string.Format("{0} Item(s) Remaining...", 20 - NUMBERS.Count());
textBox1.Clear();
if (NUMBERS.Count() == 20)
{
label1.Text = string.Format("Average is: {0}", NUMBERS.Average());
textBox1.Enabled = button1.Enabled = false;
}
}
}

tooraj_azizi_1035
سه شنبه 03 اردیبهشت 1392, 21:28 عصر
List<int> grades = new List<int> { 78, 92, 100, 37, 81 };

double average = grades.Average();

Console.WriteLine("The average grade is {0}.", average);

// This code produces the following output:
//
// The average grade is 77.6.

danialafshari
سه شنبه 03 اردیبهشت 1392, 21:39 عصر
می تونستم در پست 3 کد رو براش بنویسیم ولی هدف یادگیری بود...

arash691
سه شنبه 03 اردیبهشت 1392, 22:50 عصر
برنامه ای که میانگین اعداد دریافتی را چاپ میکند

msafari
سه شنبه 03 اردیبهشت 1392, 22:55 عصر
ممنون از همه شما دوستان گلم

gwbasic
سه شنبه 03 اردیبهشت 1392, 23:08 عصر
من هم از کمکی که جمیع دوستان در حل تمرین این دوستمون کردن تشکر می کنم. انشاا... در فرصت بعدی من پیش قدم شم زودتر از بقیه بتونم تمرین شما رو حل کنم. ببینم می تونم!

Mahmoud.Afrad
چهارشنبه 04 اردیبهشت 1392, 12:59 عصر
جونم!!! الان اين يعني مسخره كردن ما بود ديگه؟ :عصبانی:
---------------------------
ببخشيد ديگه در حد توان خودمون كمك كرديم اي استاد خيلي بزرگگگگگگگ
حرف آقای gwbasic (http://barnamenevis.org/member.php?25140-gwbasic) فقط در حد یادآوری قوانین سایت بود. بالاخره لازمه بعد از این همه پاک کردن تاپیک ها، اینطوری قوانین رو گوشزد کنند.

msafari
چهارشنبه 04 اردیبهشت 1392, 21:30 عصر
ممنونم از همه دوستان عزیزم من چه جور باید کد بزنم که 20 تاعدد از کاربر بگیره ؟

erfan_urchin
چهارشنبه 04 اردیبهشت 1392, 22:19 عصر
شما میتونی برای این کار از کد زیر استفاده کنی
int number = 0, count = 0;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// عدد اسکی Enter برابر 13 هستش
if (e.KeyChar == 13)
{
try
{
number += Convert.ToInt16(textBox1.Text);
textBox1.Text = "";
count++;
}
catch { }
}
if (count == 20)
MessageBox.Show("میانگین = " + (number / 20));
}
اون try catch رو برای این گذاشتم که اگه کاربر تکستی وارد نکرد و enter رو فشار داد ارور نده
اگرم میخوای صدای دینگی که بعد از هر بار زدن enter نیاد داخل شرط اول این کد رو بزار
e.Handled = true;
یعنی کد رو به شکل زیر تغییر بده
int number = 0, count = 0;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// adad ascii Enter = 13
if (e.KeyChar == 13)
{
e.Handled = true;
try
{
number += Convert.ToInt16(textBox1.Text);
textBox1.Text = "";
count++;
}
catch { }
}
if (count == 20)
MessageBox.Show("میانگین = " + (number / 20));
}

msafari
چهارشنبه 04 اردیبهشت 1392, 22:33 عصر
if (e.KeyChar == 13) این کدو قبول نمیکنه خط قرمز زیرش میزنه چکار کنم

Majid.Stu66
چهارشنبه 04 اردیبهشت 1392, 23:31 عصر
با سلام و خسته نباشید خدمت همه دوستان
دوست عزیز msafari اگه واقعا مبتدی هستی و می خوای برنامه نویسی یاد بگیری پیشنهاد می کنم چنین برنامه های راحتی رو خودت با کمی فکر کردن بنویسی .
این رو نگفتم از دستم گله مند شی.
من کد دوستمون erfan_urchin رو کمی تغییر دادم البته امیدوارم راضی باشه .
روی فرم یه جعبه متن هست که کاربر عدد رو وارد می کنه و کلید اینتر رو می زنه ، زیر جعبه متن هم یه برچسب قرار دادم تا کاربر تعداد عدد های وارد شده رو بدونه و پایانش هم که مشخصه .


int number = 0, count = 0;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13 || Char.IsDigit(e.KeyChar))
{
e.Handled = false;
if (e.KeyChar == 13 && textBox1.Text!=String.Empty)
{
number += Convert.ToInt16(textBox1.Text);
textBox1.Text = "";
count++;
label1.Text = "Number Count : " + count;

}
}
else
{
e.Handled = true;
}
if (count == 20)
{
MessageBox.Show("میانگین = " + (number / 20));
number = 0;
count = 0;
label1.Text = "Number Count : 0 ";
}
}

ارسال کد شاید مغایر گفته های بالام باشه ولی سعی کن خودت ماهیگری یاد بگیری و از دوستان راهنمایی بخوای.
برای اطمینان :
وقتی یه پروژه درست می کنی یه TextBox رو روی فرم قرار بده و یک Label.
کد بالا رو در قسمت کد برنامه وارد کن . در حالت design روی تکست باکس کلیک کن بعد برو قسمت پراپرتی یه علامت صاعقه می بینی روش کلیک کن و رویداد کی پرس رو انتخاب و در لیست کشویی تنها گزینه موجود رو انتخاب کن. بعد برنامه رو اجرا کن.
موفق باشی

erfan_urchin
چهارشنبه 04 اردیبهشت 1392, 23:40 عصر
if (e.KeyChar == 13) این کدو قبول نمیکنه خط قرمز زیرش میزنه چکار کنم
برای اینه که شما باید این کد رو در رویداد textBox1_KeyPress بنویسی اما احتمالا شما داری تو یک رویداد دیگه مثلا textBox1_TextChanged مینویسی


من کد دوستمون erfan_urchin رو کمی تغییر دادم البته امیدوارم راضی باشه .
خواهش میکنم ، اختیار دارین