Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


grethin999, sogl я так понимаю "согласные".
В цикле осуществляется поиск слов, начинающихся с согласной буквы.
Если рассматриваемый (текущий, перебираемый в цикле, обозначенный Text[i] и т.д.) символ сделанный прописным (заглавным, перевести в верхний регистр Upcase()) будет согласным (входить in в ранее обозначенную группу символов sogl)
И - логическое условие, выполняется когда оба логических выражения, слева и справа истины (выполняются, правдивы)
Справа есть "поправка" (i=1) сделана на случай рассмотрения первого символа. От первого символа нельзя отсчитать минус первую позицию.[*]
Text[i-1]=' '
Условие начала нового слова. Слово ::= <пробел><символ>...<символ>
Отличие первого символа от последующих - наличие перед ним пробела.

Получается что левое выражение нам определяет символ (согласный/некий другой, знак препинания допустим) правое выражение определяет первый символ текста или слова.

Если все верно, ставим плюсик. ( inc(count) )

----
[*]Строго говоря можно получить нулевой символ строки. Text[0] в нем храниться длинна строки.
Но это особенность языка паскаль! В C++ это не верно, в других языках надо проверять. В любом случае идеалогически правильно вызвать функцию определения длинны строки и работать с полученным результатом.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:52, 10-05-2013 | #2