![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
nataly |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Определить сколько слов длинной К символов находится в строке.К вводится с клавиатуры.
|
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
ровно 17.
помогла? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
nataly |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
ровно 17. помогла? Это для любой строки так и для любого числа К? что-то не похоже на правду.. Дело в том,что я понимаю,что нужно сделать,но оформить не могу. Вот,например,предложение:"муха села на варенье,вот и всё стихотворенье" берём К=4,результат кол-во слов=2. То есть,нужно рассчитать длину каждого слова и сравнить с К,но как,ещё раз повторюсь,не знаю. |
Федосеев Павел |
![]()
Сообщение
#4
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Если ты сама хочешь решить, то попробуй выделять слово в строке начиная с символа Istart так:
1. Просматриваем строку начиная с символа Istart. Пропускаем все ограничители слов - пробелы, точки, запятые. Их можно "заключить" во множество [' ', '.', ',', ':', ';']. Пока не "наткнёмся" на иной символ - букву или на конец строки. 2. Теперь мы находимся в начале слова. Начинаем просматривать его, пока не "наткнёмся" на ограничитель или на конец строки. 3. Теперь у нас есть конец слова. Зная индекс начала индекс конца слова можно вычислить его длину. Все эти действия удобно оформить процедурой или функцией. Результатов у неё будет два - длина слова и индекс последнего символа слова. Или как вариант, можно поискать по форуму или в его FAQ "готовую" подпрограмму выделения слов из строки. |
nataly |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Спасибо,но проблема как раз в том,что я крайне плохо владею Паскалем и могу сама оформить только подпрограмму,где будет высчитываться длина слова.
Если не сложно,можете на языке объяснить,как сделать счётчик,чтобы он проверял = ли длина слова символу К и если нет,то как его обнулить и продолжить проход? |
Федосеев Павел |
![]()
Сообщение
#6
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Начни и покажи, что получается. Я бы тот алгоритм попробовал реализовать так (набирал прямо в браузере, поэтому возможны огрехи):
TYPE Это не законченный кусок, а скорее попытка реализации... Ух, почти по-немецки "GetLengthNextWord" ![]() Сообщение отредактировано: Федосеев Павел - 11.02.2012 23:38 |
nataly |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
ух..а можно как-нибудь по-другому высчитать длину слова,ну там ord oт последнего символа?
|
Федосеев Павел |
![]()
Сообщение
#8
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Ну, не знаю...
Например, "ёлка" и "палка". Последний символ в каждом слове - "а". И, если ord('а')=ord('а'), то длины этих слов слов одинаковы ![]() Это как "морской бой". Определил начало слова (корабля), определил конец и, вуаля: конец - начало = длина. Начинай составлять программу. В моём куске подпрограммы уже определяется начало следующего слова. По аналогии можно найти конец этого слова. В недостающем куске 3 или 4 строки. Попробуй... Покажи, хоть небольшие результаты. Наверняка, ввод строки, числа K и вывод результата (переменной CountWordK) уже реализован. Перебор всех слов в строке я привёл. Половина функции есть. Там осталось-то 5-6 строк+program+var+begin+end. |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Наташ, попробуй как-то вот так:
count:= 0; Тут в качестве разделителей между словами допускается только пробел. Если тебе нужно, чтоб были допустимы знаки препинания - говори (в условии про это ничего нет). Ввод строки и числа k сделай сама. Если будут трудности - спрашивай. Успехов тебе. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
nataly |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Павел,спасибо вам огромное,но честно говоря,мне нет смысла продолжать,так как мы только начали обучаться Паскалю и функции с процедурами пока что тёмный лес,мне просто не поверят,что я сама такое смогла написать,остаётся только распечатать ваш труд да и в рамочку,будет к чему стремится!
![]() |
-Федосеев Павел- |
![]()
Сообщение
#11
|
Гость ![]() |
Жаль...
Ну, в рамку - так в рамку...
|
Гость |
![]()
Сообщение
#12
|
Гость ![]() |
Жаль... Ну, в рамку - так в рамку...
трогательно как..спасибо ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:26 |