Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 52
1

Подсчет количеств словосочетаний в предложении

22.11.2016, 15:24. Показов 3307. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть строка нужно найти в ней количество вхождения сочетания букв или слов.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        private void button1_Click(object sender, EventArgs e)
        { int b = 0;
            string s = textBox1.Text;
            char[] sep = { ' ' };
            string v = textBox2.Text;
            string[] mas = s.Split(sep, StringSplitOptions.RemoveEmptyEntries);
            string[] mas2 = v.Split(sep, StringSplitOptions.RemoveEmptyEntries);
            for (int j = 0; j < mas.Length; j++)
            {
                int i = 0;
                while (i < mas[j].Length)
                    if (mas[j][i] == v)
                     b = b + 1;
                
                    else
                        i++;
            }
 
            textBox3.Text = b.ToString();
 
        } 
        }
    }
подскажите как мне искать количество вхождений,просто я сижу и не могу понять как использовать цикл сравнения и что бы 2 строка то есть искомые символы не уходили за границу диапазона
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2016, 15:24
Ответы с готовыми решениями:

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

Подсчет определенных словосочетаний в тексте
Здравствуйте, Ломаю голову над вот такой задачей: Дано: ListOfWords = text = 'After work, I...

Подсчет количеств повторяющихся значений в массиве экземпляров
Всем привет! Не уверен, что пишу в нужны раздел, но все же... Есть массив( product prs )...

Определить количество словосочетаний " abc" в предложении
в предложении состоящем не более чем из 20 символов определить количество словосочетаний &quot; abc&quot; (...

28
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
22.11.2016, 15:32 2
Цитата Сообщение от sergeysl Посмотреть сообщение
количество вхождения сочетания букв или слов.
Кто куда входит и зачем?

Необходимо сопоставить 2 строки и найти количество совпадающих слов?
Т.е.: вот 3 строки:
1) Мама мыла раму шваброй
2) Папа мыл машину шваброй
3) Бабушка мыла шваброй пол
Сравниваем 1 и 2, совпадений 1.
Еще 2 строки
1) ффф фф фффф фф фф фф
2) фф фф фф фффф
Вопрос, тут 2 совпадения или 4?
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 52
22.11.2016, 15:34  [ТС] 3
в общем задание. Определить сколько входит заданное сочетание символов в заданною строку, и получить новую строку из заданного сочетания символов и числа их вхождения
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
22.11.2016, 15:40 4
sergeysl, Пример, заданное сочетание символов "рар", заданная строка "рар ыравырарыра ывдлыдвлрар".
Вывод "рар 3". Правильно я понимаю?
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 52
22.11.2016, 15:46  [ТС] 5
да правильно понимаешь

Добавлено через 6 минут
думаю на слова не надо разбивать
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
22.11.2016, 15:50 6
sergeysl, научу плохому:
C#
1
2
3
4
5
6
7
8
9
10
11
public static void Main()
{
     string str = "рар ыравырарыра ывдлыдвлрар";
     string find = "рар";
 
     Console.WriteLine(GetMatches(find, str));
 
     Console.ReadKey(false);
}
public static string GetMatches(string find, string str)
     => $"{find} {new Regex(find, RegexOptions.IgnoreCase).Match(str).Length}";
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 52
22.11.2016, 15:56  [ТС] 7
нам нельзя функции
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
22.11.2016, 16:04 8
C#
1
2
3
4
5
6
7
8
9
10
11
12
public string FirstTbText {ger {return textBox1.Text;}}
 
public string SecondTbText {ger {return textBox2.Text;}}
 
public string ThirdTbText { set { textBox3.Text = value;}}
      
private void button1_Click(object sender, EventArgs e)
{
    ThirdTbText = GetMatches(FirstTbText, SecondTbText);
}
public string GetMatches(string find, string str)
     => $"{find} {new Regex(find, RegexOptions.IgnoreCase).Match(str).Length}";
Добавлено через 56 секунд
sergeysl, что можно и почему методы запрещены?
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 52
22.11.2016, 16:06  [ТС] 9
Нам говорят как всегда только делать через методичку ) Циклы,условия.

Добавлено через 54 секунды
нам дали и объяснили функции но сказали типо учиться обходить без них. Я просто алгоритм не мому придумать(
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
22.11.2016, 16:12 10
Цитата Сообщение от sergeysl Посмотреть сообщение
while (i < mas[j].Length)
if (mas[j][i] == v)
b = b + 1;
else
i++;
В ТЗ, что это такое?) Объявлен как string[] mas...
Впечатление что там копипасты кодов, без понимания что нужно.

Добавлено через 1 минуту
Цитата Сообщение от sergeysl Посмотреть сообщение
нам дали и объяснили функции но сказали типо учиться обходить без них
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 52
22.11.2016, 16:16  [ТС] 11
да это взято с примера в методички)))

Добавлено через 1 минуту
Цитата Сообщение от EveKS Посмотреть сообщение
string[] mas.
использовалось для подсчета слов
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
22.11.2016, 16:27 12
а если так
C#
1
int count = (str.Length - str.Replace(find,"").Length)/find.Length;
?
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 52
22.11.2016, 16:53  [ТС] 13
так тоже не пройдет((((

Добавлено через 21 минуту
ну же подскажите алгоритм )))
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
22.11.2016, 17:08 14
тогда только в цикле перебирать и сравнивать...
вопрос, если ищем, например, "рар", в слове "рарар" это 1 или 2 совпадения?
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
22.11.2016, 17:12 15
Diamante, sergeysl, Кстати, самый простой цикл, убирать первыю букву в строке и проверять не равны-ли первые n букв искомому сочетанию, где n это длинна искомого сочетания символов. И искать пока длинна строки больше или равна n.
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
22.11.2016, 17:16 16
в задании еще и словосочетания вроде значились, поэтому, имхо, тупо перебор по всей длине сводной строки
сравнивать букву во входной строке с первой буквой искомой строки, если совпала, далее от этой буквы перебирать вплоть до длины искомой строки, ну а дальше итератор увеличить либо на 1 либо на длину искомой строки, взависимости от ответы на пост чуть выше

Добавлено через 1 минуту
EveKS, им же нельзя функции, как проверять?
0
309 / 317 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
22.11.2016, 17:23 17
Ох эти задания первого семестра, когда ничем нельзя пользоваться))

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
string text = "Есть строка нужно найти в ней количество вхождения сочетания букв или слов";
string searchPattern = "ния";
int occurrencesCounter = 0;
bool occurrences = false;
 
for (int textIndex = 0; textIndex <= text.Length - searchPattern.Length; textIndex++)
{
    occurrences = false;
    for (int patternIndex = 0; patternIndex < searchPattern.Length; patternIndex++)
    {
        if (text[textIndex + patternIndex] == searchPattern[patternIndex])
            occurrences = true;
        else
        {
            occurrences = false;
            break;
        }
    }
    if (occurrences)
    { 
        occurrencesCounter++;
        textIndex += searchPattern.Length - 1;
    }
}
 
Console.WriteLine(occurrencesCounter);
сейчас из строки "мамама" по поиску "мама" будет одно совпадение, если нужно, чтоб два(все вхождения), то нужно убрать textIndex += searchPattern.Length - 1;
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
22.11.2016, 17:26 18
Цитата Сообщение от Diamante Посмотреть сообщение
нельзя функции
тогда перебирать эти n букв... В итоге, это куча лишних дейсвий.

Другой вариант, перебираем символы строки, как только символ равен первому символу строки, проверяем следующие на совпадение, в одном цикле можно всё это сделать, без всяких двумерных массивов.
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
22.11.2016, 17:29 19
EveKS, я про двумерные массивы ничего и не говорил, лишь подсказал направление в котором ТСу следует двигаться, но sldp, уже и код выложил, собсно то что я и предлагал
про кучу лишних действий согласен, но что ж поделать
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
22.11.2016, 17:37 20
sergeysl,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
string str = "dd ghgdg hgdghg hgdh gdh gdhg hsgdhfs hg";
string find = " gd";
int count = 0;
 
for (int i = 0, j = 0; i < str.Length; i++)
{
     if (str[i] == find[0])
           j++;
     if (j == find.Length)
    {
        count++;
        j = 0;
   }
}
 
string result = $"{find} {count}";
 
Console.WriteLine(result);
Console.ReadKey(false);
Добавлено через 5 минут
Цитата Сообщение от Diamante Посмотреть сообщение
я про двумерные массивы ничего и не говорил
Это для ТС, он вытащил часть кода из методички, не понимая зачем.
sergeysl, Это было написано за 2-3 минуты...
0
22.11.2016, 17:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2016, 17:37
Помогаю со студенческими работами здесь

В предложении всавить количество символов в слове с четным количеством букв за словом, а с не четным количеств
Задание: В предложении всавить количество символов в слове с четным количеством букв за словом, а с...

Подсчет слов в предложении
Написала программу, но в ней есть ошибка. Самой найти не получается, программа считает знак...

Подсчёт частоты слов в предложении
Я в языке Haskell понимаю очень ничего! Есть задача написать прогу, которая в введённом...

Подсчет слов в каждом предложении
Вводится строка, программа должна подсчитать количество слов в каждом предложении . Как это...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru