- •Алгоритмические языки и программирование Изучение условных и циклических конструкций
- •Брянск 2007
- •1. Цель работы
- •2. Теоретическая часть
- •2.1. Блок-схемы
- •Основные символы блок-схем
- •2.2. Операторы условного перехода
- •2.2.1. Оператор условия If
- •2.2.2. Оператор выбора Case
- •2.3. Операторы циклов
- •2.3.1. Оператор с предусловием While
- •2.3.2. Оператор с постусловием Repeat
- •2.3.3. Оператор со счетчиком For
- •2.4. Математические функции и константы
- •2.5. Примеры
- •3. Порядок выполнения работы
- •4. Список заданий
- •Список заданий
- •5. Контрольные вопросы
- •6. Список рекомендуемой литературы
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.