Определения констант

  • docx
  • 06.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

0.1. Определения констант
Иконка файла материала 71.docx

0.1. Определения констант

Приведем программу вычисления среднегодовой температуры для задания 1 из 12.3.

VAR s,i:Integer;  t:array [1..365] of Integer;

BEGIN

     for i:=1 to 365 do ReadLn(t[i]);

     s:=0;

     for i:=1 to 365 do s:=s+t[i];

     WriteLn(s/365)

END.

Пусть нам потребовалось переделать эту программу на вычисление средней недельной температуры. Для этого достаточно везде в тексте программы число (константу) 365 заменить на число (константу) 7. В больших программах одна и та же константа может встречаться десятки раз и подобный процесс может потребовать значительного расхода времени. В 10.4 мы уже сталкивались с такой ситуацией. Там мы нашли выход в том, что вместо константы записывали переменную величину. Но в нашем случае этого не получится, так как Паскаль запрещает задавать границу в описании массива переменной величиной. В таких случаях поступают следующим образом. Константе придумывают имя (как переменной), например k, и в специальном разделе const ей задается значение. Вот наша программа с использованием константы k:

CONST   k   =365;   {Обратите внимание, что в определении вместо  :=  стоит  = }

VAR        s,i :Integer;    

               t    :array [1..k] of Integer;

BEGIN

     for i:=1 to k do ReadLn(t[i]);

     s:=0;

     for i:=1 to k do s:=s+t[i];

     WriteLn(s/k)

END.

В приведенном виде программа стала универсальной. Теперь для ее переделки под средненедельную температуру достаточно в одном месте поменять определение k=365 на k=7.

Значению константы запрещено меняться в процессе выполнения программы, то есть запрещены операторы вида k:=30 и ReadLn(k). Паскаль присматривает за этим.

Тип константы указывать нельзя[1]. Паскаль сам догадается о типе по записи:

CONST            n          =800;               {тип целочисленный}

                          e          =2.7;                {тип Real}

                          bukva   =’ж’;                 {тип Char}

                          Slash    =’/’;                  {тип Char}

                          slovo    =’хорошо’;       {тип String}

                          OK       =true;               {тип Boolean}

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


 

Скачано с www.znanio.ru



[1] если это не типизированная константа (речь о них – в следующем параграфе)