![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Ellsa |
![]()
Сообщение
#1
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
Здравствуйте.У меня такое вот задание.....
Даны две строки текста.Вывести слова,присутствующие в каждой строке. По идее это элементарно..но я не могу вообще ничего написать!Особенно возникает сложность с написанием куска,где мы переходим на вторую строку,чтоб сравнивать с первой....вообще не понимаю,как это осуществить...если есть какие-нибудь мысли,поделитесь пожалуйста.... я обрыла поиск весь....находила только повторяющиеся слова в одной строке или символы....это сами понимаете...не то.... ![]() |
![]() ![]() |
ammaximus |
![]()
Сообщение
#2
|
![]() Ночной волк ![]() ![]() Группа: Пользователи Сообщений: 103 Пол: Мужской Репутация: ![]() ![]() ![]() |
Разбей на слова.
Разбиение на слова. Все способы. Пусть будут 2 массива первая строка и вторая строка. Считывай слова в первый массив while not eoln readln; - переход на другую строку И снова считываешь, но уже во второй массив. Потом просто сравни полученные строки. -------------------- Не думай о белой обезьяне.
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата Даны две строки текста.Вывести слова,присутствующие в каждой строке. А прочесть этот текст в 2 строковых переменные запрещено? А потом "on the fly" в одной строке вычленять слова, и проверять их наличие во второй строке (через Pos например)... |
ammaximus |
![]()
Сообщение
#4
|
![]() Ночной волк ![]() ![]() Группа: Пользователи Сообщений: 103 Пол: Мужской Репутация: ![]() ![]() ![]() |
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 использованием массива проще. Но можно и без него. -------------------- Не думай о белой обезьяне.
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата C использованием массива проще Во-первых, решение неэффективно (посмотри, сколько памяти расходуется впустую, не приучайся делать СРАЗУ плохо)... А во-вторых - использование массивов может и запрещаться ...К тому же, автору был задан вопрос, который она почему-то игнорировала... Ну что ж - дело ее... |
Ellsa |
![]()
Сообщение
#6
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo,мне ваш вопрос несовсем понятен.Через pos на данный момент пытаюсь составить программу,а все,что было сказано перед этим мне несовсем понятно.
![]() ammaximus,спасибо большое. ![]() Сообщение отредактировано: Ellsa - 21.12.2006 23:47 |
ammaximus |
![]()
Сообщение
#7
|
![]() Ночной волк ![]() ![]() Группа: Пользователи Сообщений: 103 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ellsa, с использованием POS в прикреплении. Но я советую вам самой попробовать решить, не заглядывая.
![]() Сообщение отредактировано: ammaximus - 22.12.2006 0:37 Прикрепленные файлы ![]() -------------------- Не думай о белой обезьяне.
|
Ellsa |
![]()
Сообщение
#8
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
я пытаюсь....но я встала на моменте,когда надо следующее слово рассматривать...после пробела.....мне тут помогли написать до этого момента....а теперь я все....
![]() спать больше надо...может соображать лучше буду... |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
ammaximus, твой "способ" валится при элементарном тесте:
const
s1:string[200] ='aaa bbb ccc ddd';
s2:string[200] ='ccc bbbred';
Легитимно? Вполне, кто сказал, что во второй строке будет только одно слово? Ан, твоя программа это НЕ пропускает...Правило №7 и к тебе относится! Вот так надо было делать проверку: Спойлер (Показать/Скрыть)
|
Ellsa |
![]()
Сообщение
#10
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
боюсь,что мне сейчас не понять всех мудренностей последней программы....спасибо,что откликнулись.Но я ничерта не могу понять...
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;
вообще непонятно.... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 30.07.2025 23:08 |