Два примера алгоритмов работы со строками
Справочный материал к практикуму «Строки»
Символьные величины и их коды
Величина типа сим – символьная величина - принимает 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!