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

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

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

> слова, повторяющиеся хотя бы раз
18192123
сообщение 7.01.2007 15:19
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


Дана строка, состоящая из слов (слова разделяются пробелами). Вывести слова, которые повторяются хотя бы один раз.

Для строк использовать только length, chr, ord.

У меня такая идея: ввести массив, каждый элемент которого соответствует кол-ву встречаемости очередного слова в строке. Но тогда как определять такой массив при описании?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
klem4
сообщение 7.01.2007 16:45
Сообщение #2


Perl. Just code it!
******

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

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


Идешь по строке, выделяешь очередное слово, смотришь нету ли его в массиве слов, если нету, выводишь это слово на экран и добавляешь в массив.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 7.01.2007 17:33
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


Цитата(klem4 @ 7.01.2007 16:45) *

Идешь по строке, выделяешь очередное слово, смотришь нету ли его в массиве слов, если нету, выводишь это слово на экран и добавляешь в массив.

а как быть с размером массива при его описании, я же не знаю, сколько слов будет в строке?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.01.2007 17:36
Сообщение #4


Гость






Бери максимально возможное количество: мин. слово - один символ, между словами тоже один разделитель, макс. длина строки в Паскале = 255, так что больше 128 слов в любом случае не будет...
 К началу страницы 
+ Ответить 
18192123
сообщение 7.01.2007 20:25
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


программа в лучшем случае выдаёт первое слово...

uses crt;
function Slovo(s:string;n:integer):string;
const lim =[' ',',','!'];
var ss:string;
k,c,i:integer;
begin
ss:=''; c:=1; k:=1;
while k<=length(s) do begin
while not(s[k] in lim) and (k<=length(s)) do begin
if c=n then ss:=ss+s[k];
inc (k); end;
inc ( c );
while (s[k] in lim) and (k<=length(s)) do inc (k);
end;
Slovo:=ss;
end;
const n=128;
var
a : array[1..n] of string;
i, n1, j : integer;
s1, s2 : string;

begin
clrscr;
writeln (' vvedite stroky');
readln (s1);
for j := 1 to n do
a[j] := '';
s2 := '';
for j := 1 to n do begin
for i := 1 to length (s1) do
begin
a[j] := a[j] + slovo (s1, i);
if a[j] = slovo (s1, i) then s2 := s2 + slovo (s1, i) + ' ';
end;
end;
writeln (' stroka - resultat:');
writeln (s2);
readkey;
end.




Сообщение отредактировано: 18192123 - 7.01.2007 20:41
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.01.2007 21:08
Сообщение #6


Гость






А так:
...
s2 := '';
for j := 1 to n do a[j] := '';

n1 := 1;
i := 0;
while slovo(s1, n1) <> '' do begin
found := false;
for j := 1 to i do
if a[j] = slovo(s1, n1) then found := true;

if found then s2 := s2 + slovo(s1, n1) + ' '
else begin
inc(i);
a[i] := slovo(s1, n1);
end;
inc(n1);
end;
...
?
 К началу страницы 
+ Ответить 
18192123
сообщение 7.01.2007 21:21
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


Цитата(volvo @ 7.01.2007 21:08) *

А так:
.........?

Так всё получается! Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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