Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Зайцев М. Г. / Отчет по практике 7 Зайцев 2 семестр

.doc
Скачиваний:
13
Добавлен:
02.01.2020
Размер:
53.25 Кб
Скачать

Отчет по практике №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. Написать и оттестировать функцию. Функция получает через параметр строку и возвращает строку, полученную из исходной, посредством циклического сдвига в ней литер вправо на одну позицию.