2.Правильны ли следующие операторы присваивания? Если нет, то почему?a) k:=k mod

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

б) x:=x*2 div 6+x/4;

Если нет исправьте, пожалуйста!!!


Задать свой вопрос
1 ответ
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. Само собой, х надо объявлять целым.



, оставишь ответ?
Имя:*
E-Mail:


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

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

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

Войти на сайт