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

Процедура, разделяющая исходный текст на предложения

23.02.2016, 11:44. Показов 3701. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите процедуру, разделяющую исходный текст на предложения. Для представления текстов используйте класс Char[]. Допустим, каждые слов 8-9 ставить точку и начинать с большой буквы.

незаконные приобретение, хранение, перевозка, изготовление, переработка без цели сбыта наркотических средств, психотропных веществ или их аналогов в значительном размере, а также незаконные приобретение, хранение, перевозка без цели сбыта растений, содержащих наркотические средства или психотропные вещества, либо их частей, содержащих наркотические средства или психотропные вещества, в значительном размере.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2016, 11:44
Ответы с готовыми решениями:

Написать процедуру, разделяющую исходный текст на предложения, используя метод StringBuilder
Нужно написать процедуру, разделяющую исходный текст на предложения, используя класс StringBuilder. У меня ошибка в строчке lines =...

Процедура проверяющая является ли исходный текст правильно построенным целым числом
Здравствуйте, прошу помощи в решении данной задачи, начал изучать C# и не знаю как сделать. Условие:"Напишите процедуру IsInt,...

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

3
418 / 316 / 241
Регистрация: 29.05.2010
Сообщений: 796
Записей в блоге: 1
23.02.2016, 12:56
garnier,
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using System.Linq;
using System.Text;
 
 
class Program
{
    public static void Main()
    {
        string data =
            @"незаконные приобретение, хранение, перевозка, изготовление, переработка без цели сбыта наркотических средств, " +
            "психотропных веществ или их аналогов в значительном размере, а также незаконные приобретение, хранение, " +
            "перевозка без цели сбыта растений, содержащих наркотические средства или " +
            "психотропные вещества, либо их частей, содержащих наркотические средства или психотропные вещества, в " +
            "значительном размере.";
 
 
        Console.WriteLine(Procedurka(data));
    }
 
    static string Procedurka(string s)
    {
        s = s.Replace(".", "");
        string []words = s.Split(new[] {' '},StringSplitOptions.RemoveEmptyEntries);
 
        int counter = 0;
        int skip = 0;
        string res = "";
        while (counter<=words.Length)
        {
            counter += 8;
            res += MakeSantence(words.Skip(skip).Take(8).ToArray());
            skip += 8;
        }
        if (skip != words.Length)
        {
            res += MakeSantence(words.Skip(skip).ToArray());
        }
        return res;
    }
 
    static string MakeSantence(params string[] words)
    {
        if (words.Length == 0)
            return null;
        if (words.Length == 1)
        {
            return Zaglav(words[0].ToLower().Replace(",", "") + ".");
        }
        string res = "";
        res += Zaglav(words[0])+" ";
        for (int i = 1; i < words.Length-1; i++)
        {
            res += words[i] + " ";
        }
        res += words[words.Length - 1].ToLower().Replace(",", "") + ".";
        return res+" ";
 
    }
 
    private static string Zaglav(string s)
    {
        s =s.Replace(",","").Replace(".","");
        StringBuilder sb=new StringBuilder(s);
        sb[0] = char.ToUpper(sb[0]);
        return sb.ToString();
    }
 
 
}
0
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
23.02.2016, 14:17
Цитата Сообщение от garnier
Для представления текстов используйте класс Char[].
Вести посимвольный разбор? Не проще ли сделать как-то так:
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
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;
 
internal sealed class Program {
  /// <summary>
  /// String s - строку, которую требуется разбить
  /// Int32 len - количество слов в строке
  /// </summary>
  static List<String> SplitOnLines(String s, Int32 len) {
    List<String> lst = new List<String>();
 
    String[] arr = Regex.Split(s, @"[\p{P}\s]").Where(l => !String.IsNullOrEmpty(l)).ToArray();
    for (Int32 i = 0, j = 0; i < arr.Length; i++, j += len) {
      String str = String.Join(" ", arr.Skip(j).Take(len).ToArray());
      if (String.IsNullOrEmpty(str)) break;
      lst.Add(str.First().ToString().ToUpper() + str.Substring(1) + ".");
    }
 
    return lst;
  }
 
  static void Main() {
    String s = @"незаконные приобретение, хранение, перевозка, изготовление,
    переработка без цели сбыта наркотических средств, психотропных веществ
    или их аналогов в значительном размере, а также незаконные приобретение,
    хранение, перевозка без цели сбыта растений, содержащих наркотические
    средства или психотропные вещества, либо их частей, содержащих
    наркотические средства или психотропные вещества, в значительном размере.";
 
    SplitOnLines(s, 8).ForEach(l => Console.WriteLine(l));
  }
}
?
0
0 / 0 / 1
Регистрация: 26.10.2012
Сообщений: 116
23.02.2016, 14:24  [ТС]
Ребят, я думал не ответят...Пока я ждал ответы, я начал делать такую же, только с другим текстом, можете тут 1 ошибку исправить? Я в интернете нашел только замену определенного символа, но, не всего предложения...Вот код:

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Раздел_предложений
{
    class Program
    {
        static void Main(string[] args)
        {
            string hello =
"\r\n -----------------ИСХОДНЫЙ ТЕКСТ ТЕКСТ------------------ \r\n" +
"\r\n Когда весной разбитый лёд, \r\n" +
"\r\n Рекой взволнованной идёт,\r\n" +
"\r\n Когда среди лугов местами, \r\n" +
"\r\n Чернеет голая земля, \r\n" +
"\r\n И мгла ложится облаками, \r\n" +
"\r\n На полуюные поля, \r\n" +
"\r\n Мечтанье злое грусть лелеет, \r\n" +
"\r\n В душе неопытной моей. \r\n";
 
            char[] Massiv = hello.ToCharArray();
            Console.WriteLine(Massiv);
            Console.ReadLine();
            Massiv = hello.Split(',');
            for (int i = 0; i < Massiv.Length; i++)
            {
                Console.WriteLine("Разделение текста на простые предложения:");
                Console.WriteLine("massiv [{0}]= {1}", i, Massiv[i]);
            }
            string Massivjoin = string.Join(",", Massiv);
            Console.WriteLine("txtjoin={0}", Massivjoin);
 
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.02.2016, 14:24
Помогаю со студенческими работами здесь

Процедура для проверки, является ли исходный текст правильно построенным числом с плавающей точкой
1. Напишите процедуру IsFloat, проверяющую, является ли исходный текст правильно построенным числом с плавающей точкой. Для представления...

Напишите процедуру, разделяющую исходный текст на предложения. Для представления текстов используйте класс string
Напишите процедуру, разделяющую исходный текст на предложения. Для представления текстов используйте класс string.

Разделить текст на предложения, предложения на слова. (через двумерный массив строк)
Задача заключается в том, что надо разделить текст на предложения, предложения на слова. Решил сделать это через двумерный массив...

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

Текст зашифрован перестановкой букв наоборот, восстановить исходный текст
текст зашифрован перестановкой букв наоборот востановить исходный текст


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru