Зайцев М. Г. / Отчет по практике 7 Зайцев 2 семестр
.docОтчет по практике №7
1. Написать и оттестировать функцию. Функция получает через параметр строку и
возвращает строку, полученную из исходной, путём удаления из неё всех подряд идущих с левого края пробелов.
function delLeftSpase(S: String): String;
//Возвращает строку, из символов строки S, в которой отсутствуют
//начальные пробелы.
begin
while (Length(S) <> 0) and (Copy(s,1,1) = ' ') do begin
S:= Copy(s,2,Length(S));
end;
Result:= s;
end;
var a:string;
begin
s:='';
write('s='); readln(s);
s:=delLeftSpase(s);
writeln (s);
readln;
end.
Номер теста |
Исходная строка |
Строка результата |
1 |
‘ qwerty’ |
‘qwerty’ |
2 |
‘ abcde’ |
‘abcde’ |
2. Написать и оттестировать функцию. Функция получает через параметр строку и возвращает строку, полученную из исходной, посредством удаления из неё всех подряд идущих с правого края пробелов.
function delRightSpase(S: String): String;
begin
while (Length(S) <> 0) and (Copy(s,Length(S),1) = ' ') do begin
delete(S,Length(S),1);
end;
Result:= s;
end;
var a:string;
begin
s:='';
write('s='); readln(s);
s:=delRightSpase(s);
writeln (s);
readln;
end.
Номер теста |
Исходная строка |
Строка результата |
1 |
‘qwerty ’ |
‘qwerty’ |
2 |
‘abcde ’ |
‘abcde’ |
3. Написать и оттестировать функцию. Функция получает через параметр строку (Str) и подстроку (SubStr) и возвращает строку, полученную из исходной, путём удаления из неё всех вхождений подстроки (SubStr). Просмотр строки Str и удаление подстроки SubStr осуществляем слева направо.
var s,SubS:string; function delCopy(S,SubS: String): String; begin while (Pos(SubS,s) <> 0) and (Length(S) <> 0) do begin delete(S,Pos(SubS,s),Length(SubS)); end; Result:= s; end; begin S:=''; SubS:=''; write('s = '); readln(s); write ('SubS='); readln (SubS); s:= delCopy(s,SubS); write(s); readln; end.
Номер теста |
Исходная строка (S) |
Подстрока (SubS) |
Строка результата |
1 |
qwertyqwerqw |
qw |
qwertyer |
2 |
abcdeabcdabcab |
ab |
Cdecdc |
4. Написать и оттестировать функцию. Функция получает через параметр строку (Str) и подстроку (SubStr) и возвращает число вхождений подстроки в строку. Просмотр строки Str и подсчет вхождений в неё подстроки SubStr выполняем слева направо.
var S,SubS:string;
a:integer;
function CountCopy(S,SubS: String): Integer;
begin
Result:= 0;
while (Pos(SubS,s) <> 0) and (Length(S) <> 0) do begin
delete(S,1,Pos(SubS,s) + Length(SubS)-1);
inc(Result);
end;
end;
begin
S:='';
SubS:='';
write('s = '); readln(s);
write ('SubS='); readln (SubS);
a:= CountCopy(S,SubS);
writeln (a);
readln;
end.
Номер теста |
Исходная строка (S) |
Подстрока (SubS) |
Результат |
1 |
qwertyqwerqw |
qw |
3 |
2 |
abcdeabcdabcab |
ab |
4 |
5. Написать и оттестировать функцию. Функция получает через параметр строку (Str) и две подстроки (SubStr1, SubStr2) и возвращает строку, полученную из исходной, посредством замены в ней всех вхождений подстроки (SubStr1) на строку (SubStr2). Просмотр строки Str и замену в ней подстроки SubStr1 на SubStr2 выполняем слева направо.
6. Написать и оттестировать функцию. Функция получает через параметр строку и возвращает строку, полученную из исходной, посредством перестановки в ней литер в обратном порядке.
Ограничение. Вспомогательную строку не использовать.
function Reorder(z: String): String;
var
i: Integer;//индекс строки
n: Integer;//длина строки
begin
n:= Length(z);
For i:=1 to n-1 do begin
Insert(Copy(z, n, 1), z, i);
delete(z, n + 1, 1);
end;
Result:= z;
end;
var z:string;
begin
z:='';
write('z = '); readln(z);
z:= Reorder(z);
writeln(z);
readln;
end.
Номер теста |
Исходная строка |
Строка результата |
1 |
qwerty |
ytrewq |
2 |
abcdef |
fedcba |
7. Написать и оттестировать функцию. Функция получает через параметр строку и возвращает строку, полученную из исходной, посредством циклического сдвига в ней литер вправо на одну позицию.