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

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

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

> Строка из одинаковых слов
18192123
сообщение 5.01.2007 18:45
Сообщение #1


Профи
****

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

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


Даны две строки, состоящие из слов. Получить 3-ю строку, состоящую из слов, которые содержаться в обеих строках.

Правильно ли я понимаю : сначала мне нужно разбить обе строки на слова, а потом их сравнивать? А вот каким способом?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
18192123
сообщение 6.01.2007 20:09
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 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;

var
s1, s2, srez : string;
n1, n2 : integer;
i, j : integer;

begin
clrscr;
writeln (' vvedite 1-u stroky' ); readln (s1);
writeln (' vvedite 2-u stroky' ); readln (s2);
n1 := 1;
n2 := 1;
srez := ' ';
while slovo (s1, n1) <> ' ' do inc (n1);
while slovo (s2, n2) <> ' ' do inc (n2);
for i := 1 to n1 do
for j := 1 to n2 do
if slovo (s1, i) = slovo (s2, j) then srez := srez + slovo (s1, i) +' ';
writeln (' stroka - rezyltat : ' );
writeln (srez);
readkey;
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 6.01.2007 20:14
Сообщение #3


Профи
****

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

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


Цитата(18192123 @ 6.01.2007 20:09) *

что здесь не так (программа не работает... )

while slovo (s1, n1) <> ' ' do inc (n1);
while slovo (s2, n2) <> ' ' do inc (n2);



В этих циклах в кавычках не должно быть пробела.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 6.01.2007 20:32
Сообщение #4


Профи
****

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

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


Цитата(Malice @ 6.01.2007 20:14) *

В этих циклах в кавычках не должно быть пробела.

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

Сообщений в этой теме
18192123   Строка из одинаковых слов   5.01.2007 18:45
volvo   Достаточно разбить на слова одну строку, а потом п...   5.01.2007 18:50
18192123   а потом просто проверять через Pos (ну, или BMSe...   5.01.2007 19:28
Bokul   Можно и так, это один из способов. Как разбивать...   5.01.2007 18:51
Bokul   Т.е. тебе нельзя написать свой аналог pos? Если не...   5.01.2007 19:35
18192123   Т.е. тебе нельзя написать свой аналог pos? Если н...   5.01.2007 19:55
klem4   Pos в чистом виде не пойдет :) Ведь слово из пер...   5.01.2007 19:50
volvo   Я уже 5 раз показывал, КАК именно это делается - в...   5.01.2007 19:55
klem4   Так я же не сказал что нельзя сделать через Pos ...   5.01.2007 20:19
18192123   у меня получилось разбить на слова первую строку, ...   6.01.2007 12:23
Malice   Предлагаю поменять твою функцию "Slovo" ...   6.01.2007 17:26
18192123   Предлагаю поменять твою функцию "Slovo...   6.01.2007 18:36
Malice   Нет, типа этого: function Slovo(s:string;n:intege...   6.01.2007 18:47
arhimag   Предложение : Возьми и засунь слова в массив, даль...   6.01.2007 13:06
18192123   что здесь не так (программа не работает... ) use...   6.01.2007 20:09
Malice   что здесь не так (программа не работает... ) whi...   6.01.2007 20:14
18192123   В этих циклах в кавычках не должно быть пробела. ...   6.01.2007 20:32
Ellsa   а может кто-нибудь сказать,что такое c и почему не...   10.01.2007 16:25
Malice   а может кто-нибудь сказать,что такое c и почему н...   10.01.2007 16:34
Ellsa   то есть наоборот....всего 4 слова и просится 5-ое?...   10.01.2007 16:37
Malice   то есть наоборот....всего 4 слова и просится 5-ое...   10.01.2007 17:03
Ellsa   и еще....почему мы в самом начале процедуы ставим ...   10.01.2007 17:03
Ellsa   то есть эта функция разделяет строку на слова...н...   10.01.2007 17:55
Malice   Функция возвращает строку, а не символ, а строка м...   10.01.2007 17:59
volvo   Это - пустая строка... Просто пустая. Нулевой длин...   10.01.2007 17:59
Ellsa   volvo Malice СПАСИБО ВАМ БОЛЬШОЕ ЗА ПОМОЩЬ.Я Т...   10.01.2007 18:07


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

 



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