واضح آرشیو وب فارسی:سایت ریسک: برنامه شمارش کاراکتر c# draria 21 آبان 1387, 19:47یه برنامه می خوام که یه جمله بگیره بعد بگه هر کاراکتر چند بار چاپ شده . مثلا Hello h 1 e 1 l 2 o1 :wink: the_king 21 آبان 1387, 21:26برنامه ای که یک جمله را گرفته و تعداد تکرار هر کاراکتر را چاپ کند. مثلا با وارد کردن عبارت Hello خروجی زیر را تولید کند : e 1 h 1 l 2 o 1 کد برنامه چنین خواهد بود : using System; using System.Collections.Generic; using System.Text; namespace CharCounter { class Program { static void Main(string[] args) { Console.Clear(); string text = Console.ReadLine(); int[] charset = new int[256]; for (int i = 0; i<text.Length; i++) if (text[i] < 256) charset[text[i]]++; for (int i = 0; i<256; i++) if (charset[i] > 0) Console.WriteLine(Convert.ToChar(i) + " " + charset[i]); Console.ReadKey(true); } } } draria 24 آبان 1387, 19:50برنامت خیلی متفاوت با برنامه استادمونه میتونی زحمت Tracesh رو بکشی the_king 24 آبان 1387, 20:25برنامت خیلی متفاوت با برنامه استادمونه میتونی زحمت Tracesh رو بکشی اگه قرار بود کد من شبیه کد استادتون باشه که الان من جای استادتون بودم. بخش اول کد برنامه ارتباطی با الگوریتم ندارد : using System; using System.Collections.Generic; using System.Text; namespace CharCounter { class Program { static void Main(string[] args) { صفحه نمایش را پاک می کنیم : Console.Clear(); یک رشته string را از کاربر دریافت کرده و در یک متغیر به نام text می نویسیم : string text = Console.ReadLine(); یک آرایه از نوع int می سازیم که برای هر کاراکتر بین 0 الی 255 (جمعا 256 کاراکتر) یک خانه در نظر گرفته است. int[] charset = new int[256]; در ادامه برنامه نشان خواهیم داد که چگونه از این آرایه برای مشخص کردن تعداد تکرار کاراکتر های 0 الی 255 استفاده کنیم. تعداد تکرار هر کاراکتر را در خانه مربوط به آن خواهیم نوشت، مثلا اگر کاراکتر A (کد اسکی ASCII کاراکتر A برابر 65 است) سه بار تکرار شود، در خانه [Charset[65 مقدار 3 را خواهیم نوشت. با متغیر i یک حلقه خواهیم ساخت که از اولین کاراکتر رشته text را تا آخرین کاراکتر رشته پیمایش کند : for (int i = 0; i<text.Length; i++) اگر کد کاراکتر اندیس i ام رشته text از 256 کمتر بود، پس جزو کاراکتر هایی است که می خواهیم تعداد تکرارشان را ذخیره کنیم : if (text[i] < 256) پس مقدار خانه مربوط به آن کاراکتر را در آرایه charset یک واحد افزایش می دهیم : charset[text[i]]++; وقتی اجرای حلقه به پایان می رسد، تعداد تکرار هر کاراکتر در درون آرایه charset مشخص شده است. بعضی از خانه های این آرایه صفر است، یعنی آن کاراکتر اصلا در رشته وجود نداشته است. با متغیر i حلقه ای می سازیم تا تمامی 256 خانه آرایه charset را از ابتدا تا انتها پیمایش کند : for (int i = 0; i<256; i++) اگر مقدار خانه اندیس i ام آرایه charset بزرگتر از صفر باشد، یعنی آن کاراکتر در رشته text وجود داشته : if (charset[i] > 0) و در چنین حالتی خود کاراکتری که کد اسکی ASCII اش i است ( (Convert.ToChar(i ) و تعداد تکرارش ( [Charset[i ) را در خروجی چاپ خواهیم کرد : Console.WriteLine(Convert.ToChar(i) + " " + charset[i]); وقتی اجرای حلقه به پایان می رسد، تعداد تکرار تمامی کاراکتر ها (به شرط بزرگتر بودن از صفر) چاپ شده اند. از کاربر می خواهیم که قبل از خروج از برنامه کلیدی را فشار دهد : Console.ReadKey(true); و برنامه خاتمه می یابد : } } } draria 25 آبان 1387, 20:02اگه قرار بود کد من شبیه کد استادتون باشه که الان من جای استادتون بودم. خوب مطمئنن شما از استاد ما بیشتر بلدی چون استاد ما خودش نتونست این رو بنویسه و بعد از یک جلسه اومد جواب داد چطوری اینقدر راحت برنامه می نویسی ؟ ما خودمون رو می کشیم یه خط هم به زور می نویسیم ولی خوب الان هرچی برنامه شما نوشتی یاد گرفتیم ولی اگر یه برنامه جدید بذارن جلوم بازم نمی تونم بنویسم Shahab_Helmi 04 آذر 1387, 16:18تنها راه قوی شدن برنامه نویسی برنامه نوشتنه!اولش برنامه های آسون برای آشنایی با دستورات و روش ها و بعدش نوشتن برنامه های سنگین! گیر کردن سر 1 برنامه و فکر کردن و پیدا کردن راه حل خیلی کمک می کنه!
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 7096]