Строки могут быть представлены
следующими типами: shortstring, Longstring и widestring. Различаются эти типы
предельно допустимой длиной строки, способом выделения памяти для переменных
и методом кодировки символов.
Переменной типа shortstring
память выделяется статически, т. е. до начала выполнения программы, и количество
символов такой строки не может превышать 255. Переменным типа Longstring и widestring
память выделяется динамически — во время работы программы, поэтому длина таких
строк практически не ограничена.
Помимо перечисленных
выше типов можно применять универсальный cтроковый тип String. Тип String эквивалентен
типу Shortstring.
Переменная строкового
типа должна быть объявлена в разделе объявления переменных. Инструкция объявления
в общем виде выглядит так:
Имя: String;
или
Имя: String [длина]
где:
Пример объявления переменных
строкового типа:
name:
string[30];
buff:
string;
Если в объявлении строковой
переменной длина строки не указана, то ее длина задается равной 255 символам,
т. е. объявления
stroka:
string [255]; stroka: string;
эквивалентны.
В тексте программы
последовательность символов, являющаяся строкой (строковой константой), заключается
в одинарные кавычки. Например, чтобы присвоить строковой переменной parol значение,
нужно записать:
parol:=
'Большой секрет';
или
parol:=
'2001';
Следует обратить внимание,
что инструкция parol:=2001; неверная, т.к. тип константы не соответствует типу
переменной. Во время компиляции этой инструкции будет выведено сообщение: incompatible
types: 'Char' and 'Integer' (типы Char и Integer несовместимы).
Используя операции
=, <, >, <=, >= и о, переменную типа string можно сравнить с другой
переменной типа string или со строковой константой. Строки сравниваются посимвольно,
начиная с первого символа. Если все символы сравниваемых строк одинаковые, то
такие строки считаются равными. Если в одинаковых позициях строк находятся разные
символы, большей считается та строка, у которой в этой позиции находится символ
с большим кодом. В табл. 3.1 приведены примеры сравнения строк.
Таблица 3.1.
Сравнение строк
Строка 1 |
Строка 2 |
Результат сравнения |
||
Иванов |
Иванов |
Строки равны |
||
Васильев |
Васильев |
Строка 1 больше строки
2 |
||
Алексеев |
Петров |
Строка 1 меньше строки
2 |
||
Иванова |
Иванов |
Строка 1 больше строки
2 |
||
Кроме операции сравнения,
к строковым переменным и константам можно применить операцию сложения, в результате
выполнения которой получается новая строка. Например, в результате выполнения
инструкций
f
irst__name: ='Иван' ;
last_name:='Иванов';
ful_name:=first_name+last_name;
переменная fui_name получит значение 'Иван Иванов'.
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.
В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.
Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.