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

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

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

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

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

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

Разделение слов на слоги - C++
Мне нужно написать программу для деления слов на слоги по определенным правилам. Пока что столкнулся с проблемой цикла. Для одного слова...

Деление слов на слоги (С++) - C++
Нужно написать программу деления слов на слоги на С++. Пожалуйста, помогите!)

Программа деления слов на слоги - C++
надо составить программу деления слов на слоги, пожалуйста помогите

Разделение строки на массив строк из отдельных слов - C++
Как разделить строку типа "У него было много друзей." на массив строк, состоящий из отдельных слов?

Разбить введенное слово на слоги - C++
Разбить введенное слово на слоги так, чтобы в первом слогу было больше чем одна буква и оканчивалась на гласную, а второй слог содержал...

Запросить у пользователя строку, найти и удалить в ней повторяющиеся подряд двухбуквенные слоги - C++
Запросите у пользователя строку, найдите и удалите в ней повторяющиеся подряд двухбуквенные слоги. Например «пополнение»→ «полнение».

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
25.10.2013, 20:34 #2
какие мысли/наработки/попытки имеются?
Выкладывайте код..
0
Дик
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 18
25.10.2013, 21:01  [ТС] #3
нету пока что) если есть то только последняя часть его)) то есть если не удастся то ....

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

Добавлено через 9 минут
вот именно что я новичок только, хоть и 2 курс) и нам толком не объясняют вообще, дали задание каждому отдельно и я не знаю как его делать, т.к. нам такие задания вообще не давали. Помогите если сможете, пожалуйста!
Ну вообще задача скорее алгоритмическая, но так как алгоритм вам дан, то остаётся только продумать, что писать. Неважно, давали ли вам такие задания или нет - здесь нет ничего сложного. Вам нужно только знать некоторые основы языка, не более. Возьми книжку и читайте. Здесь на форуме есть тема со списком литературы.
0
Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
25.10.2013, 21:10 #5
Для начала просто попытайтесь написать функцию которая делит слово на слоги.Думаю проще будет работать с типом char.
0
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 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;
}
0
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 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;
}
0
Миниатюры
Разделение слов на слоги в С++  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 23:23
Привет! Вот еще темы с ответами:

Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А - C++
Дана задача написать, чтобы с++ делила слово на слоги в том месте где стоит буква А, например к слову КАЗАХСТАН, отсюда чтобы с++ должна...

Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов - C++
мне нужна функция, которая во входе получает строку слов и рзделителей (&quot; &quot;, &quot;,&quot;, &quot;.&quot;, &quot;_&quot;, &quot;&quot;&quot;), а на выходе имеет массив слов из строки...

Разбить на слоги каждое четное слово в строке, а каждое нечетное записать в обратном порядке - C++
Нужно разбить на слога каждое слово на парной позиции в строчке,а каждое на непарной позиции записать в обратном порядке

Удалить из символьной строки все слоги "ма" - C++
Не знаю как удалить из символьной строки все слоги &quot;ма&quot;, помогите пожалуйста. int main() { string s; string word, temp; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.10.2013, 23:23
Ответ Создать тему
Опции темы

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