Шаг 5.
Структура Pascal-программы. Типы данных

   Здесь приводится общая структура Pascal-программы и перечисляются основные типы переменных.


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


Рис.1. Общая структура Pascal-программы


Каждый оператор заканчивается символом ";" (точка с запятой)!


    Заголовок чаще всего состоит из служебного слова Program и имени программы. Операторная часть содержит последовательность предписаний, которые должен выполнить компьютер. Остановимся более подробно на декларации.

    Все элементы Pascal-программы перед использованием должны быть обязательно описаны! Это делается для того, чтобы к "моменту первой встречи" компьютера с этим элементом в программе, компьютер "знал", что это за элемент и какие действия можно над ним выполнять.
   На рисунке 1 перечислены элементы, размещаемые в декларации. Таблица 1 содержит более подробную информацию по этим элементам.

Таблица 1. Элементы, размещаемые в декларации
Элемент
Описание
Метки (Label)
Позволяет "пометить" необходимую строку программы.
Константы (Const)
Задает перечень элементов и их значения, которые не будут изменяться в процессе выполнения программы.
Переменные (Var)
Определяет элементы, используемые для хранения и изменения необходимых программе значений.
Типы (Type)
Позволяет определять новый набор свойств, который затем будет использован для создания переменных, обладающих этими свойствами.
Процедуры (Procedure)
Определяет именованный набор действий, к которому можно обращаться по заданному имени.
Функции (Function)
Определяет именованный набор действий, в результате работы возвращающий значение. К этому набору действий можно обращаться по заданному имени.


    Более подробно мы остановимся на содержании секции Var, где располагаются описания переменных. Описание переменной имеет вид:

<имя переменной>: <имя типа>;

   Про имена переменных мы поговорим на следующем шаге. Эдесь же остановимся полее подробно на типах данных.
   Типы делятся на две группы: простые (таблица 2) и составные, состоящие из элементов простых типов (таблица 3):

Таблица 2. Некоторые простые типы данных
Тип
Название
Byte
Байтовые. Принимают значения из промежутка от 0 до 255. В памяти для переменной этого типа выделяется 1 байт.
Word
Переменные типа "слово". Принимают значения из промежутка от 0 до 65535. В памяти для переменной этого типа выделяется 2 байта.
Integer
Целые. Принимают значения из промежутка от -32768 до 32767. В памяти для переменной этого типа выделяется 2 байта.
Real
Вещественные (дробные). Принимают значения из промежутка (по модулю) от 2.9*10E-39 до 1.7*1038. В памяти для переменной этого типа выделяется 6 байт, количество цифр после запятой может достигать 11-12 цифр.
Boolean
Логические. Принимают только два значения: True (истина) и False(ложь).
Char
Литерные. В качестве своего значения могут иметь один символ. В памяти для переменной этого типа выделяется 1 байт.


Таблица 3. Составные типы данных
Тип
Название
String
Строки. Состоят из значений литерного типа (набор символов).
Array
Массивы. Представляют собой совокупность элементов одного (любого) типа.
Record
Записи. В отличие от предыдущего типа могут состоять из элементов различных типов.
Set
Множества. Представляют собой совокупность элементов одного типа (целого положительного или литерного).
File
Файловые. Позволяют организовать доступ к файлам из программы.


Приведем пример заголовка и декларации:

  Program Primer; {Заголовок программы.}
  Label  {Описание меток.}
       1,abc,5;
  Const  {Описание констант.}
       pi=3.14;s1='хорошо';
  Type   {Описание типов.}
       t1,t2=Integer; t3=t1;
  Var    {Описание переменных.}
       A,B: Integer;{A, B - переменные целого типа.}
       C:t1;  {C - переменная целого типа.}
       D:Byte; {D - переменная байтового типа.}
       E:Real; {E - вещественного типа.}
       F:Boolean; {F - логического типа.}
       G:Char; {G - символьного типа.}
       X:String[10]; {X - строка, состоящая из 10 символов.}
       {Y - массив, состоящий из 5 элементов вещественного типа.}
       Y:Array[1..5] Of Real;
       {Z - двумерный массив, состоящий из трех (от 1 до 3) 
       строк и четырех столбцов (от 2 до 5). Каждый элемент - 
       строка, состоящая из 5 символов.}
       Z:Array[1..3,2..5] Of String[5];

   Кроме указанных выше типов используются еще ограниченные и перечислимые типы.

Ограниченные типы

   Самым простым способом образования новых типов из уже существующих является ограничение (сужение) допустимого диапазона значений некоторого стандартного скалярного типа. Это ограничение определяется заданием минимального и максимального значений диапазона, например: 1..10, 'a'..'z'.
Замечание: допускается создание ограниченных типов из дискретных типов, то есть из всех скалярных типов, кроме вещественных.

Перечислимые типы

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

    Пример: пусть необходимо разработать программу управления светофором. Цвета светофора можно определить с помощью перечислимого типа:


  Type
     Color = (Red, Yellow, Green);.     .
    С учетом вышесказанного приведем пример описания переменных, констант и типов:
  . . .
  Const
    One = 1;
    ABC = 1000;
    CBA = - ABC;
    KK='***';
  Type
    {Задание перечислимого типа.}
    Days = (Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,
           Sunday); 
    WorkingDays = Monday..Friday; {Задание ограниченного типа.}
    Diapason = 1..20;             {Задание ограниченного типа.}
    Letters = 'a'..'z';           {Задание ограниченного типа.}
    Hjsitive_Integer=word;
  Var
    a: integer;
    {Использование диапазона при определении переменных.}
    Index1, Index2: 0..5; 
    S: Char;
    Sinus: Real;
    {Использование перечисления значений 
     при определении переменной.}
    Semaphore: (Opened, Closed);  

   Мы закончили изложение материала по типам данных. На следующем шаге будет приведена первая Pascal-программа.

Предыдущий шаг Содержание Следующий шаг