Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алг яз Лаб 2(I-ИСТ).doc
Скачиваний:
3
Добавлен:
05.11.2018
Размер:
497.15 Кб
Скачать

2.4. Математические функции и константы

В языке Pascal есть ряд констант, к значениям которых можно обращаться без предварительного определения; их называют встроенными (или зарезервированными) константами. Перечислим некоторые из них:

MaxInt – содержит максимально возможное значение для типа Integer (32767);

MaxLongInt – содержит максимально возможное значение для типа LongInt (2147483647);

Встроенные функции:

PI: Real – возвращает число =3,14159265358;

Odd(A: Integer): Boolean – возвращает true, если А нечётное;

Int(X: Real): Real – возвращает целую часть аргумента;

Round(X: Real): Integer – возвращает результат округления аргумента до ближайшего целого;

Trunc(X: Real): Integer – отбрасывает дробную часть аргумента;

Frac(X: Real): Real – возвращает дробную часть аргумента;

Abs(X: Real): Real – возвращает абсолютное значение аргумента;

Abs(X: Integer): Integer – возвращает абсолютное значение аргумента;

Random(A: Integer): Integer – возвращает случайное целое число из промежутка [0,A);

Sqr(X: Integer): Integer – возвращает квадрат аргумента;

Sqr(X: Real): Real – возвращает квадрат аргумента;

Sqrt(X: Real): Real – возвращает квадратный корень аргумента;

Exp(X: Real): Real – возвращает экспоненту аргумента;

Ln(X: Real): Real – возвращает натуральный логарифм аргумента;

Sin(X: Real): Real – возвращает синус аргумента;

Cos(X: Real): Real – возвращает косинус аргумента;

ArcTan(X: Real): Real – возвращает арктангенс аргумента.

Все перечисленные константы и функции находятся в стандартном модуле System, этот модуль доступен в программе без предварительного подключения.

Для вычисления значений других функций следует пользоваться следующими тождествами, записанными с помощью доступных функций языка Pascal:

ArcSin(x)=ArcTan(x/Sqrt(1-x*x));

ArcCos(x)=PI/2-ArcTan(x/Sqrt(1-x*x));

ArcCtg(x)=PI/2-ArcTan(x);

Logba=Ln(a)/Ln(b);

ax=Exp(x*Ln(a)), где a>0.

2.5. Примеры

Пример 1. Разложение целого числа на простые множители.

PROGRAM Primer_1;

Var x,m: Integer;

BEGIN

Write ('Введите целое число. '); ReadLn (x);

WriteLn ('Разложение числа ', x, ' на простые множители');

m:=2;

While m<=x do

If (x MOD m)=0 Then

Begin

Write (' * ',m);

x:=x DIV m;

End else m:=m+1;

END.

Пример 2. Программа, моделирующая калькулятор.

PROGRAM Primer_2;

Var operation: Char; { Символ арифметической операции }

n: Real;

Answer: Real; { Результат вычисления }

BEGIN

Answer:=0; { Вначале обнулим результат }

operation:='+'; { Присвоить '-', '*' или '/' нельзя }

WriteLn ('Вводите арифметическое выражение');

WriteLn ('каждый символ - с новой строки ');

Repeat

ReadLn (n);

Case operation Of

'+': Answer:=Answer + n;

'-': Answer:=Answer - n;

'*': Answer:=Answer * n;

'/': Answer:=Answer / n;

End;

ReadLn (operation);

Until operation = '=';

WriteLn (Answer:5:4);

END.

Пример 3. Найти все простые числа на заданном отрезке

PROGRAM Primer_3;

Var M: Integer; { Нижняя граница отрезка }

N: Integer; { Верхняя граница отрезка }

i,j: Integer; { Параметры циклов }

kl: Integer;

BEGIN

Write ('Введите нижнюю границу отрезка. '); ReadLn (M);

Write ('Введите верхнюю границу отрезка. '); ReadLn (N);

WriteLn ('Все простые числа из отрезка [', M, ' - ', N, ']');

For i:=M To N Do Begin

kl:=0;

For j:=2 To Round (Sqrt(i)) Do If (i MOD j)=0 Then kl:=kl+1;

If kl=0 Then Write (i, ' ');

End;

END.