Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТУРБО ПАСКАЛЬ.doc
Скачиваний:
7
Добавлен:
14.04.2019
Размер:
2.29 Mб
Скачать

7.3. Константы-записи

Определение константы-записи имеет следующий вид:

<идентификатор> : <тип> = (<сп.знач.полей>)

Здесь <идентификатор> - идентификатор константы; 

          <тип> - тип записи; 

         <сп.знач.полей> - список значений полей.

Список значений полей представляет собой список из последовательностей вида: имя поля, двоеточие и константа. Элементы списка отделяются друг от друга двоеточиями, например:

type

point = record

х, у : Real 

end;

vect = array [0..1] of point; 

month = (Jan, Feb, Mar, Apr, May, Jun,

Jly, Aug, Sep, Oct, Nov, Dec); 

date = record

d : 1..31;

m : month; 

у : 1900..1999 

end;

const

origon :point = (x :0; у : -1) ;

line:vector = ((x:-3.1; у: 1.5) , (x: 5.9; у: 3.0)) ;

SomeDay: date = (d : 16; m : Mar; у : 1989);

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

type

forma = record

case Boolean of

true : (Birthplace: String [40]); 

false : (Country : String [20] ; EntryPort : String [20] ; 

        EntryDate : array [1..3] of Word; count : Word) 

end ; 

const

Perconl : forma = (Country : 'Норвегия'; EntryPort : 

                  'Мурманск'; EntryDate : (16, 3, 89); count : 12) ; 

Percon2 : forma = (Birthplace : 'Москва');

7.4. Константы-множества

Значение типизированной константы-множества задается в виде правильного конструктора множества, например: 

type

days = set of 1. .31;

digc = set of ' 0 ' . . ' 9 ' ;

error = set of 1..24; 

const

WorkDays : days = [1..5, 8.. 12, 15.. 19, 22.. 26, 29, 30];

EvenDigits: digc = ['0', '2', '4', '6', '8'];

ErrorFlag : error= [] ;

7.5. Константы-указатели

Единственным значением типизированной константы-указателя может быть только NIL, например:

const 

pr :^Real= NIL;

  • Глава 8. Процедуры и функции

    • 8.1. Локализация имен

    • 8.2. Описание подпрограммы

      • 8.2.1. Заголовок

      • 8.2.2. Параметры

    • 8.3. Параметры-массивы и параметры-строки

    • 8.4. Процедурные типы. Параметры-функции и параметры-процедуры

    • 8.5. Нетипизированные параметры-переменные

    • 8.6. Рекурсия и опережающее описание

    • 8.7. Расширенный синтаксис вызова функций

Глава 8

ПРОЦЕДУРЫ И ФУНКЦИИ

Как отмечалось в гл.2, процедуры и функции представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы называется вызовом процедуры (функции). Отличие функции от процедуры заключается в том, что результатом исполнения операторов, образующих тело функции, всегда является некоторое единственное значение или указатель, поэтому обращение к функции можно использовать в соответствующих выражениях наряду с переменными и константами. Условимся далее называть процедуру или функцию общим именем «подпрограмма», если только для излагаемого материала указанное отличие не имеет значения.

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

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

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

В этой главе подробно рассматриваются все аспекты использования подпрограмм в Турбо Паскале.

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