Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
fotl
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 2
#1

Определить частоту, с которой встречаются в тексте различные буквы русского алфавита

29.12.2013, 23:57. Просмотров 3497. Ответов 4
Метки нет (Все метки)

Ребята выручайте Решите задачи !!! Буду премного благодарен!!!

1. Задан текст, содержащий не более 255 символов. Определить частоту, с которой встречаются в тексте различные буквы русского алфавита (в долях от общего количества букв)
2. Назовем сложностью предложения сумму количества слов и знаков препинания. Определить сложность заданного предложения.
3. Для хранения текста в сжатом виде найти часто повторяющиеся последовательности из двух букв и заменить их кодом. В качестве кода использовать символы, не встречающиеся в тексте. Составить так же таблицу кодов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2013, 23:57
Ответы с готовыми решениями:

Определить частоту, с которой встречаются в тексте различные буквы русского алфавита
задан текст содержащий не более 255 символов.Определить частоту, с которой...

Заполнить прямоугольник Полибия, в котором нужно отобразить все буквы русского алфавита от а до я и от А до Я
Доброе время суток, форумчане! Помогите решить проблему! Дело жизни и...

Написать программу, которая ждет ввода буквы русского алфавита и в зависимости от этого определяет гласная или согласная
Написать программу, которая ждет ввода буквы русского алфавита и в зависимости...

В данном тексте удвоить все буквы латинского алфавита
C# В данном тексте удвоить все буквы латинского алфавита.

Написать, какие буквы и сколько раз встречаются в заданном тексте
Строка, содержащая произвольный русский текст, состоит не более чем из 200...

4
natrox
12 / 16 / 5
Регистрация: 13.04.2011
Сообщений: 148
30.12.2013, 05:42 #2
1. Смотрите в сторону http://ru.wikipedia.org/wiki/ASCII и стандартного метода получения кода символа, вот тема есть Вывести код символа. Один цикл и дело в шляпе
2. если слова разделяются пробелами то все просто, считаете после каждой последовательности символов пробел как разделитель или знак препинания как разделитель. по поводу знаков препинания можно создать массив со знаками препинания и сравнивать символ строки со всеми элементами массива.
3. делаете поиск по тексту пары символов, если нашли больше n совпадений, то заменяете на какой-то код(допустим 'ab'='#12') и заносите пару в массив, этот массив и будет таблицей кодов.
0
мфт
2 / 2 / 1
Регистрация: 17.02.2013
Сообщений: 63
02.01.2014, 02:14 #3
вот решение к первой задаче
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static void Main(string[] args)
        {
            string rus = "йцукенгшщзхъфывапролджэячсмитьбю";
            char[] rusmas = rus.ToCharArray();
            Console.Write("Введите строку: ");
            char[] str = Console.ReadLine().ToCharArray();
            int counter = 0;
            int length = 0;
            for (int i = 0; i < str.Length; i++)
            {
                for (int j = 0; j < rusmas.Length; j++)
                {
                    if (str[i] == rusmas[j])
                    {
                        counter++;
                    }
                }
            }
            double x = (double)counter / str.Length;
            Console.Write("Частота встречаемости: {0}", x);
            Console.ReadLine();
        }
переменную length можно удалить
1
rattrapper
foo();
864 / 568 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
02.01.2014, 04:07 #4
Цитата Сообщение от fotl Посмотреть сообщение
Задан текст, содержащий не более 255 символов. Определить частоту, с которой встречаются в тексте различные буквы русского алфавита (в долях от общего количества букв)
чуть заумно вышло
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
 
static class Program
{
    static void Main(string[] args)
    {
        string text = Console.ReadLine();
        foreach(var e in text.CharRatio())
        {
            Console.Write("{0} - {1}\t", e.Key, e.Value);
        }
        Console.ReadKey();
    }
    public static Dictionary<char, int> CharCount(this string text)
    {
        Dictionary<char, int> dic = new Dictionary<char, int>();
        for (char c = 'А'; c <= 'Я'; c++)
        {
            dic.Add(c, 0);
        }
        var temp = text.ToUpper().Where(dic.Keys.Contains);
        return dic.Select(a => new KeyValuePair<char, int>(a.Key,
            temp.Where(b => b.Equals(a.Key)).Count())).ToDictionary(a =>
            a.Key, a => a.Value);
    }
    public static Dictionary<char, double> CharRatio(this string text)
    {
        return text.CharCount().Select(a => new KeyValuePair<char, double>(
            a.Key, (double)a.Value / text.Length)).ToDictionary(a =>
            a.Key, a => a.Value);
    }
}


Добавлено через 6 минут
Цитата Сообщение от fotl Посмотреть сообщение
Назовем сложностью предложения сумму количества слов и знаков препинания. Определить сложность заданного предложения.
тут норм вроде
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
 
static class Program
{
    static void Main(string[] args)
    {
        string text = Console.ReadLine();
        Console.WriteLine(text.Difficulty());
        Console.ReadKey();
    }
    public static int Difficulty(this string text)
    {
        char[] punkt = new char[] { ' ', ';', ':', ',', '.', '?', '!' };
        return text.Split(punkt, StringSplitOptions.RemoveEmptyEntries).Count() +
            text.Count(punkt.Skip(1).Contains);
    }
}


Добавлено через 40 минут
Цитата Сообщение от fotl Посмотреть сообщение
Для хранения текста в сжатом виде найти часто повторяющиеся последовательности из двух букв и заменить их кодом. В качестве кода использовать символы, не встречающиеся в тексте. Составить так же таблицу кодов
и снова заумный кодишко
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
 
static class Program
{
    static void Main(string[] args)
    {
        string text = Console.ReadLine();
        Dictionary<char, char> code;
        Console.WriteLine(ZIP(text, out code));
        Func<char, string> two = a => a.ToString() + a.ToString();
        for (int i = 0; i < text.Length; i++)
            if (code.ContainsKey(text[i]))
                text = text.Remove(i, 1).Insert(i, two(code[text[i]]));
        Console.WriteLine(text);
        Console.ReadKey();
    }
    public static string ZIP(this string text, out Dictionary<char, char> code)
    {
        code = new Dictionary<char, char>();
        for (int i = 0; i < text.Length; i++)
        {
            if (i < text.Length - 1 && text[i] == text[i + 1])
            {
                char key = (char)1;
                if (code.Values.Contains(text[i]))
                    key = code.First(a => text[i] == a.Value).Key;
                else
                {
                    while (text.Contains(key) || code.Keys.Contains(key))
                        key++;
                    code.Add(key, text[i]);
                }
                text = text.Substring(0, i) + key.ToString() +
                    text.Substring(i + 2, text.Length - i - 2);
            }
        }
        return text;
    }
}


Добавлено через 8 минут

Не по теме:

задания мне понравились


пиши, если что не так, могут быть ошибки
0
pycture
1172 / 560 / 85
Регистрация: 20.09.2012
Сообщений: 1,814
Завершенные тесты: 3
02.01.2014, 09:50 #5
Цитата Сообщение от rattrapper Посмотреть сообщение
чуть заумно вышло
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
 
namespace A
{
    static class Program
    {
        static double[] Freq(string s)
        {
            var result = new double['Я' - 'А' + 1];
            foreach (var c in s.ToUpper()) 
                if ((c >= 'А') && (c <= 'Я')) result[c - 'А']++;
            for (int i = 0; i < result.Length; i++) 
                result[i] /= s.Length;
            return result;
        }
 
        static void Main(string[] args)
        {
            string text = "Задан текст, содержащий не более 255 символов. Определить частоту, с которой встречаются в тексте различные буквы русского алфавита (в долях от общего количества букв)";
            var freq = Freq(text);
            for (int i = 0; i < freq.Length; i++)
                Console.Write("{0} - {1:0.0000}\t", (char)(i + 'А'), freq[i]);
            Console.ReadKey();
        }
    }
}
2
02.01.2014, 09:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2014, 09:50

Даны 2 последовательности целых чисел. В каждой из них встречаются только различные числа. Определить сколько и какие ч
Даны 2 последовательности целых чисел. В каждой из них встречаются только...

Определить, сколько раз в тексте встречаются заданные слова
Help, я вообще не успеваю Определить, сколько раз в тексте встречаются...

Составить алгоритм решения ребуса РАДАР=(Р+А+Д)^4 (различные буквы означают различные цифры, старшая - не 0).
я знаю что на С++ это должно быть так... void main () { char g ;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru