Операция
|
Содержимое памяти, выделенной строковой переменной s
|
Значение s
|
var s: string[6];
|
s[0]
|
s[1]
|
s[2]
|
s[3]
|
s[4]
|
s[5]
|
s[6]
|
|
s:=‘ ‘;
|
0
|
|
|
|
|
|
|
‘ ‘
|
s:=‘Yes’;
|
3
|
Y
|
e
|
s
|
|
|
|
‘Yes’
|
s[4]:=‘!’;
|
3
|
Y
|
e
|
s
|
!
|
|
|
‘Yes’
|
s:=s+’No’;
|
5
|
Y
|
e
|
s
|
N
|
o
|
|
‘YesNo’
|
s[4]:=‘!’;
|
5
|
Y
|
e
|
s
|
!
|
o
|
|
‘Yes!o’
|
На этом примере можно понять, что операция присваивания значения элементу строки, индекс которого превосходит текущую длину строки, не является корректной и фактически не оказывает влияния на результат. Поэтому применения подобных конструкций при программировании следует избегать, стараясь обходить стандартными операциями над строками. Рассмотрим их подробнее.
В отличие от массивов, над строковыми переменными определены операции считывания и печати. К строкам применима операция сложения. При сложении двух строк концу первой из них приписывается вторая (по-другому эту операцию называют конкатенацией строк).
Над строками между собой производится согласно так называемому лексикографическому порядку. Строка s1 считается меньше строки s2, если существует такая позиция k, что s1[1..k-1] = s2[1..k-1] и s1[k]<s2[k] или такой позиции не существует, но строка s1 короче строки s2. При операциях сравнения идет сравнение строк, начиная с левого края до первого несовпадающего символа. Например:
Пример. Покажем переменные, выражающие результат от строки ‘институт’.
В программе можно обратиться также и к определенному символу строки:
Строковые процедуры
Delete(st,poz,n) – удаление из строки st n символов, начиная с позиции poz.
Insert(st1,st2,poz) – вставка строки st1 в строку st2, начиная с позиции poz.
str(a,st) – преобразовывает число или переменную типа integer, byte, real в строку и помещает результат в переменную st.
val(‘17425’,x,cod) – преобразовывает переменную st строкового типа в переменную типа integer, byte, real.
Если преобразование не может быть выполнено, то в переменную cod записывается номер символа строки, который является причиной неудачи преобразования. Если преобразование выполнено успешно, то значение cod=0.
Строковые функции
1. Copy(st,poz,n) – из строки st выделяется n символов, начиная с позиции poz.
2. Concat(st1,st2,…,stN) – дает новую строку, состоящую с st1 до stN строк, соединенных («сцепленных») в одну, для выполнения той же функции можно использовать знак «+».
3. Length(st) – длина строки st.
4. Pos(st1,st2) – обнаруживает первое появление в st2 подстроки st1.
5. UpCase(Ch) – преобразовывает строчную латинскую букву в прописную.
Лекция 8. Множества (Set)
Еще один структурированный тип данных - это множество (set). В нем может содержаться не более 256 элементов. Важное отличие множества от остальных структурированных типов состоит в том, что его элементы не являются упорядоченными.
Описание множеств
В разделе var множества описываются следующим образом:
Элементы могут принадлежать к любому порядковому типу, размер которого не превышает 1 байт (256 элементов). Например:
Множество-константа
Неименованная константа
Множество можно задать неименованной константой прямо в тексте программы. Для этого необходимо заключить список элементов создаваемого множества в квадратные скобки:
Достарыңызбен бөлісу: |