Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Помогите с задачей плз
Напишите функцию rightposition, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1. Например, rightposition('Миссисипи' . 'си') дает значение 6.

sLip
1 | Автор: AvoqzT | 2012-05-21, 20:18   |  Репутация: [ + 0 ]
Ага, тоесть pos(str2,str1); только наоборот?)

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2012-05-22, 09:15   |  Репутация: [ + 211 ]
да, как я понял

sLip
3 | Автор: AvoqzT | 2012-05-22, 19:53   |  Репутация: [ + 0 ]
function rightposition(const st, subs : string) : integer;
var
i, j, lensubs : integer; // lensubs - длина подстроки
match : boolean; // логическая переменная - нашли ли подстроку
begin
Result:=0; // поначалу предполагаем, что строку не нашли
lensubs:=length(subs);
for i:=length(st) downto 1 do // начинаем просмотр с конца строки
begin
if st[i]=subs[lensubs] then // если последние символы строки и подстроки совпадают, то проверим остальные
begin
match:=true; // предположим, что подстрока найдем
for j:=1 to lensubs-1 do // начинаем просмотр с конца подстроки
if st[i-j]<>subs[lensubs-j] then // если нашли несовпадение, то...
begin
match:=false; // отмечаем флаг, как "совпадения нет"
break; // и оканчиваем цикл проверок
end;
if match then // смотрим, было ли совпадение
begin
Result:=i-lensubs+1; // совпадение было - вернём позицию, с которой совпадение было
exit; // и выйдем из функции
end;
end;
end;
end;

"Спасибо" принимается в виде повышения репутации ( Зелёный плюсик:). Спасибо


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
4 | Автор: Berestovskiy | 2012-05-23, 10:20   |  Репутация: [ + 211 ]
  • Страница 1 из 1
  • 1
Поиск: