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