В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
margaritamaurses
margaritamaurses
06.02.2023 13:58 •  Информатика

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

Ответ:
влада12342
влада12342
03.10.2020 23:46
Разберем оператор по шагам. Обозначим Т - промежуточный результат операции.
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).

Итог: оператор недопустим и будет отмечен ошибочным при компиляции.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?