Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программа подсчета букв на C#

27K
04 июля 2007 года
melon
7 / / 04.07.2007
Добрый день. Помогие пожалуйста со следующей задачей на C#:
Написать программу подсчета букв, встречающихся в слове. Т.е. нужно ввести в консоли любое слово, и в итоге программа должна отобразить массив из 2-х элементов: буква, количество.

Алгоритм действий по-моему таков:
1. Ввод слова
2. В цикле разбить слово на буквы и занести их в массив символьного типа.
3. Взять первый элемент из массива и в цикле посчитать сколько раз он встречается в слове, и так со всеми элементами.
242
04 июля 2007 года
Оlga
2.2K / / 04.02.2006
В FAQ'e раздела Студентам есть решение на С, просто вместо массива char* возмешь string. В общем решение будет без изменений, только функции вывода другие.
27K
05 июля 2007 года
melon
7 / / 04.07.2007
Да, я видел этот пример. Но написать на C# пока не получилось.
Что означает вот эта строка, и как ее предположительно можно написать на C#?
 
Код:
int counter[size_counter] = {0};
242
05 июля 2007 года
Оlga
2.2K / / 04.02.2006
Цитата: melon
Да, я видел этот пример. Но написать на C# пока не получилось.
Что означает вот эта строка, и как ее предположительно можно написать на C#?
 
Код:
int counter[size_counter] = {0};


в этой строке создаем массив счетчик размером size_counter и обнуляем его. В C# это выглядит так:

 
Код:
int[] counter = new [size_array];


обнулять массив в C# не надо, т.к. в C# дефолтное значение числовых массивов равно нулю(в С нету дефолтных значений, поэтому там надо).

[QUOTE=Help]The default value of numeric array elements is zero[/QUOTE]
27K
05 июля 2007 года
melon
7 / / 04.07.2007
Благодарю за разъяснение.
Но вот при компиляции выдает ошибку, связанную с типом переменной.

242
05 июля 2007 года
Оlga
2.2K / / 04.02.2006
Лучше код писать. И ошибку писать надо. Насколько я увидела, ты объявил массив типа string, это неправильно. Массив стринг - это массив строк, а тебе одна строка нужна, которую ты помоему не считываешь. Код:
 
Код:
counter[str]++;

это в корне неправильно, я такого не писала. Во первых str - это строка, а не символ, потом символ надо конвертировать в подходящий индекс: от 0 до 255 включительно. Вот код, должен работать, только не забудь результат напечатать:

 
Код:
string str;
str = Console.ReadLine();
int[] counter = new int[256];
for(int i = 0; i < str.Length; ++i)
   counter[Char.ToLower(str)-'a']++;
27K
06 июля 2007 года
melon
7 / / 04.07.2007
Исправил. Вот только программа просто считает общее количество введенных букв. А как написать, чтобы в результате выдавала количество для каждой буквы?

Код:
using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Введите слово");
            string str;
            str = Console.ReadLine();
            int[] counter = new int[256];
            for (int i = 0; i < str.Length; ++i)
                counter[Char.ToLower(str) - 'a']++;
                Console.Write("Результат:");
                Console.WriteLine(str.Length);
            }
            }
    }
242
06 июля 2007 года
Оlga
2.2K / / 04.02.2006
Код:
static void Main(string[] args)
        {
            string str;
            int size_counter = 256;//for english alphabet only
            Int32[] counter = new Int32[size_counter];
           
           
                Console.Write("Enter a string: ");
                str = Console.ReadLine();

                for (Int16 i = 0; i < str.Length; ++i)
//если в строке есть знаки пуктуации, то делаем проверку, что символ буква
                    if(Char.IsLetter(str))
                        ++counter[Char.ToLower(str) - 'a'];

                for (int i = 0; i < counter.Length; ++i)
                    if (counter > 0)
                        Console.WriteLine("{0} = {1}", ((char)('A' + i)), counter);
           
        }
27K
06 июля 2007 года
melon
7 / / 04.07.2007
Огромное спасибо! Все работает, только теперь нужно будет разобраться в некоторых вещах. Например, не знал о таком операторе, как Int32 и Int16
242
06 июля 2007 года
Оlga
2.2K / / 04.02.2006
Цитата: melon
Огромное спасибо! Все работает, только теперь нужно будет разобраться в некоторых вещах. Например, не знал о таком операторе, как Int32 и Int16


это не операторы, это типы данных.
Int16 - short
Int32 - int

можешь написать инт вместо Инт32, будет тоже самое. В полезных ссылках, есть ссылка на интернет-университет (самообразование). Почитай лекцию о типах данных, там на русском языке.

55K
22 декабря 2009 года
Mihon82
7 / / 22.12.2009
Цитата: Оlga
Код:
static void Main(string[] args)
        {
            string str;
            int size_counter = 256;//for english alphabet only
            Int32[] counter = new Int32[size_counter];
           
           
                Console.Write("Enter a string: ");
                str = Console.ReadLine();

                for (Int16 i = 0; i < str.Length; ++i)
//если в строке есть знаки пуктуации, то делаем проверку, что символ буква
                    if(Char.IsLetter(str))
                        ++counter[Char.ToLower(str) - 'a'];

                for (int i = 0; i < counter.Length; ++i)
                    if (counter > 0)
                        Console.WriteLine("{0} = {1}", ((char)('A' + i)), counter);
           
        }



Здравствуйте, подскажите, что нужно в этой программе корректировать, чтобы количество букв считалось в тексте, который находится в текстовом файле.... Я файл могу открыть, в консоле могу видеть, что там написано, но как буквы сосчитать??? Подскажите....

55K
07 января 2010 года
Mihon82
7 / / 22.12.2009
Здравствуйте еще раз. В общем, я просто сбился - без помощи не обойтись - помогите советом... :( Как мне заставить считать буквы в файле? Должно быть как-то просто, а у меня очень сложно выходит....
242
07 января 2010 года
Оlga
2.2K / / 04.02.2006
Цитата: Mihon82
Здравствуйте еще раз. В общем, я просто сбился - без помощи не обойтись - помогите советом... :( Как мне заставить считать буквы в файле? Должно быть как-то просто, а у меня очень сложно выходит....



вот и покажи что выходит, а то телепаты в отпуске...

если задание аналогичное, считывай построчно с файла строки в цикле, сохраняй во переменной стринг, а дальше все тоже самое ....

а если надо узнать количество символов в файле, то в Си шарп вообще стандартная функция для этого дела имеется.

55K
08 января 2010 года
Mihon82
7 / / 22.12.2009
Цитата: Оlga
вот и покажи что выходит, а то телепаты в отпуске...

если задание аналогичное, считывай построчно с файла строки в цикле, сохраняй во переменной стринг, а дальше все тоже самое ....

а если надо узнать количество символов в файле, то в Си шарп вообще стандартная функция для этого дела имеется.



Все, спасибо, это сообщение мне помогло - я не догадался переменную дать - в общем, спасибо!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог