Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебн.пособ. для з.о..doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
439.81 Кб
Скачать

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

Обращение

Тип аргумента

Тип результата

Функция

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