Поиск в файле |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Поиск в файле |
BiZON |
5.06.2011 19:11
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Подскажите кто-нибудь: Как найти в файле слова, в в которых нечетное число гласных и чётное число согласных букв?
|
DarkWishmaster |
5.06.2011 21:07
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: 3 |
Подскажите кто-нибудь: Как найти в файле слова, в в которых нечетное число гласных и чётное число согласных букв? Укажи полажуйста как расположены слова в файле, чем разделены и.т Вот например: file TXT: Forum Pascal net.ru тут всё просто, читаем слово из файла, проверяем если подходит то выводим, нет - не выводим. а если: file TXT: Forum Pascal net.ru то тут уже надо читать всю строку, потом разбить на слова и проверять каждое слова. Проверка осуществляется функцией:
Где glas=['A','a','o' и.т ] множество гласных, а soglasn множество согласных. Сообщение отредактировано: DarkWishmaster - 5.06.2011 23:14 |
BiZON |
5.06.2011 21:27
Сообщение
#3
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
в файле находится текст. вот из этого текста и нужно выбрать слова. и ещё подскажите пожалуйста как сделать чтобы программа понимала русские символы? Просто когда открываю этот файл из программы, русский символы отображаются каракулями
|
DarkWishmaster |
5.06.2011 21:51
Сообщение
#4
|
Бывалый Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: 3 |
в файле находится текст. вот из этого текста и нужно выбрать слова. и ещё подскажите пожалуйста как сделать чтобы программа понимала русские символы? Просто когда открываю этот файл из программы, русский символы отображаются каракулями В турбо паскале нету русских (или у кого-то есть, у мя точно нету =) ). Free Pascal отоброжает русские, это 100%. Ну допустим Текст: Я помню чудное мгновенье: Передо мной явилась ты, Как мимолетное виденье, Как гений чистой красоты. читаем из файла:
где Check(S) это процедура которая находит слова в строке.
P.S может я что напутал, так как паскаля с собой нету ) и сразу на форум написал. Сообщение отредактировано: DarkWishmaster - 5.06.2011 21:53 |
BiZON |
5.06.2011 22:03
Сообщение
#5
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
спасибо большое, сейчас попробую
|
IUnknown |
5.06.2011 22:37
Сообщение
#6
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
DarkWishmaster, вводишь человека в заблуждение. Я про функцию Yes. Подумай, что она вернет, если гласных будет четное количество, а согласных - нечетное? (кстати, результаты работы твоей функции могут быть вообще непредсказуемыми. Подумай, почему. Есть 2 причины...)
Сообщение отредактировано: IUnknown - 5.06.2011 22:38 |
DarkWishmaster |
5.06.2011 23:13
Сообщение
#7
|
Бывалый Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: 3 |
DarkWishmaster, вводишь человека в заблуждение. Я про функцию Yes. Подумай, что она вернет, если гласных будет четное количество, а согласных - нечетное? (кстати, результаты работы твоей функции могут быть вообще непредсказуемыми. Подумай, почему. Есть 2 причины...) if x[i] in glas then inc(val); if x[i] in soglasn then dec(val); Аа извини, ошибься. Просто пробовал если делить нечетное на четное то результат будет нечетным, не учел то что если делить нечетное на четное то результат будет тоже нечетном так что ты прав, спасибо. Отредактировал. Сообщение отредактировано: DarkWishmaster - 5.06.2011 23:14 |
IUnknown |
6.06.2011 0:07
Сообщение
#8
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Это не все. Про один из тех 2 моментов, о которых я написал выше, ты не додумал...
|
DarkWishmaster |
6.06.2011 13:56
Сообщение
#9
|
Бывалый Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: 3 |
|
IUnknown |
6.06.2011 14:16
Сообщение
#10
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата И вообще, почему в подпрограмы они понимают совершено разное значения а не как в главной програме где по умолчанью 0? Вот именно потому, что это подпрограмма. Место, где расположена переменная - стек, который никем не чистится. Что было на том месте перед стартом подпрограммы, то значение и будет начальным для переменной. В общем, мусор.А глобальные переменные - это сегмент данных программы, который принудительно обнуляется. Поэтому возьми себе за правило: всегда инициализировать переменную. Неважно, где она описана, локально или глобально. Сегодня у тебя переменная глобальная, завтра ты оформил этот кусок кода как подпрограмму и на ровном месте получил глюки. Это кому надо? А если все инициализировалось принудительно - то никаких проблем не будет, будет продолжать инициализироваться уже в подпрограмме и результаты будут ожидаемыми, такими же, как и раньше. |
DarkWishmaster |
6.06.2011 15:13
Сообщение
#11
|
Бывалый Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: 3 |
Вот именно потому, что это подпрограмма. Место, где расположена переменная - стек, который никем не чистится. Что было на том месте перед стартом подпрограммы, то значение и будет начальным для переменной. В общем, мусор. А глобальные переменные - это сегмент данных программы, который принудительно обнуляется. Поэтому возьми себе за правило: всегда инициализировать переменную. Неважно, где она описана, локально или глобально. Сегодня у тебя переменная глобальная, завтра ты оформил этот кусок кода как подпрограмму и на ровном месте получил глюки. Это кому надо? А если все инициализировалось принудительно - то никаких проблем не будет, будет продолжать инициализироваться уже в подпрограмме и результаты будут ожидаемыми, такими же, как и раньше. Спасибо за совет. |
Текстовая версия | 13.05.2024 7:35 |