PDA

View Full Version : سوال: محاسبه فراوانی داده ها در جلوی هر داده



10jafar
جمعه 08 فروردین 1393, 17:32 عصر
سلام
من میخوام یه برنامه بنویسم که اعدادی رو که از RichTextBox دریافت میکنیم رو فراوانی هر کدومشون رو حساب کنیم و مقابل اون عدد نوشته بشه. مثلا اگر اعداد 1و1و2و3و3و4و4و4 رو وارد کنیم نتیجه مشابه زیر بشه:
1 2
2 1
3 2
4 3
که ستون اول اعداد ورودی و روبروش فراوانی هر کدوم رو نوشته.
خط اول کد رو هم نوشتم!!!!!!!
string[] ar = richTextBox1.Text.Split(new char[] { '\n' });

winner1
جمعه 08 فروردین 1393, 20:25 عصر
(from data in ar where ar[i]==data select data(.count()

10jafar
شنبه 09 فروردین 1393, 00:01 صبح
(from data in ar where ar[i]==data select data(.count()

فکر کنم منظور منو متوجه نشدین! منظور من اینه که اعداد ورودی به ترتیب مرتب بشه بعد تکراری هاش حذف بشه بعدش میزان تکرار هر عدد(فراوانی) روبروی اون عدد نوشته بشه.

khokhan
شنبه 09 فروردین 1393, 00:10 صبح
سلام
من میخوام یه برنامه بنویسم که اعدادی رو که از RichTextBox دریافت میکنیم رو فراوانی هر کدومشون رو حساب کنیم و مقابل اون عدد نوشته بشه. مثلا اگر اعداد 1و1و2و3و3و4و4و4 رو وارد کنیم نتیجه مشابه زیر بشه:
1 2
2 1
3 2
4 3
که ستون اول اعداد ورودی و روبروش فراوانی هر کدوم رو نوشته.
خط اول کد رو هم نوشتم!!!!!!!
string[] ar = richTextBox1.Text.Split(new char[] { '\n' });
حالا چرا string ?????????????:متفکر:


var numbers = new int[] { 1, 1, 1, 2, 2, 2, 2, 3, 3, 9, 9, 16, 16 };

var counts = numbers
.GroupBy(item => item)
.Select(grp => new { Number = grp.Key, Count = grp.Count() });

ویاینکه اینطوری باشه ::متفکر:


var array = new int[] {1,1,1,2,2,2,2,3,3,9,9,16,16};

var query = from x in array
group x by x into g
orderby count descending
let count = g.Count()
select new {Value = g.Key, Count = count};

foreach (var i in query)
{
Console.WriteLine("Value: " + i.Value + " Count: " + i.Count);
}

10jafar
شنبه 09 فروردین 1393, 00:44 صبح
حالا چرا string ?????????????:متفکر:


var numbers = new int[] { 1, 1, 1, 2, 2, 2, 2, 3, 3, 9, 9, 16, 16 };

var counts = numbers
.GroupBy(item => item)
.Select(grp => new { Number = grp.Key, Count = grp.Count() });

ویاینکه اینطوری باشه ::متفکر:


var array = new int[] {1,1,1,2,2,2,2,3,3,9,9,16,16};

var query = from x in array
group x by x into g
orderby count descending
let count = g.Count()
select new {Value = g.Key, Count = count};

foreach (var i in query)
{
Console.WriteLine("Value: " + i.Value + " Count: " + i.Count);
}
درسته که string تعریف کردم چون richtextbox این طوری دریافت میکنه ولی بعدش به متغیر مناسب تبدیلش کردم!از این بابت خیالت راحت.ولی نکته ای که این جاست اینه که من قبلا مشابه این سوررس رو از اینترنت گرفته بودم ولی موفق نشدم. میشه برنامش که تو حالت کلی هر عددی که کاربر میده رو دریافت کنه رو فایلش رو قرار بدی؟ممنون میشم:تشویق:

hadi0x7c7
شنبه 09 فروردین 1393, 01:50 صبح
خب شما یه دیکشنری بگیر از نوع <int,int> بعد هر عددی که میبین dict[mynum]++ w رو انجام بده.

khokhan
شنبه 09 فروردین 1393, 02:08 صبح
درسته که string تعریف کردم چون richtextbox این طوری دریافت میکنه ولی بعدش به متغیر مناسب تبدیلش کردم!از این بابت خیالت راحت.ولی نکته ای که این جاست اینه که من قبلا مشابه این سوررس رو از اینترنت گرفته بودم ولی موفق نشدم. میشه برنامش که تو حالت کلی هر عددی که کاربر میده رو دریافت کنه رو فایلش رو قرار بدی؟ممنون میشم:تشویق:
نمونه از کدهایی که براتون دادم :لبخند:
117403
البته مدتی است که امکان آپلود فایل در این سایت رو نداریم اما از این لینک (http://uplod.ir/iwzdvuowcpaw/richtext_coun.rar.htm) می تونی دریافت کنی