Найти последнее вхождение некоторой подстроки в строке - Turbo Pascal

Формулировка задачи:

пожалуйста помогите. дан текст из нескольких строк. предлагается: 1) найти последнее вхождение некоторой подстроки в строке (подстрока и номер строки, в которой осуществляется поиск, вводятся пользователем и являются параметрами функции). 2)удалить из строки определенное количество завершающих символов (номер строки, количество символов вводятся пользователем)

Код к задаче: «Найти последнее вхождение некоторой подстроки в строке - Turbo Pascal»

textual
Type
  MyString = String;
  mas = Array [1..30] of MyString;
Var
  st: mas;
  i,n,nom,kl: Byte;
  sub: MyString;
{---------}
Function LastPos(substr: MyString; num: Integer): Byte;
var s, space: MyString;
    k: Byte;
begin
  k:=0;
  space:='';
  s:=st[num];
  While Pos(substr,s)<>0 do
  begin
    k:=Pos(substr,s);
    For i:=1 to Length(substr) do
    space:=space+#0;
    Delete(s,Pos(substr,s),Length(Copy(s,Pos(substr,s),Length(substr))));
    s:=space+s;
    space:='';
  end;
  LastPos:=k;
end;
{---------}
Function DeleteSymbols(num: Integer; kol: Byte): MyString;
var s: MyString;
begin
  If kol<=Length(st[num]) Then
  begin
    s:=st[num];
    Delete(s,Length(s)-kol+1,kol);
  end;
  DeleteSymbols:=s;
end;
{---------}
BEGIN
Writeln('Введите кол-во строк: ');
Readln(n);
Writeln('Введите ',n,' строк:');
For i:=1 to n do
Readln(st[i]);
Writeln('Введите подстроку и номер строки: ');
Readln(sub,nom);
If LastPos(sub,nom)=0 Then
Writeln('Такой подстроки нет')
Else
Writeln('Позиция последней подстроки = ',LastPos(sub,nom));
Writeln('Введите номер строки и количество завершающих символов, кот. необходимо удалить: ');
Readln(nom,kl);
Writeln('Полученная строка: ',DeleteSymbols(nom,kl));
Readln
END.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

8   голосов, оценка 4.375 из 5


СДЕЛАЙТЕ РЕПОСТ