Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи на заказ _ Требуется написание программы в кратчайшие сроки.

Автор: Vitalikus 12.07.2008 21:39

Задание*:
С клавиатуры(или из файла) вводится текст - некоторая статья. После этого задаётся содержимое письма, которое вы хотите "скроить" из текста предложенной статьи. Вам необходимо выяснить, можно ли слова "вырезать" из текста статьи.
Если некоторое слово "вырезать" возможно - напечатать его большими буквами, если нет - маленькими. Границы "вырезов" отмечать символом "|".
Допустимые символы - прописные русские буквы; символы - разделители('_' или пробел).

Пример:
ЕСЛИ КТО-НИБУДЬ БУДЕТ СТАРАТЬСЯ ВНУШИТЬ ВАМ, ЧТО ТА ОТРАСЛЬ ПРОМЫШЛЕННОСТИ, В КОТОРОЙ ВЫ ЛИЧНО ЗАИНТЕРЕСОВАНЫ, НАХОДЯСЬ ПОД ЗАЩИТОЙ ПРОТЕКЦИОННЫХ ТАРИФОВ, ДЕРЖИТЕСЬ ПОДАЛЬШЕ ОТ ТАКИХ ЛЮДЕЙ, ИБО РАССУДОК ДОЛЖЕН ВАМ ПОДСКАЗАТЬ, ЧТО ПОДОБНАЯ СИСТЕМА В КОНЦЕ КОНЦОВ ПОДОРВЁТ НАШ ИМПОРТ И НАРУШИТ НОРМАЛЬНУЮ ЖИЗНЬ НАШЕГО ОСТРОВА, ИНТЕРЕСЫ КОТОРОГО ДОРОГИ ВСЕМ НАМ.

Письмо:
ЕСЛИ РАССУДОК И ЖИЗНЬ ДОРОГИ ВАМ ДЕРЖИТЕСЬ ПОДАЛЬШЕ ОТ ТОРФЯНЫХ БОЛОТ

Результат:
ЕСЛИ | РАССУДОК | И | ЖИЗНЬ | ДОРОГИ | ВАМ |

*Грубо говоря как я понял, должно иметься 3 поля, в двух из которых вводится текст, а в 3-ем выводятся слова, имеющиеся в обоих текстах.

Автор: Client 13.07.2008 3:11

удалено

Автор: мисс_граффити 13.07.2008 5:36

могу сделать...
слова можно вырезать только целиком?

только по-моему результат неправильный в примере

Автор: Unconnected 14.07.2008 15:15

Я сделал,правда не на Delphi, а на Pascal, думаю, особой сложности перенести в Delphi не будет. Работает или со всеми строчными буквами, или со всеми заглавными.


Program p1;
uses crt;
var s,s2:string;
m:array[1..100] of string;
m2:array[1..100] of string;
m3:array[1..50] of string;
n,n2,d,g,g2,g3:integer;
f:char;
begin
writeln('Введите текст статьи');
readln(s);
g3:=1;
d:=1;
g:=1;
s:=s+' ';
for n:=1 to length(s) do
begin
f:=s[n];
if (f=' ') or (f='_') then begin
m[g]:=copy(s,d,n-d);
d:=n+1;
g:=g+1;
end;
end;
clrscr;
writeln('Введите текст письма');
readln(s2);
d:=1;
g2:=1;
s2:=s2+' ';
for n:=1 to length(s2) do
begin
f:=s2[n];
if (f=' ') or (f='_') then begin
m2[g2]:=copy(s2,d,n-d);
d:=n+1;
g2:=g2+1;
end;
end;
for n:=1 to g do
begin
for n2:=1 to g2 do
begin
if m[n]=m2[n2] then begin
m3[g3]:=m[n];
g3:=g3+1;
end;
end;
end;
for n:=1 to g3 do
begin
write(m3[n],'|');
end;
readln;
end.