Глава 3. Базовые типы данных, переменные
47
объявляют переменные, с которыми предстоит работать программе.
Именовать переменные надо так, чтобы было (и не только вам одному,
но и, возможному, сопровождающему в будущем вашу программу) по-
нятно, какие данные будут содержаться в этих переменных. В програм-
ме заданы типом
int
нижняя и верхняя границы изменения температу-
ры по Фаренгейту и шаг изменения температуры. Заметьте, что одним
типом объявлены несколько переменных через запятую. Объявление
должно
обязательно
завершаться
точкой с запятой
(и не только объяв-
ление, если внимательно посмотрите на программу). По точке с запятой
компилятор находит конец языкового предложения и начинает его рас-
шифровывать. Если вы поставите точку не в том месте или вообще не
поставите, компилятор все равно станет ее искать и объединять в одно
языковое предложение все, что встречает по пути. Потом примется за
расшифровку и увидит, что перед ним полная абракадабра. Выдаст вам
кучу ошибок.
В переменных
fahr
,
cels
будут находиться текущие (получаемые во
время расчета) значения температуры по Фаренгейту и по Цельсию.
Отметим, что они заданы одним из типов с плавающей точкой. Почему
не
float
? Если бы мы их объявили как
float
, то вот что бы получилось
при компиляции: ниже, на участке расчета температуры по Цельсию в
расчете участвуют две константы (5 и 9 с нулевой дробной частью). Эти
числа специально взяты в виде записи с нулевой дробной частью, пото-
му что они участвуют в операции деления
/
. А эта операция имеет свою
специфику: если ее операнды объявлены как целый тип, то деление це-
лых чисел считается операцией без остатка. Поэтому в этом случае де-
ление 5:9 даст в результате ноль, поскольку целая часть этого частного
равна нулю (а она и считается результатом операции над целыми чис-
лами), а дробная часть будет отброшена. А нам-то нужно правильное
значение. Поэтому мы как бы обманываем компилятор: делаем у каждо-
го числа нулевую дробную часть, не изменяя тем самым значение числа,
а компилятор, когда увидит точку, посчитает это число за число с пла-
вающей точкой. Но тип он присвоит константам не
float
, а
double
. Так
в нем заложено. Но по формуле расчета (помним, что мы предположи-
ли, что переменные
fahr
и
cels
объявлены типом
float
) из
fahr
(типа
float
) вычитается константа
32.0
(типа
double
— раньше уже отмеча-
лось, что компилятор константам с плавающей точкой по умолчанию
присваивает тип
double
). Получается, что компилятор должен построить
блок преобразования результата типа
float
в результат типа
double
. Он
этого делать не умеет и выдает ошибку компиляции.
Далее назначаются начальные значения нижней и верхней границам
диапазона температур по Фаренгейту и шагу изменения этой темпера-
48
Do'stlaringiz bilan baham: |