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

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

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

> кол-во слов в тексте
tigra
сообщение 16.10.2004 20:50
Сообщение #1


Новичок
*

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

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


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

Текст вводится с клавиатуры. Не могу сделать самое главное - разбить текст на слова... Помогите чем могите.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 15)
GoodWind
сообщение 17.10.2004 6:58
Сообщение #2


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

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

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


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


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 17.10.2004 8:11
Сообщение #3


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

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

Репутация: -  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 
 К началу страницы 
+ Ответить 
Amro
сообщение 17.10.2004 10:26
Сообщение #4


Пионер
**

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

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


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

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

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


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


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

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

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


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

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

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


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


Пионер
**

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

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


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

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


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


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

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

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


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


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


Новичок
*

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

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


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


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


Гость






Я же это уже пиал где-то когда-то кому-то...
 К началу страницы 
+ Ответить 
Флогримм
сообщение 19.10.2004 7:09
Сообщение #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 - 19.10.2004 7:11


--------------------
Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 19.10.2004 7:31
Сообщение #12


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

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

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


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


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


N337
****

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

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


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

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


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


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

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

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


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


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


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

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

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


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

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

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


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


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

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

 



- Текстовая версия 26.07.2025 22:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"