Реализовать функции Copy и Pos - Pascal ABC
Формулировка задачи:
А) Выделения подстроки и заданной строки(copy)
b) определения, выходит ли указанная подстрока в заданную строку (pos)
В основной программе организуйте вызов этих функций со своими параметрами
Решение задачи: «Реализовать функции Copy и Pos»
textual
Листинг программы
function MyCopy(st:string;p,d:byte):string;
var n,i:byte;
ps:string;
begin
n:=ord(st[0]);
if p>n then ps:=''
else
begin
ps:='';
i:=p;
while (i<=p+d-1)and(i<=n) do
begin
ps:=ps+st[i];
i:=i+1;
end;
end;
MyCopy:=ps;
end;
var s:string;
p,d:byte;
begin
writeln('Строка:');
readln(s);
write('Начало копирования p=');
readln(p);
write('Количество символов d=');
readln(d);
if MyCopy(s,p,d)='' then write('Пустая строка')
else write(MyCopy(s,p,d));
end.
Объяснение кода листинга программы
- Функция MyCopy принимает три параметра: st (строка, которую нужно скопировать), p (начало области для копирования) и d (количество символов для копирования).
- Переменная n и i инициализируются значением первого символа строки st и проверяется, превышает ли значение переменной p значение n. Если да, то переменная ps устанавливается в пустую строку. Если нет, то переменная ps устанавливается в пустую строку, а i устанавливается равным p.
- Затем в цикле while выполняются следующие действия: переменная ps увеличивается на текущий символ st[i], и i увеличивается на 1. Цикл продолжается до тех пор, пока i меньше или равно p+d-1 и i меньше или равно n.
- По окончании цикла переменная ps возвращается из функции MyCopy.
- Основная программа считывает строку, начало копирования и количество символов для копирования. Если функция MyCopy возвращает пустую строку, выводится сообщение
Пустая строка. В противном случае выводится результат функции MyCopy.