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

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

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


Ответы 4

  • Я вижу вы настоящий знаток в информатике
    • Автор:

      clicker
    • 6 лет назад
    • 0
  • Я программист с почти 20-летним стажем)
  • 20-летний стаж!Да...вы несомненно профессионал своего дела
    • Автор:

      brock528
    • 6 лет назад
    • 0
  • 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. Само собой, х надо объявлять целым.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years