Обращение | Тип аргумента | Тип результата | Функция |
Abs(x) | I, R | I, R | Модуль аргумента x |
Arctan(x) | I, R | R | Арктангенс x (радианы) |
Cos(x) | I, R | R | Косинус x (x в радианах) |
Exp(x) | I, R | R | ex – экспонента |
Frac(x) | I, R | R | Дробная часть x |
Int(x) | I, R | R | Целая часть x |
Ln(x) | I, R | R | Натуральный логарифм x |
Random | R | Псевдослучайное число в интервале [0, 1 ) | |
Random(x) | I | I | Псевдослучайное число в интервале [0, x) |
Round(x) | R | I | Округление до ближайшего целого |
Sin(x) | I, R | R | Синус x (x в радианах) |
Sqr(x) | I, R | I, R | Квадрат x |
Sqrt(x) | I, R | R | Корень квадратный из x |
Trunc(x) | R | I | Ближайшее целое, не превышающее x по модулю |
5 Примеры программ
5.1. Вычислить периметр и площадь треугольника по трем сторонам a1,a2,a3.
Решение:
Блок-схема алгоритма решения задачи приведена на рис.1.
Программа:
PROGRAM PL;
VAR A1,A2,A3,P,P1,S:REAL;
BEGIN
WRITELN(' Введите стороны треугольника a1,a2,a3');
READ(A1,A2,A3);
P:=A1+A2+A3; P1:=P/2;
S:=SQRT(P1*(P1-A1)*(P1-A2)*(P1-A3));
WRITE('P=',P,' S=',S)
END.
5.2 Даны X и Y. Вычислить значение выражения:
Решение:
Блок-схема алгоритма решения задачи приведена на рис. 2.
|
|
Программа:
PROGRAM PRIM;
VAR X,Y,Z,A,B:REAL;
BEGIN
WRITELN('Введите значения X,Y');
READ(X,Y);
A:=Y-SQRT(ABS(X));
B:=(SQR(COS(PI*X))-ARCTAN(SQR(X)*X))/EXP(X*Y);
Z:=SIN(ABS(A*B));
WRITE('Z=',Z)
END.
5.3. Вычислить арифметическое выражение
Если описать В как логическую переменную, определить ее значение отдельно:
В:=x<0
то условный оператор примет вид
IF B THEN y:=x+1 ELSE y:=2*x
5.4. Вычислить А=N+40, если значение 15<N<25. При всех других значениях N вычислить В=M+1.
Условный оператор имеет вид
IF (N>15) AND (N<25) THEN A:=N+40 ELSE B:=M+1;
Обратите внимание на логическое выражение: когда выполняются одновременно оба условия N>15 и N<25, только тогда вычисляется значение А=N+40. Значения переменных N и M определяют до выполнения оператора.
Условный оператор можно расширить за счет вложенности новых условий в операторе. Это приводит к сокращению числа операторов, но одновременно снижает наглядность программы. Новое условие может записываться за ключевыми словами THEN и ELSE. По принятому соглашению в языке ПАСКАЛЬ ключевое слово ELSE всегда относится к ближайшему ему слову IF.
Например:
IF B1 THEN A1 ELSE IF B2 THEN A2 ELSE A3;
5.5. Составить программу для вычисления значения функции
Z=X3/Y, где Y=SIN NX+0.5.
Схема алгоритма решения приведена на рис.3.
Khjjgkhghkjgfjkhfghjkfhgjhghjfgjhgfhkjfghjgfhfjgjhjhjhjh vnbnvbhhvbn ntgfttruyhjkgnbgjhyufdgyghiufjnmtgujkfg
В программе используются имена N,X для исходных данных, имя Y для промежуточного значения и имя Z для результата.
Для записи программы используются два варианта записи условного оператора.
Вариант 1.
PROGRAM USL1;
LABEL 20,30;
VAR N:INTEGER; X,Y,Z:REAL;
BEGIN
READ(N,X);
Y:=SIN(N*X)+0.5;
IF Y=0 THEN GOTO 20;
Z:=SQR(X)*X/Y;
WRITE('Z=',Z);
GOTO 30;
20: WRITE('Y=0');
30:
END.
Вариант 2.
PROGRAM USL2;
VAR N:INTEGER; X,Y,Z:REAL;
|
|
BEGIN
READ(N,X);
Y:=SIN(N*X)+0.5;
IF Y=0 THEN WRITE('Y=0')
ELSE BEGIN
Z:=X*X*X/Y;
WRITE('Z=',Z)
END
END.
Вариант 1 написан в соответствии со схемой алгоритма, приведенной на рис.3, а вариант 2 использует возможности языка.
5.6. Составить программу для вычисления функции
Получить разветвление на три ветви можно различными сочетаниями операторов перехода и условного. Однако в языке ПАСКАЛЬ условный оператор можно наращивать за счет использования вложенности условий. С использованием одного условного оператора программа имеет вид
Program usl3;
Var x,a,b,z:real;
Begin
Read(x,a,b);
If x<=a then z:=sin(x)
Else If x>b then z:=sin(x)/cos(x)
Else z:=cos(x);
Writeln(z)
End.
5.7. Ввести номер дня недели и вывести соответствующий ему день недели на русском и английском языках.