Главная / Рефераты / Рефераты по информатике, программированию
Авторский материал: Арифметические операции. Стандартные математические функции
Notice: Undefined variable: ref_img in /home/area7ru/area7.ru/docs/referat.php on line 323
Арифметические операции. Стандартные математические функции С.А. Григорьев Для арифметических данных, т.е. для числовых констант, переменных и числовых функций определены шесть арифметических операций: + сложение - вычитание * умножение / вещественное деление DIV целая часть от деления MOD остаток от деления Первые четыре операции определены для любых операндов - как целых, так и вещественных, причем результат операции "/" всегда вещественное число, даже если оба операнда целые. Операции DIV и MOD определены только для целых операндов. Кроме того, выделяют унарную операцию "-", которая применяется не к двум, а к одному операнду, например: -x. Вообще говоря, язык Паскаль запрещает использовать в одном выражении разнотипные операнды, однако для арифметических данных сделано исключение. Перед выполнением арифметической операции один или оба операнда автоматически приводятся к одному типу, а затем уже подставляются в выражение. Значение любого выражения всегда имеет определенный тип - такой же, как у операндов после приведения их к одному типу. Правила преобразования целочисленных типов приведены в таблице 2. Таблица 2 Правила преобразования типов Операнды | Byte | ShortInt | Word | Integer | LongInt | Byte | Integer | Integer | Word | Integer | LongInt | ShortInt | Integer | Integer | LongInt | Integer | LongInt | Word | Word | LongInt | Word | LongInt | LongInt | Integer | Integer | Integer | LongInt | Integer | LongInt | LongInt | LongInt | LongInt | LongInt | LongInt | LongInt | Если один операнд выражения имеет целочисленный тип, а второй - вещественный, то первый автоматически приводится к вещественному типу и значение выражения будет вещественным. Целые значения можно присваивать вещественной переменной, но вещественные значения присвоить целой переменной нельзя! Присваивая значение целочисленной переменной и константе, вы должны следить, чтобы это значение не выходило за пределы диапазона допустимых значений переменной. В языке Паскаль есть возможность явно преобразовать целочисленное значение к любому из целочисленных типов, для этого используются стандартные функции с именами Byte, ShortInt, Word, Integer и LongInt. Например, преобразуем переменную типа Word к типу Integer : VAR x : Word; BEGIN x:=300; WRITELN(x, ,Integer(x)); x:=65535; WRITELN(x, ,Integer(x)); END. Программа выведет: 300 300 65535 -1 В первом случае преобразование происходит корректно, а во втором - с изменением значения. Арифметическое выражение может содержать любое количество операндов и, соответственно, любое количество операций, которые выполняются в последовательности, определенной их приоритетом; приоритет операций *, /, DIV, MOD выше, чем операций + и -. Операции одного приоритета выполняются слева направо. Чтобы изменить порядок выполнения операций, вы можете использовать в выражении круглые скобки. Вычислим, например, частное от деления X на сумму A,B и C : X/(A+B+C); Набор встроенных математических функций в языке Паскаль невелик, он включает : 1. Abs(x) - абсолютная величина числа. 2. Int(x) - целая часть вещественного числа. 3. Frac(x) - дробная часть вещественного числа. 4. Trunc(x) - целая часть вещественного числа, преобразованная к типу LongInt. 5. Round(x) - округленное до целого вещественное число, преобразованное к типу LongInt. 6. Sqr(x) - квадрат числа. 7. Sqrt(x) - квадратный корень. 8. Exp(x) - экспонента. 9. Ln(x) - натуральный логарифм. 10. Pi - число пи. 11. Sin(x) - синус. 12. Cos(x) - косинус. 13. Arctan(x) - арктангенс. Все остальные математические функции можно получить, пользуясь этим основным набором; например: десятичный логарифм - Ln(x)/Ln(10), тангенс - Sin(x)/Cos(x) и т.д. Аргументы функций могут быть любыми арифметическими выражениями и задаются в круглых скобках после имени функции, аргументы функций Sin и Cos выражаются в радианах. Вычислим квадрат синуса 70 градусов: Sqr(Sin(Pi/180*70)) Кроме перечисленных выше математических функций Паскаль предоставляет еще несколько полезных числовых функций и процедур разного назначения: 14. High (целый тип) - возвращает наибольшее возможное значение данного типа. 15. Low (целый тип) - возвращает наименьшее возможное значение данного типа. 16. SizeOf (тип) SizeOf (переменная) - возвращает размер в байтах заданного типа или заданной переменной. Функция SizeOf применима к любому типу, в том числе и к структурированным типам - массивам, записям и некоторым другим, речь о которых пойдет ниже. 17. Random(Range:Word) - возвращает целое случайное число в диапазоне от 0 до Range-1. 18. Random - возвращает вещественное случайное число в из отрезка [0,1]. 19. Randomize - процедура, инициализирующая генератор случайных чисел, используя текущее системное время Выведем несколько случайных чисел в диапазоне от 0 до 99: BEGIN Randomize; WRITELN(Random(100)); WRITELN(Random(100)); WRITELN(Random(100)); END. При первом запуске программы она вывела числа 13, 38, 48, при втором запуске - 63, 99, 6, при третьем запуске - 23, 87, 92. Это действие процедуры Randomize - поскольку при каждом запуске системное время, которое отсчитывает операционная система DOS, было различным, мы каждый раз получали различные последовательности случайных чисел. Теперь исключим из программы оператор Randomize; и запустим ее несколько раз - каждый раз мы будем получать тройку чисел 0, 3, 86. Обратите внимание, что процедура используется в операторе вызова, а функция используется в выражении. Запись Random(100); неверна, поскольку Random - это функция, но также неверна и запись WRITELN(Randomize);. Можно считать, что различие между процедурой и функцией состоит в том, что процедура выполняет некоторую последовательность действий, а функция вычисляет некоторое значение. Заметим, что READ и WRITE - это тоже процедуры. Для работы с внутренним двоичным представлением двухбайтовых целых чисел (типа Word или Integer) существуют функции: 20. Lo(x) -...
ВНИМАНИЕ!
Текст просматриваемого вами реферата (доклада, курсовой) урезан на треть (33%)!
Чтобы просматривать этот и другие рефераты полностью, авторизуйтесь на сайте:
|
|
|
Добавлено: 2010.10.21
Просмотров: 1229
|
Notice: Undefined offset: 1 in /home/area7ru/area7.ru/docs/linkmanager/links.php on line 21
При использовании материалов сайта, активная ссылка на AREA7.RU обязательная! |