Программирование в среде Турбо Паскаль (Поляков, Круглов) - страница 48

| TYPE

| Dim100 = Array[1..100] of Integer; { просто массив }

| Dim100SS = ^Dim100; { ссылка на структуру типа Dim100 }

Значения типа Dim100SS (ссылки на массив) будут содержать адрес начала массива в памяти. А так как ссылка (пусть она имеет имя SS) «знает», на что она указывает, можно через нее обращаться к элементам массива. Для этого снова используется знак «^», но ставится он уже после имени переменной:

SS^ — массив типа Dim100,

SS^[2] — второй элемент массива SS^, но

SS — адрес массива в памяти.

- 74 -

Узнав все это, изучающие Паскаль обычно спрашивают, зачем столько сложностей. Есть ведь обычные массивы, и можно с ними работать, не вводя промежуточные ссылочные типы. Конечно, можно. Но использование ссылочного типа дает нам уникальную возможность располагать данные там, где мы хотим, а не там, где им предпишет компилятор. Турбо Паскаль вводит специальный набор средств для организации структур данных по ходу выполнения программы. Используя его совместно со ссылками, мы можем явно указать, где будет размещена структура данных, можем разместить ее в свободной от программы памяти ПЭВМ и впоследствии удалить оттуда. Все это позволяет очень гибко использовать отнюдь не безграничные ресурсы памяти ПЭВМ.

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

- 75 -

Глава 5. Константы и переменные

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

5.1. Простые константы


Раздел описания констант CONST программы позволяет вводить различного вида константы. Константы — это не более чем средство для сокращения рутинных действии над текстом программы и одновременно улучшения ее читаемости. Пусть описаны типы:

| TYPE

| Diapazon = 14..27; { диапазон }

| Massiv1 = Array [14..27] of Real; { тип массив }

| Massiv2 = Array [15..28] of Integer; { другой массив }

Если в приведенный фрагмент вкралась ошибка и надо срочно сдвинуть диапазоны в типах на четыре значения вниз, то придется исправить только в нем шесть цифр. А во всей программе? Чтобы избавиться от конкретных цифр, можно задать их константами: