ШЕСТОЙ УРОК. ПРЕОБРАЗОВАНИЕ
ТИПОВ.
В
ТУРБО ПАСКАЛЕ ПОЧТИ НЕВОЗМОЖНО АВТОМАТИЧЕСКОЕ ПРЕОБРАЗОВАНИЕ ТИПОВ. ИСКЛЮЧЕНИЕ
ЯВЛЯЕТСЯ ТОЛЬКО В ОТНОШЕНИИ КОНСТАНТ И ПЕРЕМЕННЫХ ТИПА INTEGER (ЦЕЛЫЕ),
КОТОРОЕ МОЖНО ПРИСВОИТЬ ПЕРЕМЕННОЙ ВЕЩЕСТВЕННОГО ТИПА, НО НЕ НАОБОРОТ. ОДНАКО
ЕСТЬ ВОЗМОЖНОСТЬ ВЫПОЛНИТЬ ПРЕОБРАЗОВАНИЕ, ПРИ ПОМОЩИ ТАКИХ ФУНКЦИЙ, КАК:
ROUND (N)
– ОКРУГЛЯЕТ (N)
ДО БЛИЖАЙШЕГО ЦЕЛОГО;
TRUNC (N)
– ОТСЕКАЕТ ДРОБНУЮ ЧАСТЬ (N)
ГДЕ
(N)
– ВЕЩЕСТВЕННАЯ ПЕРЕМЕННАЯ ИЛИ ВЫРАЖЕНИЕ.
НАПРИМЕР,
ОШИБКОЙ БУДЕТ ВОТ ТАКОЕ НАПИСАНИЕ:
X := Y/X;
ПРАВИЛЬНО
БУДЕТ НАПИСАТЬ ВОТ ТАК:
X := ROUND (Y/X);
ДАВАЙТЕ
НА ПРОГРАММЕ ИЗ ЧЕТВЁРТОГО УРОКА (ВЫЧИСЛЕНИЕ ДЛИНЫ ОКРУЖНОСТИ), ПОСМОТРИМ КАК
ЭТО ВСЁ ДЕЙСТВУЕТ. ИЗМЕНИМ ПРОГРАММУ ВОТ ТАК:
PROGRAM
Primer7 (INPUT,OUTPUT);
CONST
Pi =
3.14159;
VAR
Perimeter,
Radius: REAL;
RoundPerimeter,
TruncPerimeter: INTEGER;
BEGIN
WRITELN (‘ПОЖАЛУЙСТА,
ВВЕДИТЕ РАДИУС:’);
READLN
(Radius);
Perimeter :=
2*Pi*Radius;
RoundPerimeter
:= ROUND (Perimeter);
TruncPerimeter
:= TRUNC (Perimeter);
WRITELN (‘ДЛИНА ОКРУЖНОСТИ
=’,Perimeter);
WRITELN (‘ДЛИНА ОКРУЖНОСТИ
ОКРУГЛЁННАЯ=’,RoundPerimeter);
WRITELN (‘ДЛИНА ОКРУЖНОСТИ
УСЕЧЁННАЯ=’,TruncPerimeter);
END.
ПОСМОТРИТЕ
НА РЕЗУЛЬТАТ И ПРОАНАЛИЗИРУЙТЕ. ПОПРОБУЙТЕ СОСТАВИТЬ СВОЮ ПРОГРАММУ И
ВНИМАТЕЛЬНО ИЗУЧИТЕ РЕЗУЛЬТАТ.
НУ
А Я С ВАМИ ПРОЩАЮСЬ ДО СЛЕДУЮЩЕГО УРОКА!
|