Высший разум
(1270989)
9 лет назад
Поправишь как надо:
program q175622941;
const
rus = 'программа';
eng = 'program';
var
inp, tmp: string;
function ToLowerRusEng(s: string): string;
var
i: integer;
begin
for i := 1 to Length(s) do
if s[i] in ['A'..'Z', 'А'..'Я'] then
s[i] := Chr(Ord(s[i]) + 32);
Result := s;
end;
function Exists(a, b: string): boolean;
var
i: integer;
begin
Result := True;
for i := 1 to Length(a) do
if (Pos(a[i], b) = 0) then
begin
Result := False;
Break;
end;
end;
function Work(srch, str0, str1: string): string;
var
i: integer;
begin
Result := '';
i := 1;
repeat
if Length(srch) <> 0 then
begin
if (str0[i] <> srch[1]) then
Result := Result + str1[i]
else
Delete(srch, 1, 1);
end else
Result := Result + str1[i];
Inc(i);
until (i > Length(str0)) ;
end;
begin
ReadLn(inp);
{inp := 'I am product GrandfaПрtheоr anГd mрy MoаthМerм. Myа name is Lena.';}
tmp := ToLowerRusEng(inp);
if Exists(rus, tmp) then
WriteLn(Work(rus, tmp, inp));
if Exists(eng, tmp) then
WriteLn(Work(eng, tmp, inp));
if (not Exists(eng, tmp)) and (not Exists(rus, tmp)) then
WriteLn('Not found');
end.
Дан набор слов, в котором, удалив из него подряд идущие буквы и, может быть, знаки препинания и пробелы, можно найти слово «программа». Выведите те символы, которые нужно удалить, чтобы получить это слово.
Набор слов не превышает 255 символов русского и латинского алфавита, цифр, пробелов и знаков препинаний. Слово «программа» может быть как на русском, так и на английском языке (program), прописными или строчными буквами. Если слово найти не удалось, то ничего не выводить.
Например, в строке: «I am product Grandfather and my Mother. My name is Lena.» нужно удалить следующие символы: «I am duct ndfather and y Mother. My name is Lena.», чтобы получить слово «proGram».
Пример входных данных:
I am product Grandfather and my Mother. My name is Lena.
Пример выходных данных:
I am duct ndfather and y Mother. My name is Lena.
Привет, решение данных заданий на Pascal или С++. заранее спасибо !!!