кол-во слов в тексте |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
кол-во слов в тексте |
tigra |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: 0 |
Задача на ваше профессиональное рассмотрение:
Подсчитать количество слов в тексте,которые содержат одинаковое кол-во букв. Слова в тексте разделяются символом ' ' '.' - признак конца строки. Текст вводится с клавиатуры. Не могу сделать самое главное - разбить текст на слова... Помогите чем могите. |
GoodWind |
Сообщение
#2
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
что разделяет слова в тексте ? пробелы, следовательно каждый пробел это конец слова, т.е. если ты встречаешь пробел, значит текущее слово кончилось
на этом принципе и отделяй слова друг от друга. -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Altair |
Сообщение
#3
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Эх, такая тема раз в году точно встречается!
Надо в FAQ будет выложить. Код var s:string; i:byte; sl:byte; begin readln(s); for i:=1 to length(s) do If s[i]=' ' then inc(sl); writeln(sl); end. Вот и вся прога. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Amro |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: 2 |
Хм
Oleg_Z там ведь написано Цитата количество слов в тексте, которые содержат одинаковое кол-во букв А у тебя идёт просто подсчёт всех слов!!! Тута надо по-другому, к примеру используя дочерний массив, в который будем заносить число букв в слове, мы заносим в массив кол-во букв первого слова, далее берём второе слово, подсчитываем в нём кол-во букв и смотрим есть ли такое число в массиве, если есть то накручиваем переменную с кол-вом слов, если нет то заносим новое число в массив..... и так до конца... Сообщение отредактировано: Amro - -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
Altair |
Сообщение
#5
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Ах, да, пардон...
так, а тогда условие не полное! например строка: Код 123 asc asd 2345 отвр сколько в ней таких слов? Смотря по какой длинне считать! Если 3-х символьных, то 3 а если из 4 символов, то 2! Число символов вводится отдельно или смотрится по первой паре? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Amro |
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: 2 |
Oleg_Z Может имеется ввиду считать слова, которые встречаются в тексте более одного раза. К примеру такая строка, независимо от длины
""xxx xx x xx x xxx xxx xx xxxxx"" тыды кол-во тут равно 8..... Сообщение отредактировано: Amro - -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
Altair |
Сообщение
#7
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
короче говоря тут не совсем ясно условие!
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
tigra |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: 0 |
В задаче этого не скозано, но по-моему кол-во букв(n) тоже вводится с клавиатуры.
Кажется, тут это можно сделать двумя циклами: один выделяет слова из текста Код until s[i]='.' ,а другой их считает Код if length(sl)=n then x:=x+1 .Кол-во слов неопределенное (сколько получится), так что я не знаю как их называть и отличать друг от друга... |
Amro |
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: 2 |
Цитата if length(sl)=n then x:=x+1 Это что такое ты написал??? sl Это что за строка?? Думаю так, если имеется ввиду кол-во букв в слове введённое с клавы, тады будет что то типа того Код var st:string; i,kol,kol_slov:byte; s:byte; begin readln(st); {сама вводимая строка} readln(kol_slov); {кол-во букв в слове} for i:=1 to length(st) do begin If st[i]<>' ' then inc(s) else if s=kol_slov then inc(kol); if st[i]=' ' then s:=0; end; if kol<2 then kol:=0;{если встречается один раз тады колич = 0} writeln(kol); end. Сообщение отредактировано: Amro - -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
BlackShadow |
Сообщение
#10
|
Гость |
Я же это уже пиал где-то когда-то кому-то...
|
Флогримм |
Сообщение
#11
|
Бывалый Группа: Пользователи Сообщений: 253 Пол: Мужской Репутация: 4 |
Цитата(Oleg_Z @ 17.10.04 7:11) Код var s:string; i:byte; sl:byte; begin readln(s); for i:=1 to length(s) do If s[i]=' ' then inc(sl); writeln(sl); end. Вот и вся прога. а как быть, если нет условия разделения слов символом пробела? что, если мы имеем строку вида 'xxxxxсловоxxxxxxxслово1xxxслово2xx', где x - пробел, как подсчитать кол-во слов в такой строке? Сообщение отредактировано: Pioneer - -------------------- Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
|
Altair |
Сообщение
#12
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Сначала удали все лишние пробелы, отанется по одному разделяющему пробелу, затем применяй вышеукащанную схему. Элементарно, Ватсон )
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
xds |
Сообщение
#13
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Цитата(Oleg_Z @ 19.10.04 7:31) Сначала удали все лишние пробелы Удалять слишком тяжело - лучше пропускать... -------------------- The idiots are winning.
|
Altair |
Сообщение
#14
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Удалять тяжело??
Чего сложного-то? Ну вобщем пропускать тоже можно. Тогда можно еще одну переменную логическую завести, и чуточку модернизировать алгоритм вышеуказанный -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Флогримм |
Сообщение
#15
|
Бывалый Группа: Пользователи Сообщений: 253 Пол: Мужской Репутация: 4 |
если удалять, получится что-то вроде вот этого
Код var s:string; i:byte; sl:byte; begin readln(s); while pos(' ',s)<>0 do delete(s,pos(' ',s),2); if s[1]=' ' then delete(s,1,1); if s[length(s)]=' ' then delete(s,10,1); writeln(s); for i:=1 to length(s) do If s[i]=' ' then inc(sl); writeln(sl+1); end. я думаю, что если в начале и конце строки нет пробелов, тогда кол-во слов в троке будет равно sl+1 т.к. пробелов всегда на один меньше -------------------- Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
|
APAL |
Сообщение
#16
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Вот, писал прогу давно и не помню уже для каких целей...
STATIC.PAS - насколько я помню, подсчитывает статистику слов. Вроде бы считает количество повторений. Короче давно это было, но покапайтесь, может чего найдете... P.S.: Запаковано WinRar 3.30 Прикрепленные файлы STATIC.rar ( 46.38 килобайт ) Кол-во скачиваний: 227 -------------------- |
Текстовая версия | 23.12.2024 21:27 |