Страница 1 из 1

Рекусивно сравнить строки. паскаль

Добавлено: 24 мар 2010, 23:28
notandnot
Нужно написать Рекурсивную функцию 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]
Подскажите, пожалуйста, что делать.

Re: Рекусивно сравнить строки. паскаль

Добавлено: 25 мар 2010, 10:26
Хыиуду
Функция должна работать так: если строки пустые - вернуть True, если не пустые, и первые знаки не совпадают - вернуть False, если не пустые, и первые знаки совпадают - вернуть результат Matching от их остатков.

Re: Рекусивно сравнить строки. паскаль

Добавлено: 27 мар 2010, 00:01
notandnot
спс. уже разобралась

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;