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

2.правильны ли следующие операторы присваивания? если нет, то почему? a) k: =k mod 3+k*cos(5); б) x: =x*2 div 6+x/4; если нет исправьте, !

Показать ответ
Ответ:
ZнyцPлaй
ZнyцPлaй
01.10.2020 23:06
1)  k:=k mod 3+k*cos(5);
В правой части стоит функция косинус, которая определена только для вещественных чисел и операция mod, которая определена только для целых чисел. Если k целочисленное, то правая часть будет вещественной и попытка присвоить вещественное значение целочисленной переменной недопустима. Надо ставить явное преобразование, например  k:=Trunc(k mod 3+k*cos(5)); или  k:=Round(k mod 3+k*cos(5));
Если же k - вещественное, то операция k mod 2 недопустима.
2) x:=x*2 div 6+x/4
Тут в правой части смешаны операция div, которая определена только для целых и операция деления, которая определена для вещественных. Такое смешивание вещественных и целый запрещено. В Паскале нет функции перевода целых в вещественные, только процедура, но её в выражение не встроишь. Поэтому можно только говорить о переводе результата х/4 к целому значение посредством Trunc(х/4) или Round(x/4). Либо о замене х/4 на x div 4. Само собой, х надо объявлять целым.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота