Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Дик
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 18
#1

Разделение слов на слоги в С++ - C++

25.10.2013, 20:09. Просмотров 1086. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста написать программу для курсовой! Очень надо, буду благодарен.
Дан текст, состоящий из русских слов. Составить программу, выполняющую разделение его на слоги путём вставки между ними чёрточек. Основные првила разделения на слоги следующие:
1) Две идущие подряд гласные можно разделить, если первой из них предшествует согласная,а за второй идет хотябы одна буква.
2) Две идущие подряд согласные можно разделить, если первые из них предшествует гласная, а в той части слова, которая идёт за второй согласной, имеется хотя бы одна гласная.
Если не удаётся применить пункты 1),2),то следует попытаться разбить слово так, чтобы первая часть содержала более чем одну букву и оканчивались на гласную, а вторая содержала хотя бы одну гласную.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 20:09     Разделение слов на слоги в С++
Посмотрите здесь:

Деление слов на слоги (С++) C++
Задача "Слоги". не вруб C++
C++ Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов
Разбить введенное слово на слоги C++
C++ Создать список слов из файла и подсчитать количество повторения этих слов
Разделение слов на слоги C++
C++ Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Scythian
 Аватар для Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
25.10.2013, 20:34     Разделение слов на слоги в С++ #2
какие мысли/наработки/попытки имеются?
Выкладывайте код..
Дик
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 18
25.10.2013, 21:01  [ТС]     Разделение слов на слоги в С++ #3
нету пока что) если есть то только последняя часть его)) то есть если не удастся то ....

Добавлено через 9 минут
вот именно что я новичок только, хоть и 2 курс) и нам толком не объясняют вообще, дали задание каждому отдельно и я не знаю как его делать, т.к. нам такие задания вообще не давали. Помогите если сможете, пожалуйста!
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
25.10.2013, 21:06     Разделение слов на слоги в С++ #4
Цитата Сообщение от Дик Посмотреть сообщение
нету пока что) если есть то только последняя часть его)) то есть если не удастся то ....

Добавлено через 9 минут
вот именно что я новичок только, хоть и 2 курс) и нам толком не объясняют вообще, дали задание каждому отдельно и я не знаю как его делать, т.к. нам такие задания вообще не давали. Помогите если сможете, пожалуйста!
Ну вообще задача скорее алгоритмическая, но так как алгоритм вам дан, то остаётся только продумать, что писать. Неважно, давали ли вам такие задания или нет - здесь нет ничего сложного. Вам нужно только знать некоторые основы языка, не более. Возьми книжку и читайте. Здесь на форуме есть тема со списком литературы.
Scythian
 Аватар для Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
25.10.2013, 21:10     Разделение слов на слоги в С++ #5
Для начала просто попытайтесь написать функцию которая делит слово на слоги.Думаю проще будет работать с типом char.
gazlan
Нарушитель
3129 / 1904 / 285
Регистрация: 27.08.2010
Сообщений: 5,133
Записей в блоге: 1
25.10.2013, 23:02     Разделение слов на слоги в С++ #6
Для затравки:

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
const char Symbols[256] =
{
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x01', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x01', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', 
   '\x01', '\x02', '\x02', '\x02', '\x02', '\x01', '\x02', '\x02', '\x01', '\x02', '\x03', '\x02', '\x02', '\x02', '\x01', '\x03', 
   '\x02', '\x03', '\x03', '\x01', '\x03', '\x03', '\x03', '\x03', '\x03', '\x03', '\xDA', '\x01', '\xDC', '\x01', '\x01', '\x01', 
   '\x01', '\x02', '\x02', '\x02', '\x02', '\x01', '\x02', '\x02', '\x01', '\x02', '\x03', '\x02', '\x02', '\x02', '\x01', '\x03', 
   '\x02', '\x03', '\x03', '\x01', '\x03', '\x03', '\x03', '\x03', '\x03', '\x03', '\xFA', '\x01', '\xFC', '\x01', '\x01', '\x01'
};
 
enum Phone
{
   PHONE_NONE,
   PHONE_VOVEL,   
   PHONE_VOICED_CONSONANT,
   PHONE_VOICELESS_CONSONANT
};
 
bool IsVovel(int iChr)
{
   return Symbols[(BYTE)iChr] == PHONE_VOVEL;
}
 
bool IsVoicedConsonant(int iChr)
{
   return Symbols[(BYTE)iChr] == PHONE_VOICED_CONSONANT;
}
 
bool IsVoicelessConsonant(int iChr)
{
   return Symbols[(BYTE)iChr] == PHONE_VOICELESS_CONSONANT;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 23:23     Разделение слов на слоги в С++
Еще ссылки по теме:

Программа деления слов на слоги C++
Удалить из символьной строки все слоги "ма" C++
C++ Разбить на слоги каждое четное слово в строке, а каждое нечетное записать в обратном порядке
Разделение строки на массив строк из отдельных слов C++
C++ Запросить у пользователя строку, найти и удалить в ней повторяющиеся подряд двухбуквенные слоги

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

Или воспользуйтесь поиском по форуму:
gazlan
Нарушитель
3129 / 1904 / 285
Регистрация: 27.08.2010
Сообщений: 5,133
Записей в блоге: 1
25.10.2013, 23:23     Разделение слов на слоги в С++ #7
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
const char XLAT[256] =
{
   '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08', '\x09', '\x0A', '\x0B', '\x0C', '\x0D', '\x0E', '\x0F', 
   '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x18', '\x19', '\x1A', '\x1B', '\x1C', '\x1D', '\x1E', '\x1F', 
   '\x20', '\x21', '\x22', '\x23', '\x24', '\x25', '\x26', '\x27', '\x28', '\x29', '\x2A', '\x2B', '\x2C', '\x2D', '\x2E', '\x2F', 
   '\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39', '\x3A', '\x3B', '\x3C', '\x3D', '\x3E', '\x3F', 
   '\x40', '\x41', '\x42', '\x43', '\x44', '\x45', '\x46', '\x47', '\x48', '\x49', '\x4A', '\x4B', '\x4C', '\x4D', '\x4E', '\x4F', 
   '\x50', '\x51', '\x52', '\x53', '\x54', '\x55', '\x56', '\x57', '\x58', '\x59', '\x5A', '\x5B', '\x5C', '\x5D', '\x5E', '\x5F', 
   '\x60', '\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', '\x68', '\x69', '\x6A', '\x6B', '\x6C', '\x6D', '\x6E', '\x6F', 
   '\x70', '\x71', '\x72', '\x73', '\x74', '\x75', '\x76', '\x77', '\x78', '\x79', '\x7A', '\x7B', '\x7C', '\x7D', '\x7E', '\x7F', 
   '\xB0', '\xB1', '\xB2', '\xB3', '\xB4', '\xB5', '\xB6', '\xB7', '\xB8', '\xB9', '\xBA', '\xBB', '\xBC', '\xBD', '\xBE', '\xBF', 
   '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', 
   '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', '\xF0', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', 
   '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7', '\xF1', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', 
   '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F', 
   '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F', 
   '\xA0', '\xA1', '\xA2', '\xA3', '\xA4', '\xA5', '\xA6', '\xA7', '\xA8', '\xA9', '\xAA', '\xAB', '\xAC', '\xAD', '\xAE', '\xAF', 
   '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF'
};
 
int main(int argc,char** argv)
{  
   const char pszLetters[] = "АУОЫИЭЯЮЁЕБВГДЖЗЙлмнркпстфхцчшщ";
 
   for (int ii = 0; ii < sizeof(pszLetters); ++ii)
   {
      int   iChr = pszLetters[ii];
 
      if (IsVovel(iChr))
      {
         printf("'%c' is Vovel\n",XLAT[(BYTE)iChr]);
      }
      else if (IsVoicedConsonant(iChr))
      {
         printf("'%c' Is Voiced Consonant\n",XLAT[(BYTE)iChr]);
      }
      else if (IsVoicelessConsonant(iChr))
      {
         printf("'%c' Is Voiceless Consonant\n",XLAT[(BYTE)iChr]);
      }
      else
      {
         // Is not russian letter
         break;
      }
   }
 
   return 0;
}
Миниатюры
Разделение слов на слоги в С++  
Yandex
Объявления
25.10.2013, 23:23     Разделение слов на слоги в С++
Ответ Создать тему
Опции темы

Текущее время: 23:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru