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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] помогите понять смысл данного условия код написан на паскале

Ответить
Настройки темы
Разное - [решено] помогите понять смысл данного условия код написан на паскале

Новый участник


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

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


помогите понять смысл данного условия
for i:=1 to length(Text) do
if (Upcase(Text[i])in sogl)and((i=1)or (Text[i-1]=' ')) then inc(count);
Writeln('otvet: ', count);

Отправлено: 13:28, 10-05-2013

 

Аватара для 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для yurfed

Ветеран


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

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


Цитата lxa85:
Если все верно, ставим плюсик. »
Плюсик

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Отправлено: 14:21, 10-05-2013 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] помогите понять смысл данного условия код написан на паскале

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Драйвер - [решено] Недостаточно свободных ресурсов для работы данного устройства. Код 12 justdave Microsoft Windows 7 27 11-09-2017 11:54
Разное - [решено] Помогите решить программку на паскале grethin999 Программирование и базы данных 5 08-05-2013 15:14
Помоги понять природу данного глюка. sevvka Непонятные проблемы с Железом 11 07-07-2011 15:47
Ошибка - недостаточно свободных ресурсов для работы данного устройства(код ошибки 12) serdzhinio Microsoft Windows 2000/XP 3 18-04-2010 04:43
Разное - На чем написан этот интерфейс? Скажите, что вбивать в гугл, чтобы почитать подробнее) evg64 Программирование и базы данных 10 04-01-2010 14:56




 
Переход