![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Tim |
![]()
Сообщение
#1
|
|||
Гость ![]() |
Задача вроде бы совсем проста:
**Определить, сколько слов оканчивается на заданный символ** Что может быть проще: program Project2; Но ничего не выходит, не подскажите по чему?
|
|||
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата for i:=1 to n do; Точку с запятой убери... |
Alex7 |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Точку с запятой убери... ![]() ![]() ![]() Вроде бы се правильно, но не работает, и хоть убейся, а компилятор не видит ошибки! ЗЫ: сори за оффтоп- не удержался) |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата компилятор не видит ошибки! А с точки зрения компилятора здесь НЕТ ошибки... Все по правилам синтаксиса. |
Alex7 |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата А с точки зрения компилятора здесь НЕТ ошибки... Все по правилам синтаксиса. Вобщем я это и имел ввиду. Просто всеравно она(ошибка) есть! Кстати, как там они называются такие ошбки, которые появляются в процессе работы, но синтаксически не видимы(как эта)? Просто интиресно ![]() ![]() |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Это - Логическая ошибка (ошибка в логике работы программы) ...
|
Tim |
![]()
Сообщение
#7
|
Гость ![]() |
А все остальное правильно?
Она все равно не работает, после того как вводишь строку, происходит выход из программмы. |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Ну, я не знаю, ЧТО ты вводил, у меня все прекрасно отработало...
|
Alex7 |
![]()
Сообщение
#9
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата после того как вводишь строку, происходит выход из программмы. А ты не пробовал перед последним End. ставить задержку програмы, типо Readln/Readkey/Repeat Until keypressed ? ![]() ![]() |
Tim |
![]()
Сообщение
#10
|
Гость ![]() |
Спасибо, работает, только при использовании я обнаружил, что если последее слово в строке заканчивается на 'a' то программа его не видит.
|
klem4 |
![]()
Сообщение
#11
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
это из-за того, что по этому условию :
if(i<n) and (s[i]=d) and (s[i+1]=' ')после конца слова должен быть пробел, надо немного изменить условие и все будет ок ;) -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Alex7 |
![]()
Сообщение
#12
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата если последее слово в строке Да, тебе нужно изменить условие, лиюо предварительно в строку добавить знак пробела, т.к. строка заканчивается то на enter, ане space! Поэтомц условие and (s[i+1]=' ') и не работает! |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Alex7, не надо ничего никуда НИКОГДА добавлять (если хочешь, могу привести пример, когда этот способ с добавлением пробела не сработает)... Достаточно чуть-чуть подкорректировать условие:
for i:=1 to n do и все прекрасно посчитается... |
Alex7 |
![]()
Сообщение
#14
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ага, т.е. задаешь два условия в одном if .Когда не конец строки, то проверяем наличие пробела, а коней не проверяем. гениально просто!
Не плохо. Цитата (если хочешь, могу привести пример, когда этот способ с добавлением пробела не сработает) А почему? там ведь задается length(s), а он ведь не игнорирует пробелы, после которых нет "смыслоносящих"( ![]() |
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
Alex7, я не про это... Не всегда же человек тебе дает полную постановку задачи... А если ему нужно будет реалировать этот алгоритм в функции? И вот такой заголовок ему дадут:
Function CountWords(Const s: String; Ch: Char): Integer; твой алгоритм придется переписывать заново, потому как Const изменить (добавить к строке пробел) не удастся... А мой - сработает без изменений... Привыкать, так сразу к правильному... ![]() Не забывай, код надо писать так, чтобы можно было его использовать НЕоднократно (и желательно - без изменений) |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 1:43 |