Материал: Алгоритмический язык Turbo Pascal 7.0. Юршин Е.Д., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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;

Источник: https://studfile.net/preview/16565609/