Нужно написать Рекурсивную функцию Matching(p,s ), которая сравнивает 2 строки, возвращает значениеTRUE , если p и s совпадают, и FALSE если нет. При этом разбивает p и s на Первый знак и остаток.
Как разбить строки на первый знак и остаток вызвало у меня затруднение. Хотя как работать должна рекурсия предполагаю:
Должны сравниваться только первые знаки, а из остатка, выбираться этот первый знак
Начала так..
[syntax='Pascal']
Function Matching(p,s : string): boolean;
begin
if p[1]=s[1] THEN
Matching := True
else
matching :=...(* без понятия..как-то через функцию copy *)
end;
[/syntax]
Подскажите, пожалуйста, что делать.
Рекусивно сравнить строки. паскаль
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Функция должна работать так: если строки пустые - вернуть True, если не пустые, и первые знаки не совпадают - вернуть False, если не пустые, и первые знаки совпадают - вернуть результат Matching от их остатков.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
спс. уже разобралась
FUNCTION Matching (s,p : string): boolean;
begin
IF Length(s)=0 then
Matching :=Length(s)=Length(p)
else
Matching := (p[1]=s[1]) and Matching(Copy(s,2,255),(Copy(p,2,255));
end;
FUNCTION Matching (s,p : string): boolean;
begin
IF Length(s)=0 then
Matching :=Length(s)=Length(p)
else
Matching := (p[1]=s[1]) and Matching(Copy(s,2,255),(Copy(p,2,255));
end;