IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> кол-во слов в тексте
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Задача на ваше профессиональное рассмотрение:
Подсчитать количество слов в тексте,которые содержат одинаковое кол-во букв.
Слова в тексте разделяются символом ' '
'.' - признак конца строки.

Текст вводится с клавиатуры. Не могу сделать самое главное - разбить текст на слова... Помогите чем могите.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Автооответчик
*****

Группа: Пользователи
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


что разделяет слова в тексте ? пробелы, следовательно каждый пробел это конец слова, т.е. если ты встречаешь пробел, значит текущее слово кончилось
на этом принципе и отделяй слова друг от друга.


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.

Вот и вся прога.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  2  +


Хм smile.gif
Oleg_Z там ведь написано
Цитата
количество слов в тексте, которые содержат одинаковое кол-во букв

А у тебя идёт просто подсчёт всех слов!!!
Тута надо по-другому, к примеру используя дочерний массив, в который будем заносить число букв в слове, мы заносим в массив кол-во букв первого слова, далее берём второе слово, подсчитываем в нём кол-во букв и смотрим есть ли такое число в массиве, если есть то накручиваем переменную с кол-вом слов, если нет то заносим новое число в массив..... и так до конца...

Сообщение отредактировано: Amro -


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Ах, да, пардон...
так, а тогда условие не полное!
например строка:
Код
123 asc asd 2345 отвр

сколько в ней таких слов?
Смотря по какой длинне считать!
Если 3-х символьных, то 3 а если из 4 символов, то 2!

Число символов вводится отдельно или смотрится по первой паре?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  2  +


Oleg_Z Может имеется ввиду считать слова, которые встречаются в тексте более одного раза. К примеру такая строка, независимо от длины
""xxx xx x xx x xxx xxx xx xxxxx"" тыды кол-во тут равно 8.....

Сообщение отредактировано: Amro -


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


короче говоря тут не совсем ясно условие!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


В задаче этого не скозано, но по-моему кол-во букв(n) тоже вводится с клавиатуры.
Кажется, тут это можно сделать двумя циклами:
один выделяет слова из текста
Код
until s[i]='.'
,
а другой их считает
Код
if length(sl)=n then x:=x+1
.
Кол-во слов неопределенное (сколько получится), так что я не знаю как их называть и отличать друг от друга...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Сначала удали все лишние пробелы, отанется по одному разделяющему пробелу, затем применяй вышеукащанную схему. Элементарно, Ватсон smile.gif)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Цитата(Oleg_Z @ 19.10.04 7:31)
Сначала удали все лишние пробелы

Удалять слишком тяжело - лучше пропускать...


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Удалять тяжело??
Чего сложного-то?
Ну вобщем пропускать тоже можно.
Тогда можно еще одну переменную логическую завести, и чуточку модернизировать алгоритм вышеуказанный smile.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Вот, писал прогу давно и не помню уже для каких целей... smile.gif
STATIC.PAS - насколько я помню, подсчитывает статистику слов. Вроде бы считает количество повторений.

Короче давно это было, но покапайтесь, может чего найдете... smile.gif

P.S.: Запаковано WinRar 3.30


Прикрепленные файлы
Прикрепленный файл  STATIC.rar ( 46.38 килобайт ) Кол-во скачиваний: 227


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 21:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name