- •Учебное пособие по дисциплине «Основы программирования»
- •Содержание
- •Пояснительная записка
- •Основная часть введение
- •Элементы языка паскаль основные понятия языка паскаль
- •Данные в паскале
- •Типы данных
- •Структура программы
- •Перечисляемый тип
- •Ограниченный тип
- •Выражения
- •1. Арифметические выражения.
- •2. Логические выражения.
- •Операторы языка паскаль
- •Пустой оператор
- •Составной оператор
- •Операторы ввода read и readln
- •Операторы вывода write и writeln
- •Управление формой вывода данных
- •Оператор присваивания
- •Безусловный оператор
- •Условный оператор
- •Оператор варианта (выбора) case
- •Операторы цикла
- •Оператор цикла с постусловием
- •Оператор цикла с предусловием
- •Оператор цикла с параметром
- •Структурированные типы данных
- •Массивы (регулярный тип)
- •Упакованные массивы
- •Строковый Тип данных (String)
- •Функции для работы со строками
- •Множества (множественный тип)
- •Подпрограммы в паскале
- •Заключение
- •Литература
Упакованные массивы
Элементы массива запоминаются в последовательно расположенных ячейках памяти. Такой способ расположения эффективен для запоминания целых и вещественных чисел. При работе с другими типами элементов такой способ недостаточно экономен.
Для экономии памяти в языке Паскаль существуют средства, позволяющие более компактно расположить данные в памяти. Это делается с помощью упаковки данных. Например, массивы символьной информации упаковываются по два символа в одну ячейку. Компилятор делает это, если при описании массива указать ключевое слово PACKED перед ключевым словом ARRAY.
Синтаксис описания упакованного массива:
TYPE
имя типа= PACKED ARRAY [тип индекса] OF тип элементов;
VAR
имя массива: имя типа;
Строковый Тип данных (String)
Строковый тип обобщает понятие символьных массивов, позволяя динамически изменять длину строки. Строка – это последовательность символов. Каждый символ занимает 1 байт памяти. Количество символов в строке называется ее длиной.
Строковые величины могут быть константами и переменными.
Синтаксис описания строковых констант:
CONST
идентификатор=‘значение’;
Например: CONST
S1=‘Язык программирования Паскаль’;
S2=‘IBM PC - computer’;
Синтаксис описания строковых переменных:
VAR
идентификатор:STRING [ максимальная длина строки];
Максимальная длина строки может быть задана целым числом или константой целого типа. Это число находится в пределах от 1 до 255. Указание максимальной длины строки может быть опущено, в этом случае подразумевается число 255.
Например: VAR
S1:STRING [80];
S2:STRING;
Строковые переменные занимают в памяти ПК на 1 байт больше, чем указанная в описании ее длина. Нулевой байт содержит значение текущей длины строки. Если строковой переменной не присвоено никакого значения, ее текущая длина равна нулю.
Символы внутри строки индексируются (нумеруются), начиная с единицы. К отдельным символам строки можно обращаться с помощью индексов, которые записываются в квадратных скобках после имени строки. Индекс может быть положительной константой, переменной величиной и выражением целого типа. Значение индекса не должно выходить за границы описания.
Например: S[5], S1[i], S2[k+1]
Тип STRING и тип CHAR совместимы. Строки и символы могут употребляться в одних и тех же выражениях.
Строковые выражения строятся из строковых констант, переменных, функций и знаков операций.
Над строковыми данными выполняются следующие операции: присваивание, сцепление (сложение), отношение.
1. Операция присваивания имеет вид:
имя строковой переменной:= строковое выражение;
В операциях присваивания можно использовать переменные типа CHAR.
Если длина строки выражения превышает максимально допустимую длину строки, то лишние символы отбрасываются.
Например:
VAR S1, S2: STRING [10];
S1:=‘ABCD’; S2:=S1; (‘ABCD’)
|
VAR S1: STRING [10]; S2: STRING [2];
S1:=‘ABCD’; S2:=S1 ; (‘AB’) |
2. Операция сцепления (сложения, +) объединяет несколько символьных строк в одну результирующую строку.
Например: ‘Язык программирования’ + ‘Паскаль’ =>
‘Язык программирования Паскаль’
PROGRAM STROKI; VAR S1, S2: STRING [15]; C: CHAR; BEGIN S1:= ‘ABCD’; C:= S1[3]; S2:= S1+S1+C; WRITELN (‘C=’, C); WRITELN (S2) END. |
Протокол работы: C=C ABCDABCDC
|
3. Операции отношения (сравнения) применяются для сравнения двух строк, в результате чего получается логическая величина (True или False). Данная операция имеет более низкий приоритет, чем операция сцепления.
Сравнение строк производится слева направо до первого несовпадающего символа, и большей считается та строка, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки.
Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная.
Строки считаются равными, если они совпадают по текущей, а не по объявленной длине, и содержат одни и те же символы.
Например:
‘cosm1’<’cosm2’ True
‘pascal’>’PASCAL’ True
‘ключ_’<>‘ключ’ True
‘windows’=’windows’ True
