Исследовать, чему равно значение
переменной с при рзличных значениях a
и b.
Пусть а = 100, b = 32767. Чему равно значение с?
При сложении этих чисел должно
получиться число 32867, но, запустив
программу, мы не получим этого числа.
Вычисление выражения осуществляется по
следующим правилам: перед тем, как
выполнить операцию, оба операнда
преобразуются к их общему типу. Общим
типом является более сложный из типов
двух операндов.
Определить тип следующих выражений: а + b;
a + b + c; a + b + c + x, если переменные описаны
так:
Var a : Byte; b : Integer; c : Longint; x : Real;
Выражение справа в операторе
присваивания вычисляется независимо от
размера или типа переменной слева.
Вернёмся к примеру, число 32867 не входит в
диапазон допустимых значений типа integer,
именно вследствие этого мы получаем
неправильный результат. Чтобы такого не
получилось, нужно преобразовать
переменные к более вместительному типу.
Приведение типов имеет следующую
структуру: <идентификатор типа>(переменная).
Итак, чтобы получить правильный
результат, нужно записать следующий
оператор:
c := Longint(a) + Longint(b); или c := a + Longint(b);
Задание 2
Можно ли записать: c:=Longint(a + b); Writeln(b*a*0.1);
Writeln(0.1*a*b)?
Ответ поясните.
Для преобразования типов используются
также следующие функции:
Round (от англ. round - круглый,
округлять) - преобразует переменную
вещественного типа в целый путём
округления числа до ближайшего целого.
Trunc (от англ. trancate - урезать) -
преобразует переменную вещественного
типа в переменную целого путём
отбрасывания дробной части числа.
Int (от англ. integer - целый) -
значением этой функции является целая
часть вещественного числа.
Frac (от англ. fraction - дробь) -
значением этой функции является дробная
часть вещественного числа.
Low (от англ. low - низкий) -
возвращает наименьшее значение в
диапазоне данного порядкового или
перечисляемого типа.
High (от англ. high - высокий, вверх) -
возвращает старшее значение в диапазоне
данного порядкового или перечисляемого
типа.