Здравствуйте.У меня такое вот задание.....
Даны две строки текста.Вывести слова,присутствующие в каждой строке.
По идее это элементарно..но я не могу вообще ничего написать!Особенно возникает сложность с написанием куска,где мы переходим на вторую строку,чтоб сравнивать с первой....вообще не понимаю,как это осуществить...если есть какие-нибудь мысли,поделитесь пожалуйста....
я обрыла поиск весь....находила только повторяющиеся слова в одной строке или символы....это сами понимаете...не то....
Разбей на слова.
http://forum.pascal.net.ru/index.php?showtopic=6972
Пусть будут 2 массива первая строка и вторая строка.
Считывай слова в первый массив while not eoln
readln; - переход на другую строку
И снова считываешь, но уже во второй массив.
Потом просто сравни полученные строки.
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.
volvo,мне ваш вопрос несовсем понятен.Через pos на данный момент пытаюсь составить программу,а все,что было сказано перед этим мне несовсем понятно.
ammaximus,спасибо большое. попытаемся разными способами. Думаю моя программа все равно не заработает...
Ellsa, с использованием POS в прикреплении. Но я советую вам самой попробовать решить, не заглядывая.
Прикрепленные файлы
STROK.PAS ( 452 байт )
Кол-во скачиваний: 278
я пытаюсь....но я встала на моменте,когда надо следующее слово рассматривать...после пробела.....мне тут помогли написать до этого момента....а теперь я все....
спать больше надо...может соображать лучше буду...
ammaximus, твой "способ" валится при элементарном тесте:
constЛегитимно? Вполне, кто сказал, что во второй строке будет только одно слово? Ан, твоя программа это НЕ пропускает...
s1:string[200] ='aaa bbb ccc ddd';
s2:string[200] ='ccc bbbred';
боюсь,что мне сейчас не понять всех мудренностей последней программы....спасибо,что откликнулись.Но я ничерта не могу понять...
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;