русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Строковые переменные


Дата добавления: 2014-11-28; просмотров: 915; Нарушение авторских прав


 

Некоторой особой разновидностью одномерных символьных массивов являются специальные составные объекты Паскаля, называемые строками. Их частое использование и специальный набор процедур и функций, работающих со строками, позволяет выделить их в отдельный составной тип.

Строкой называется именованная последовательность символьных данных, расположенных в памяти ПЭВМ подряд. В некотором роде, строка является разновидностью одномерного символьного массива, но в отличие от массива, она внутри себя содержит сведения о текущей (заполненной) длине.

Значения строк в программе записываются в виде последовательности символов, заключенных в апострофы. Количество символов в строке может меняться от 0 до максимального, предусмотренного при выделении места под строку. Если при создании строки ее максимальная длина не оговаривается, она считается равной максимальному значению, равному 255 символов. Текущая длина строки хранится в виде однобайтного целого в нулевом байте строки. Поэтому в памяти ЭВМ строка занимает на 1 байт больше места, чем указано в ее максимальной длине.

Для того чтобы завести в программе строку, можно определить свой строчный тип или использовать стандартный описатель строки. По первому способу:

TYPE

str20 = string[20]; { ввели свой тип - строку из 20 символов }

. . .

VAR

Result, Error : str20; {отвели место под 2 строки, каждая по 20 символов, задали им имена }

По второму способу:

VAR

Name : string[20]; { создали строку длиной 20 символов с именем Name }

Переменной типа строка можно задавать значения (как и другим типам переменных) тремя различными способами.

 

Во-первых, значение может быть занесено в строку при ее создании. При этом может быть сформирована строка-константа:

CONST

HELLOW = ' Здравствуйте, я - вежливая программа! ';



или строка-переменная с заданным начальным значением:

CONST

Protocol : string[12] = 'RESULT.TXT';

В отличие от первого случая, содержимое строки Protocol в дальнейшем может быть изменено на другое, но не длиннее 12 символов.

 

Во-вторых, переменной типа строка может быть присвоено значение строчного выражения с помощью оператора присваивания:

VAR

St1,St2,St3 : string[30];

. . .

Begin

. . .

St1:='Пример '; {St1, St2 и St3 получают значения присваиванием }

St2:='строки';

St3:=St1+'новой '+St2; {в St3 окажется 'Пример новой строки'}

 

В-третьих переменная типа строка может быть заполнена операцией ввода:

VAR

St1:string[5];

St2:string;

. . .

Begin

. . .

writeln('Введите 1-ю строку');

readln(St1);

{ набираем последовательность символов АБВГДЕЖЗ <Enter> }

writeln('Введите 2-ю строку');

readln(St2);

 

Набираем последовательность символов 'АБВГ ДЕЖЗ" <Enter>, после таких действий переменная St1 будет содержать символы АБВГД, а переменная St2 - 'АБВГ ДЕЖЗ" Текущая длина St1 будет равна 5, St2 - 11 .

Из строковых данных можно строить строковые выражения, в которых в качестве операндов выступают строковые константы, переменные строковые функции и символьные данные. В этих выражениях можно применять операцию сцепления двух или более строк (конкатенации), обозначаемую символом '+'. Результатом будет новая строка (длиной не более 255 символов), содержащая первую строку за последним символом которой начинается вторая и так далее.

Для строк определены все 6 операций отношений. Строки сравниваются посимвольно, слева направо, как только встречается в одной строке символ с меньшим кодом, так эта строка признается за меньшую. Отсутствие символа (более короткая строка) при одинаковом начале определяет меньшую строку. Результат операции отношения - логическое значение. Например:

выражение отношения результат вычисления выражения

'A' < 'B' TRUE

'A ' < 'A' FALSE

'ABCD' < 'ACB' TRUE

Если значение строчного выражения превышает по длине максимальную длину переменной, при присваивании произойдет отбрасывание не влезающих (последних, правых) символов.

Как уже упоминалось выше, в выражении могут встречаться символьные переменные. Если символьной переменной присваивается строковое выражение, его значение должно в момент присваивания иметь длину = 1, иначе возникнет ошибка.

К отдельным символам строки можно обращаться по его номеру в строке. Для этого используется индексное выражение:

VAR St1,St2:string[6];

. . .

Begin

. . .

St1:='ПРИМЕР';

St2:='Вася';

writeln (St1[4]+St1[3]+St1[6]);оператор печати слова МИР

St1[0]:=St2[0];теперь строка St содержит слово ПРИМ

writeln('St1[0]=',Ord(St1[0]));так можно распечатать содержимое нулевой ячейки строки St1

Нулевой символ содержит текущую длину строки, его значение формируется автоматически, ему нельзя присваивать значение оператором присваивания (оператор st1[0]:=st2[0] сработает, но контроль длинны не выполнится, и последствия могут быть самыми печальными).

Для работы со строками в Турбо Паскале предусмотрено несколько стандартных процедур и функций, хранящихся в библиотеке с именем System.

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



<== предыдущая лекция | следующая лекция ==>
Это необходимо, если в массиве А могут встречаться одинаковые значения, | Стандартные (встроенные) процедуры работы со строками


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.942 сек.