Встроенные (стандартные) процедуры и функции

Обращение Тип аргумента Тип результата Функция
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. Ввести номер дня недели и вывести соответствующий ему день недели на русском и английском языках.