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

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

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

 
 Ответить  Открыть новую тему 
> 2 строки файла, повторяющиеся слова
сообщение
Сообщение #1


lehf
**

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

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


Здравствуйте.У меня такое вот задание.....
Даны две строки текста.Вывести слова,присутствующие в каждой строке.


По идее это элементарно..но я не могу вообще ничего написать!Особенно возникает сложность с написанием куска,где мы переходим на вторую строку,чтоб сравнивать с первой....вообще не понимаю,как это осуществить...если есть какие-нибудь мысли,поделитесь пожалуйста....



я обрыла поиск весь....находила только повторяющиеся слова в одной строке или символы....это сами понимаете...не то.... unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ночной волк
**

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

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


Разбей на слова.
Разбиение на слова. Все способы.
Пусть будут 2 массива первая строка и вторая строка.
Считывай слова в первый массив while not eoln
readln; - переход на другую строку
И снова считываешь, но уже во второй массив.
Потом просто сравни полученные строки.


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


Гость






Цитата
Даны две строки текста.Вывести слова,присутствующие в каждой строке.
А прочесть этот текст в 2 строковых переменные запрещено? А потом "on the fly" в одной строке вычленять слова, и проверять их наличие во второй строке (через Pos например)...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ночной волк
**

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

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


uses crt;
const s1:string[200] ='aaa bbb ccc ddd';
s2:string[200] ='ccc';
var i,j,k:integer;
s:string[200];
a1:array[0..8] of string[200];
begin
for j:=1 to length(s1) do
if s1[j]<>' ' then
a1[i]:=a1[i]+s1[j]
else
inc(i);
k:=i;
for j:=1 to length(s2) do
if s2[j]<>' ' then
s:=s+s2[j]
else
begin
for i:=1 to k do
if s=a1[i] then writeln(a1[i]);
end;
write(s);
readkey;
end.

C использованием массива проще. Но можно и без него.


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


Гость






Цитата
C использованием массива проще
Во-первых, решение неэффективно (посмотри, сколько памяти расходуется впустую, не приучайся делать СРАЗУ плохо)... А во-вторых - использование массивов может и запрещаться ...

К тому же, автору был задан вопрос, который она почему-то игнорировала... Ну что ж - дело ее...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


lehf
**

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

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


volvo,мне ваш вопрос несовсем понятен.Через pos на данный момент пытаюсь составить программу,а все,что было сказано перед этим мне несовсем понятно. unsure.gif
ammaximus,спасибо большое. smile.gif попытаемся разными способами. Думаю моя программа все равно не заработает...

Сообщение отредактировано: Ellsa -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Ночной волк
**

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

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


Ellsa, с использованием POS в прикреплении. Но я советую вам самой попробовать решить, не заглядывая. wink.gif

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


Прикрепленные файлы
Прикрепленный файл  STROK.PAS ( 452 байт ) Кол-во скачиваний: 296


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


lehf
**

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

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


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


Гость






ammaximus, твой "способ" валится при элементарном тесте:
const
s1:string[200] ='aaa bbb ccc ddd';
s2:string[200] ='ccc bbbred';

Легитимно? Вполне, кто сказал, что во второй строке будет только одно слово? Ан, твоя программа это НЕ пропускает...

Правило №7 и к тебе относится!

Вот так надо было делать проверку:
Спойлер (Показать/Скрыть)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


lehf
**

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

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


боюсь,что мне сейчас не понять всех мудренностей последней программы....спасибо,что откликнулись.Но я ничерта не могу понять...
and
(
(p = 1) or ((p > 1) and (s2[p - 1] = ' '))
)
and
(
(p + length(_word) - 1 = length(s2)) or
((p + length(_word) - 1 < length(s2)) and (s2[p + length(_word)] = ' '))
)
then begin
writeln('word: ', _word, ' exists in s1 & s2 ...');
end;

вообще непонятно.... unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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