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

Алгоритмы работы с литерными величинами

.docx
Скачиваний:
20
Добавлен:
10.05.2015
Размер:
18.38 Кб
Скачать

Алгоритмы работы с литерными величинами

Понятие литерной величины, длины литерной величины.

Величины, значениями которых являются тексты типа «нет решения», «хорошо», «годы», называются литерными. Говоря о текстах, мы имеем в виду произвольные последовательности символов не обязательно имеющих смысл. Например, литерной можно назвать величины а= “анрпл4тап8” или b= “семинар 2”.

Длиной текста называется количество букв в нем и обозначается: длин (А). Например, если а= “форма”, тогда

длин (А)=5 или длин («информатика»)= 11

Существует текст длиной 0, не содержащий ни одной буквы. Он обозначается двумя стоящими рядом кавычками: а= “” и называется пустым текстом.

Операции с литерными величинами.

Пока мы не определили ни одной операции, которая бы выполнялась с литерными величинами. Введем несколько операций:

  • Операция соединения или склеивания, обозначается знаком “+”. Происходит соединение двух текстов в один. Например,

“ин” + “форматика” = “информатика”;

“156” + “25” = “15625”

Очевидно, что длин (А+В) = длин (А) + длин (В).

  • Предположим, что все буквы в тексте пронумерованы, начиная с номера 1. Тогда мы можем ввести еще одну операцию – вырезка.

1

2

3

4

5

6

7

8

9

10

11

и

н

ф

о

р

м

а

т

и

к

а

Вырезка может осуществляться, если мы знаем номер первой и последней буквы вырезаемого фрагмента. Если А = “информатика”, то

А [3:7] = “форма”

А [8:10] = “тик”

Фрагмент может содержать 1 букву. В этом случае нужно указать

А [7:7] = “а”.

Комбинируя операции склеивания и вырезки, можно получать из одних текстов другие. Например,

А [8:8] + А [4:5] + А[8:8] = “торт”.

Значение литерной величины, как и величины любого другого типа, может быть изменено командой присваивания. При этом старое значение величины “теряется”.

Рассмотренные операции используются в алгоритмах работы с литерными величинами. Рассмотрим такие алгоритмы.

Примеры алгоритмов работы с литерными величинами

Пример 1.

Написать алгоритм вычисления количества букв “а” в слове.

алг число_букв (лит x)

начало цел i

знач:=0

для I от 1 до длин (x)

нц

если x [I;i] = “a”

то знач:= знач + 1

кц

конец

Пример 2.

Написать алгоритм обращения слов. Задача заключается в том, чтобы вывести слово, записанное наоборот. При вводе слова “кот” мы должны получить слово “ток”. Данный алгоритм может быть реализован несколькими способами. Мы приведем один из них, другие предлагается составить самостоятельно.

алг лит обращение (лит x)

начало цел i

знач:= “”

для i от 1 до длин (x)

нц

знач:= x [i:i] + знач

кц

вывод знач

конец

Пример 3.

Дана литерная величина x. Вывести величину y, в которой все буквы а заменены буквой б.

алг лит замена (лит x)

начало цел i

y:= “”

для i от 1 до длин (x)

нц

если x [i:i] = “а”

то y:= y + “б”

иначе y:=y + x [i:i]

кц

вывод y

конец

Пример 4.

Написать алгоритм подсчета числа сочетаний букв “аб” в предложении x и заменить все пробелы знаком “+”. Вывести новое предложение.

алг лит подсчет (лит x)

начало цел i

число:= 0

y = “”

для i от 1 до длин (x) - 1

нц

если x [i:i+1] = “аб”

то число:= число + 1

если x [i:i] = “

то y:= y + “+”

иначе y:= y + x [i:i]

кц

вывод y

вывод число

конец

Задания для самостоятельного решения

Пример 5

Дан текст. Установить пробелы вместо символов, номера которых при делении на 4 дают в остатке 3. Также предусмотреть замену произвольного символа a на символ b, который вводит пользователь. Составить блок схему и алгоритмический язык решения задачи.

Пример 6

Дано предложение, заканчивающееся точкой. Определить и вывести последнее слово в нем.

Пример 7

Пользователь вводит текст. Необходимо поменять местами первое и последние слова. Вывести полученный текст.