Два примера алгоритмов работы со строками



Справочный материал к практикуму «Строки»

Символьные величины и их коды

Величина типа сим – символьная величина - принимает 256 значений, их можно разными способами закодировать целыми числами. ВКумир "встроены" два способа кодировки символов: так называемая кодировка КОИ-8 и кодировка Unicode.

Кодировка КОИ-8. Эта кодировка каждому из 256 символов сопоставляет целое число от 0 до 255 и задается функциями:

цел код(арг сим) нахождение кода символа;

Сим символ(арг цел) нахождение символа по его коду.

Символы цифр имеют коды от 48 до 57:

Алг Символы цифр

нач цел м, сим пробел = " "

Нц для м от 48 до 57

. . вывод пробел, м, " ", символ(м)," | "

. .

Кц

Кон

Эта программа выводит следующее:

48 0 | 49 1 | 50 2 | 51 3 | 52 4 | 53 5 | 54 6 | 55 7 | 56 8 | 57 9 |

Кодировка Unicode. Эта кодировка каждому из 256 символов сопоставляет целое число от 0 до 216-1 и задается функциями:

цел юникод(арг сим) нахождение юникода символа;

Сим юнисимвол(арг цел) нахождение символа по его юникоду.

Для символов с кодами от 0 до 127 юникод совпадает с кодом. В частности, юникоды цифр и заглавных и строчных латинских букв совпадают с их кодами.

Символьные величины можно проверять на совпадение "=" и несовпадение "<>" . К символьным величинам можно также применять операции сравнения «>», «<», «>=», «<=». Применительно к цифрам и латинским буквам, эти операции сравнения дают ожидаемый результат, а именно

"0"<"1"<"2"<...<"8"<"9";

"а"<"b"<"c"<...<"x"<"y"<"z";

"A"<"B"<"C"<...<"X"<"Y"<"Z";

Это позволяет легко проверять, является ли символ Х цифрой или заглавной или строчной латинской буквой:

Усл1:= код("0")<=код(Х)<=код("9")

Усл2:= "0"<=Х<="9"

Усл3:= "А"<=Х<="Z"

Усл4:= "a"<=Х<="z"

При переводе текстовых представлений многозначных десятичных чисел в числовую форму и обратно требуется уметь переводить из цифрового представления в символьное и обратно каждую десятичную цифру. Это удобно делать, используя тот факт, что коды цифр от 0 до 9 являются последовательными целыми числами

Алг цел ЧислоИзЦифры(арг сим х)

. дано "0"<=x<="9"

. надо | знач = целое число, соответствующее цифре х

начзнач:=код(x)-код("0")

Кон

Алг сим ЦифраИзЧисла(арг цел х)

. дано 0<=x<=9

. надо | знач = единственная цифра десятичной записи числа х

начзнач:=символ(код("0")+x)

Кон

Литерные величины (строки)

Значением величины типа сим является одиночный символ.

Из символов можно составлять строки - последовательности символов переменной длины. Такая последовательность является значением так называемой литерной величины - величины типа лит. В программе литерные величины описываются аналогично другим величинам:

Цел м, вещ х, лит Строка, стр1, стр2

Значение литерной величины называется строкой. Строка может быть задана явно, как последовательность символов в двойных или одинарных кавычках: "Мама и папа", '-1023'.

 Значением строк "'х'" и '"х"' являются последовательности из трех символов 'х' и "х" соответственно, причем окаймляющие кавычки в строку не входят.а внутренние кавычки входят, при этом они должны - и это общее правило - отличаться от окаймляющих кавычек. Строка " " состоит из одного пробела, строка " " из двух пробелов. Строка "" вообще не содержит ни одного символа и называется пустой строкой.

Литерной величине можно присвоить значение:

стр1:="Паро"; стр2:="воз"

Строки можно "складывать", т.е. приставлять одну к другой для образования новой строки. Официальное название этой операции – конкатенация строк.

Строка:=стр1+стр2 | теперь Строка="Паровоз"

Строка:=стр1+"ход"| теперь Строка="Пароход"

Функция целдлин(арг лит х)вычисляет длину строки х. Например, длин(стр1)=4, длин("Паровоз")=7, длин("")=0.

Символы, составляющие строку, нумеруются, начиная с 1 и к элементу строки можно обратиться по его номеру:

Строка[1]:="п"         | теперь Строка="пароход"

Строка[4]:= Строка[2] | теперь Строка="параход"

Два примера алгоритмов работы со строками

Следующий алгоритм подсчитывает, сколько раз в строке встречается данный символ:


Дата добавления: 2018-06-01; просмотров: 192; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!