double arrow

Задача 2. Дана линейная таблица. Удвоить все нечетные элементы таблицы


Дана линейная таблица. Удвоить все нечетные элементы таблицы.

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

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

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

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

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

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

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

“156” + “25” = “15625”

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

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

и н ф о р м а т и к а

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

А [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

Конец


Сейчас читают про: