Var
FistName, LastName, TempName: StringType; Здесь FistName, LastName и TempName
представляют собой переменные строки(длиной до 10 символов.)
Для содержания набора символов в памяти TurboPascal можно использовать как массив символов, так и строковую переменную, например:
Const StringSite=20;
Type
IndexRange = 1..StringSite; тип-диапазон
CharArray = arroy IndexRange ; of_Char; Stringro = String StringSite ;
Var
FirstName: CharArray; массив из 20
символов
LastName;String 20 ; строка содержащая до 20 символов
В данном описании выделена память для массива FirstName и для строковой переменной LastName, причем в обоих случаях выделяется память для содержания 20 символов.
Массив FirstName можно в программе обрабатывать как любой другой массив. При этом для занесения данных в массив или выборки их из массива необходимо воспользоваться оператором цикла.
Заметим, что для занесения в переменную LastName строкового значения можно воспользоваться как оператором Read, так и арифметическим оператором присваивания, например,
LastName:=‘Washiugtjn‘;
Отметим, также, что строка в TurboPascal трактуется как цепочка отдельных символов.
К любому символу в строке можно обратиться точно также, как к элементу одномерного массива
Array[0..N]_of_Сhar, например: Var
St: string; Begin
……. If_St[5]=‘A‘_then… …….
End.
В заключение отметим, что двухступенчатые описание строкового типа необязательно.
Можно воспользоваться одним описателем Var, Например:
A:String;
B:String [20] ;
Здесь переменная А может состоять из 255 символов (по умолчанию), а переменная B может иметь только 20 символов.
Со строками и символами можно производить все операции сравнения:
<,<=,>,>=,<>,=;
Кроме того, к строкам можно применять операцию щепления <<+>>, например:
St:= ‘a‘ + ‘b‘; St;:= St + ‗c‘;
В результате St будет содержать «abc».
Все остальные операции над строками и символами осуществляются с помощью следующих процедур и функций:
- Concat(S1[,S2,…,SN]) – функция осуществляет присоединение к строке S1 строк S2,…, SN (слияние нескольких строк в одну строку);
-Copy(St, Index, Count) – функция удаляет(копирует) из строки St определенное количество символов равное Count, начиная с номера символа равного INDEX, например:
Day := copy(Date,3,7);
-DELETE(ST,INDEX,COUNT) – процедура:
выполняет те же функции, что и COPY.
-INSERT(SUBST,ST,INDEX) – процедура: вставляет подстроку SUBST в строку ST, начиная с символа имеющего номер INDEX.
-LENGTH(ST)- функция типа INTEGER; определяет длину строки ST.
-POS(SOBST,ST) – функция типа INTEGER;
отыскивает в строке ST первое вхождение подстроки SUBST выдает номер позиции с которой она начинается; если подстрока не найдена, возвращается и выдается ноль;
-URCASE(CH) – функция типа Char; возвращает для символьного выражения CH , которое должно представлять собой строчную латинскую букву, соответствующую заглавную букву; если значение CH является любой другой символ (в том числе строчная буква русского алфавита), функция возвращает его без преобразования.
Описание переменных
Если вышеперечисленные описатели в программе могут отсутствовать, то данный раздел всегда обязателен в программе, так как прежде чем описать какую либо переменную необходимо обязательно определить тип, к которому эта переменная принадлежит. Существует четыре основных встроенных типа данных переменных:
1. Целочисленный – integer.
2.Вещественный – real.
3.Логические – boolean (булевый).
4.Символьные – char.
Последний тип данных рассмотрим более подробно. Значения типа Char представляют собой отдельные символы-буквы, цифры или специальные знаки. Каждый литерал типа Char должен быть заключен в апострофы.
Например: A‘, z‘, 2‘, g‘, *‘, :‘, ‖ ‘, я‘, ‘ и т.д.
Здесь предпоследний литерал кавычки, предпоследний – русская буква алфавита (необходимо клавиши переключать на русский шрифт), а последний литерал - пробел.
Хотя литерал типа Char в программе (в соответствующем месте) должен быть заключен в апострофы, значение типа Char в них не нуждается, т.е. , например, при вводе буквы z (с помощью оператора Read) в качестве значения тип Char, которое должно быть считано программой, от вас требуется только нажать клавишу z. Но в то же, если этот тип данных включен в правую часть арифметического оператора присваивания) , то апострофы должны быть.
Например: y:= a‘;
Это праммной ввод исходных данных, в отличие от ввода данных с клавиатуры – с помощью оператора
Read.
Следует отметить, что арифметические операции над значениями типа Char невозможны. В тоже время можно сравнить символы, а также выводить их на экран дисплея (пример см. в разделе 4.2.3)
Как видно из изложенного выше каждому из этих типов соответствует свое служебное слово на
PASCAL.
Следует отметить, что для целого и вещественного типов существуют дополнительные типы(см.рис.4.3, табл.4.3.1 и 4.3.2. соответственно).
Данный раздел для всех четырех типов данных должен начинается с ключевого слова var, после которого перечисляются через запятую все переменные определенного типа, затем ставится двоеточие и после него служебное слово данного типа.
Например:
Var
a, b, c, d, x, y: real – вещественный тип;
і, ј, k, l, m, n: integer – целый тип данных;
В данном примере была описана процедура описания простых переменных (целых и вещественных).
Описание массивов с помощью данного описателя осуществляется следующим образом. После Var через запятую перечисляются имена массивов, после последнего имени из списка ставится <<:>> затем обязательное ключевое слово Array после него в квадратных скобках указывается начальный индекс массива, после << ..>> ставится конечное значения массива (тем самым указывается его размерность) – после закрытой квадратной скобки пишется слово OF и после него к.-л. тип массива,
Например: Var
A: ARRAY[1…8]_OF_REAL;
MOD,DOP: ARRAY[1…10]_OF_INTEGER;
Это для одномерного массива.
Двумерные массивы (матрицы) описываются следующим образом:
Var
MATRIX: ARRAY[1..3,1..10]_OF_REAL;