Cтраница 1
Раздел определения констант вводит некоторые идентификаторы как синонимы для констант. [1]
Напишите раздел определений констант для программ, о которых говорится ниже. [2]
Использование раздела определения констант позволяет избежать употребления явных констант в программе. Пусть, например, в программе необходимо предусмотреть длину строки экрана дисплея. При переходе к другому типу терминалов с длиной строки, отличающейся от 80, для изменения программы ее придется тщательно просмотреть, заменяя одну явную константу на другую. Таким образом, модификация программы оказывается затрудненной. [3]
В разделе определения констант каждой константе ставится в соответствие идентификатор, который играет роль ее синонима. Такой способ определения констант хорошо известен в языке ассемблера, однако в большинстве языков высокого уровня его не используют. Каждый идентификатор компилятор заменяет на соответствующую константу. Использование удачно подобранных идентификаторов констант вместо чисел улучшает восприятие программы при ее чтении. Более существенно, что применение идентификаторов в качестве синонимов констант облегчает проведение модернизации программ и упрощает их сопровождение, поскольку программист может изменить некоторые важные параметры, например диапазон входных данных или размер внутренней структуры данных, затрагивая при этом только одну строку объявлений. Отсутствие такой возможности потребовало бы проведения поиска констант по всей программе и изменения некоторой константы столько раз, сколько она встречается в тексте программы. [4]
В разделе определения констант нельзя определять константы множественного типа, и, следовательно, если бы переменная цифра была описана локально, то процедура должна была бы восстанавливать ее значение при каждом вызове, что совершенно очевидно связано с потерей эффективности. [5]
Все константы определяются в разделе определения констант основной программы, поэтому все идентификаторы констант глобальны. [6]
Все идентификаторы, введенные IB разделе формальных параметров, разделе определений констант, типов, разделе описаний переменных и процедур или функций, локальны в данном описании процедуры, которое называется областью определенности этих идентификаторов. Они не доступны вне своей области определенности. Значения локальных переменных в момент входа в тело не определены. [7]
Новые типы определяются в разделе определения типов, располагающемся между разделами определения констант и описания переменных. Определения типов, появляющихся внутри тела процедуры, являются локальными по отношению к этой процедуре. [8]
В заключение отметим, что значения констант, заданные в разделе определения констант, в программе изменять нельзя. Любая попытка использовать идентификатор константы в левой части оператора присваивания с целью изменения ее значения немедленно вызывает выдачу сообщения об ошибке. [9]
Это ограничение на практике часто обходится за счет определения некоторой константы в разделе определения констант, которая в дальнейшем используется при определении границ индексов массива. При изменении границ индексов заменяется лишь константное значение, а вся остальная программа остается неизменной. Правда, требуется перекомпиляция программы. Уместно заметить, что такая определенность все же лучше, чем приводящая в недоумение концепция массивов в Алголе-60: с одной стороны, их размеры нельзя определить во время компиляции, а с другой - нельзя изменить во время выполнения программы, так как они фиксируются при входе в блок. [10]
Правила построения полной программы на языке Паскаль столь же точны, как и правила построения отдельных элементов программы, например разделов определения констант и описания переменных. [11]
Константы должны быть глобальными. Гораздо легче искать определение константы, когда имеется только один раздел определения констант в начале программы, чем когда константы разбросаны по всем процедурам. [12]
Значение, записанное в программе в таком виде, называется константой. С константой может быть связано некоторое имя. В языке Паскаль имена даются константам в разделе определения констант. [13]
Тип константы определяется типом соответствующего значения константы. В определении каждому значению константы ставится в соответствие имя, которое используется в дальнейшем в программе. Удачно выбранные имена констант ( вместо их значений) значительно улучшают ее восприятие при просмотре. Кроме того, использование имен констант облегчает проведение изменений в программе. В этом случае пользователь вносит изменения только в определения констант. При этом отпадает необходмимость поиска и изменения константы по всей программе, так как транслятор каждое имя заменяет на соответствующее значение. Если в программе не предполагается использование констант, то раздел определения констант не приводится. [14]