Допустим ли следующий оператор присваивания? Если да, то напишите тип и

Допустим ли последующий оператор присваивания? Если да, то напишите тип и итоговое значение переменной y, если нет, то напишите, почему
y:= round(y*(7 div 4) mod 7/3)/y - Trunc(0.724)

Задать свой вопрос
1 ответ
Разберем оператор по шагам. Обозначим Т - промежуточный итог операции.
y:= round(y*(7 div 4) mod 7/3)/y - trunc(0.724);
1) T:= 7 div 4 T:=1, тип T целочисленный.
2) T:=y*T, тип Т определяется типом y.
3) T:=T mod 7, в операции mod операнды могут быть только целочисленными, как следует, тип у в 2) может быть только целочисленным, иначе мы получим на данном шаге ошибку. Итог операции - Т целочисленного типа.
4) T:=T/3; T - вещественного типа.
5) T;=round(T); T - целочисленного типа.
6) T:=T/y, T - вещественного типа.
7) Trunc(0.724) вернет 0 целочисленного типа.
8) Т:=T-0 не изменит значения и типа Т: Т по-прошлому остается вещественным.
9) y:=T; для корректного присваивания y обязан иметь вещественный тип, но это, как обозначено в 3), вызовет ошибку при выполнении 2).

Результат: оператор недопустим и будет отмечен ошибочным при компиляции.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт