Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Оператор mod в Object Pascal...

Антон Будников Ученик (137), закрыт 13 лет назад
Работает ли оператор mod в Object Pascal с вещественными типами?
Нужно посчитать такую вещь: mass[n]:=(k*mass[n-1] + c) mod m, где m, c, k - переменные вещественного типа, а массив mass описан как массив целых чисел.
При компиляции Delphi говорит: Operator not applicable to this operand type...
Как мне посчитать остаток от деления?
Дополнен 14 лет назад
2Oxion
К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в формате с плавающей точкой с фиксированным числом цифр. Запись значения в формате с плаваю щей запятой обычно включает три значения - m, b и e - таким образом, что m x b^e=n, где b всегда равен 2, а m и e являются цело численными значениями в диапазоне вещественного типа. Эти значения m и e далее определяют диапазон представления и точность вещественного типа.

Проще говоря, вещественные типы описывают дробные числа...
Лучший ответ
Eltary Мастер (1112) 14 лет назад
mod m на вещественное вроде мод вродже нельзя)
Остальные ответы
Sorra^_^ Мастер (1711) 14 лет назад
дает ошибку =( пробовал и в turbo pascal 7.1
Дима Мастер (1572) 14 лет назад
Оператор mod работает только с целыми числами. Для того, чтобы использовать его с вещественными числами, необходимо перевести эти числа в целые, т. е. округлить. Это можно сделать несколькими способами:
1.mass[n]:=Trunc(k*mass[n-1] + c) mod Trunc(m)
Оператор Trunc переводит число в целое путем отбрасывания дробной части вещ. числа.
2.mass[n]:=Round(k*mass[n-1] + c) mod Round(m)
Оператор Round переводит число в целое путем округления вещ. числа.
Вот так можно узнать остаток от деления вещественных чисел без или с учетом дробной части.
Удачи!
Похожие вопросы