Практическое занятие № 8. Обработка элементов строк.

 

1. Цель занятия:

- научиться конструировать алгоритмы обработки элементов строк, а также составлять и отлаживать программы обработки элементов строк.

 

2. Перечень необходимых средств обучения (оборудование, материалы)

– технические средства обучения: персональные компьютеры, локальная сеть, коммутатор для подключения в сети Internet.

 

Используемое программное обеспечение:

- Microsoft Windows XP/7

- Язык программирования Free Pascal

- Антивирус Касперского 6.0

 

3. Основные теоретические положения

Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY[O..N] OF CHAR, однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, где N - максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не больше 255 . Турбо Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно N=255 .

Строка в Турбо Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [0..N] OF CHAR, например:

var

st : String;

begin

.....

if st[5] = 'A' then...

end.

 

Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки, первый значащий символ строки занимает второй байт и имеет индекс 1. Над длиной троки можно осуществлять необходимые действия и таким способом изменять длину. Например, удалить из строки все ведомые пробелы можно следующим образом:

var

st : String;

i : Byte;

begin

i := ord(st [0] ) ; {i - текущая длина строки}

while (i <> 0) and (st[i] = ' ') do

begin

dec(i);

st[0] := chr(i)

end;

.....

end.

 

Значение ORD(st[0]) , т.е. текущую длину строки, можно получить и с помощью функции LENGTH(st), например:

while (Length(st)<>0) and (st[Length(st)]=' ') do

st[0] := chr(Length(st)-1)

К строкам можно применять операцию «+» - сцепление, например:

st := 'а1 + 'b';

st := st + 'с'; {st содержит "abc"}

 

Если длина сцепленной строки превысит максимально допустимую длину N, то «лишние» символы отбрасываются. Следующая программа, например, напечатает символ 1:

var

st: String [1] ;

begin

St:='123';

WriteLn(st)

end.

 

Все остальные действия над строками и символами реализуются с помощью описываемых ниже стандартных процедур и функций.

CONCAT(S1 [,S2, ... , SN] ) - функция типа STRING; возвращает строку, представляющую собой сцепление строк-параметров SI, S2, ..., SN.

COPY(ST, INDEX, COUNT) - функция типа STRING; копирует из строки ST COUNT символов, начиная с символа с номером INDEX.

DELETE (ST, INDEX, COUNT) - процедура; удаляет СОUNT символов из строки ST, начиная с символа с номером INDEX.

INSERT (SUBST, ST, INDEX) - процедура; вставляет подстроку SUBST в строку ST, начиная с символа с номером INDEX.

LENGTH (ST) - функция типа INTEGER; возвращает длину строки ST.

POS (SUBST, ST) - функция типа INTEGER; отыскивает в строке STпервое вхождение подстроки SUBST и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращается ноль.



STR(X [; WIDTH [: DECIMALS] ], ST) - процедура; преобразует число X любого вещественного или целого типов в строку символов ST так, как это делает процедура WRITELN перед выводом; параметры WIDTH и DECIMALS, если они присутствуют, задают формат преобразования: WIDTH определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного или целого числа X, a DECIMALS - количество символов в дробной части (этот параметр имеет смысл только в том случае, когда Х- вещественное число).

VAL(ST, X, CODE) - процедура; преобразует строку символов ST во внутреннее представление целой или вещественной переменной X, которое определяется типом этой переменной; параметр CODE содержит ноль, если преобразование прошло успешно, и тогда в X помещается результат преобразований, в противном случае он содержит номер позиции в строке ST, где обнаружен ошибочный символ, и в этом случае содержимое Х не меняется; в строке ST могут быть ведущие пробелы, однако ведомые пробелы недопустимы; например, обращение val (' 123',k,i) пройдет успешно: k получит значений 123, в i будет помещен 0, в то время как обращение val (' 123 ' , k, i) будет ошибочным: значение k не изменится, a i будет содержать 4.

UPCASE (СН) - функция типа CHAR; возвращает для символьного выражения СН, которое должно представлять собой строчную латинскую букву, соответствующую заглавную букву; если значением СН является любой другой символ (в том числе строчная буква русского алфавита), функция возвращает его без преобразования.

 

4. Содержание заданий

Варианты заданий:

 

Вариант U0.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
ворон про ил а енка Ворона проворонила вороненка

 

2. Выполнить преобразование слов:

Грамм – гроза – проза – проба.

 

Вариант U1.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
забыть чисто на всегда и Забыть начисто и навсегда

 

2. Выполнить преобразование слов:

Фильтр – фигура – натура – нарзан – карман - кафтан.

 

 

Вариант U2.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
висит стене ти на кар Висит картина на стене

 

2. Выполнить преобразование слов:

Форма – корма – корка - кофта.

 

Вариант U3.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
паро шел по в ход Пароход пошел в поход

 

2. Выполнить преобразование слов:

Формат – форель – капель - каприз.

 

Вариант U4.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
На столе - и конь мышь як На столе – мышьяк и коньяк

 

2. Выполнить преобразование слов:

Метка – сетка – седло – сопло – совет - кювет.

 

Вариант U5.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
ворон про ил а енка Ворона проворонила вороненка

 

2. Выполнить преобразование слов:

Кофта – муфта – марка – вилка – ветка - весна.

 

Вариант U6.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
черт заказать - моя еж мечта Заказать чертеж – моя мечта

 

2. Выполнить преобразование слов:

Груша – гроза – проза – проба – сдоба - свара.

 

Вариант U7.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
он забыть, банк что рот Забыть, что он банкрот

 

2. Выполнить преобразование слов:

Бисер – бомба – балка – палка - палец.

 

Вариант U8.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
пар ад надо смотреть по Надо посмотреть парад

 

2. Выполнить преобразование слов:

Город – горох – шорох - шпора.

 

Вариант U9.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
кормила ку ка ш он Кукушка кормила кукушонка

 

2. Выполнить преобразование слов:

Процесс – провода – природа - призрак.

 

Вариант U10.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
двор а е трав на На дворе трава

 

2. Выполнить преобразование слов:

Нитка – нерка – корка – кирка – книга - пурга.

 

Вариант U11.

1. Применить операцию конкатенации к переменным A,B,C,D,E так, чтобы получилось указанное значение переменной X:

A B C D E X
забыть чисто на всегда и Забыть начисто и навсегда

 

2. Выполнить преобразование слов:

Куклы – кусты – кусок – носок – нытик - котик.

 

 

5. Содержание отчёта:

- постановка задачи;

- блок схема алгоритма решения задачи;

 

6. Контрольные вопросы

6.1.Что представляет собой тип string?

6.2. Какое максимально возможное количество символов может содержать строка?

6.3. Как при описании строкового типа указывается длина строки?

6.4. Всегда ли фактическая длина строки равна объявленной в описании?

6.5. Перечислите строковые операции, функции, процедуры.

6.6. Может ли в процессе выполнения программы изменяться фактическая длина строки?

 

7. Список рекомендуемой литературы

7.1 Гвоздева В.А. Введение в специальность программиста.- М.:ФОРУМ; ИНФРА-М, 2010. - 206с.

7.2 Колдаев В. Д. Сборник задач и упражнений по информатике: учеб.пособие для сред.проф.образования / В. Д. Колдаев, Е. Ю. Павлова. - М.: ФОРУМ; ИНФРА-М, 2010. - 256с.

7.3 Мишенин А.И. Сборник задач по программированию: учеб. пособие/ М.: Финансы и статистика; ИНФРА-М,2009 - 224с.









Последнее изменение этой страницы: 2016-04-18; Нарушение авторского права страницы

infopedia.su не принадлежат авторские права, размещенных материалов. Все права принадлежать их авторам. Обратная связь