Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB2.DOC
Скачиваний:
26
Добавлен:
03.06.2015
Размер:
155.65 Кб
Скачать

4.3. Базовые типы данных и операторы

4.3.1. Классификация переменных и типов данных. Скалярные

переменные и их описание. Ограниченный тип данных

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

В данной лабораторной работе мы рассмотрим 4 стандартных скалярных типа: Integer (ЦЕЛЫЙ), Real (ВЕЩЕСТВЕННЫЙ), Boolean (БУЛЕВСКИЙ или ЛОГИЧЕСКИЙ), Char (СИМВОЛЬНЫЙ).

Целые и вещественные значения языка Паскаль рассматривались в п.4.1. Переменные булевского типа могут принимать всего два значения, которые обозначаются стандартными именами: True (ИСТИНА) и False (ЛОЖЬ). Булевские константы True и False считаются упорядоченными друг относительно друга, причем False<True.

Значениями переменных символьного типа являются символы алфавита языка Паскаль. Набор символов и порядок их следования зависят от реализации языка на конкретной ЭВМ. Константы символьного типа при написании заключаются в одиночные кавычки, т.е. они являются текстовыми строками, состоящими из одного символа.

Примеры констант символьного типа:

'A' ':' '!' '9' ''''

Множество символов упорядочено по их местам в английском алфавите. Так, например, 'D'<'F' и 'Z'>'Y'. В алфавите языка Паскаль содержится 256 символов, пронумерованных от 0 до 255. Русские буквы расположены не в порядке русского алфавита.

К величинам скалярных типов (кроме вещественного) можно применять стандартную функцию Ord(X). Эта функция вырабатывает целое неотрицательное число, равное порядковому номеру (начиная с 0) значения своего аргумента в упорядоченной последовательности значений данного скалярного типа, например:

Ord(False)=0, Ord('2')=50, Ord(True)=1.

Алфавиты практически на всех типах ЭВМ устроены так, что порядковые номера символов цифр идут подряд, т.е., например

Ord('2')=Ord('1')+1.

Для целых неотрицательных аргументов X < 256 определена стандартная функция Chr(X), значением которой является символ с номером в алфавите, равным значению аргумента функции, например

Chr(48)='0' Chr(Ord('z'))='z'

Рассмотрим примеры описания скалярных переменных в разделе описания переменных программы:

var

x,massa : real;

k,number : integer;

L,flag,t : boolean;

a,b,c : char;

В примере описаны переменные x, massa вещественного типа; переменные k, number целого типа; переменные a, b, c символьного типа.

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

Ограниченный тип данных задается в виде

<нижняя граница>..<верхняя граница>

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

var

a : 0..100;

month : 1..12;

hour : 1..24;

digit : '0'..'9';

В этом примере переменная a может принимать только целые значения из диапазона 0..100, month (месяц) - из диапазона 1..12, hour (час) - из диапазона 1..24, digit (цифра) - из диапазона '0','1','2','3','4','5','6','7','8','9'. Таким образом переменные a, month, hour принадлежат к ограниченному целому типу, а переменная digit - к ограниченному символьному типу. Переменные ограниченного типа могут применятся везде, где могут применятся переменные их базового типа. Ограничение вещественного типа не допускается.

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

var

color : (black,red,yellow,green,blue,white);

Здесь переменная color (цвет) может принимать значения black (черный), red (красный), yellow (желтый), green (зеленый), blue (синий), white (белый).

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

4.3.2. Классификация  операторов.  Оператор  присваивания

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

Все операторы, входящие в программу, образуют линейную последовательность и отделяются друг от друга символом «точка с запятой». Выполнение программы начинается с её первого оператора, а заканчивается, когда будет выполнен последний оператор программы (стоящий перед последним end). Операторы выполняются последовательно один за другим, пока не будет достигнут конец программы, либо не будет выполнен оператор перехода. Так как выполнение оператора перехода нарушает последовательный порядок выполнения операторов программы, его использование не рекомендуется.

Оператор присваивания имеет формат записи:

<переменная>:=<выражение>

Выполнение оператора присваивания заключается в вычислении выражения, стоящего в правой части оператора и присваивание полученного значения этого выражения переменной из левой части оператора. Полученное значение имеет тип в зависимости от типа вычисляемого выражения. Рассмотрим некоторые виды выражений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]