Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
72
Добавлен:
12.08.2017
Размер:
8.79 Mб
Скачать
      1. Запись алгебраических выражений

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

1 Необходимо учитывать приоритет операций (таблица 2.1): сначала выполняется умножение (знак «*») и деление (знак «/»), затем сложение и вычитание:

1) *и/2)+и

Все знаки арифметических операций, даже те, которые при корректной математической записи ставить не принято (например, как при записи произведения ab = ab), необходимо указывать при составлении выражения наPascal. Изменить порядок выполнения операций можно с помощью скобок:

Математическое выражение

Запись на языке Pascal

Возможные ошибки

(a-b)/(c+d)

Отсутствие скобок изменит смысл выражения:

a-b/c+d ~

(sin(x)+y)/(x*y)

1 Пропущенный знак умножения означает указание на новую (возможно, несуществующую) переменную xy: (sin(x)+y)/xy

2 Неправильно расставленные или пропущенные скобки изменят смысл выражения:

(sinx+y)/(x*y) ~ введено новое имя sinx;

(sin(x)+y)/x*y ~ − изменен смысл

2 Аргументы функций необходимо брать в скобки, даже если задается сложная функция, например:

Математическое выражение

Запись на языке Pascal

Возможные ошибки

sqrt(abs(sin(x)));

Потеря скобок или неправильный порядок расположения функций

sqr(ln(2*x));

Потеря скобок, неправильный порядок следования функций, потеря знака умножения

exp(2*sqr(cos(x)));

Неправильный порядок следования функций, потеря знака умножения или скобок

3 При записи на языкеPascalсложных алгебраических выражений целесообразно вводить вспомогательные переменные, которыми, однако, не следует злоупотреблять. Например, для записи выраженияможно ввести промежуточную переменнуюf1 и только после этого записатьf:

f1:=sin(x)/cos(x);

f:=(1+sqr(f1))/(1-2*sqr(f1));

4 Для записи на языке Pascalэкспоненты, гдеe  2,718281828 − основание натурального логарифма, используется функцияexp(x), например:

Математическое выражение

Запись на языке Pascal

exp(a+b)

exp(1)

5 Определенные трудности возникают при записи степенных и показательных выражений, например,,или. Следует помнить формулы элементарной математики:

которые используются при записи выражений на Pascal:

Математическое выражение

Альтернативная математическая запись

Запись на языке Pascal

exp(x/2*ln(a+b))

exp(1/3*ln(a/b))

5 Следует учитывать область определения функций, входящих в выражение. Такие ошибки легче предотвратить, чем исправлять, так как они не обнаруживаются компилятором. Например, выражениепри записи на языкеPascalв видеexp(17*ln(x))вызовет появление ошибки при отрицательных значениях переменнойх. Поэтому его лучше записать так:sqr(sqr(sqr(sqr(x))))*x;.

Другие примеры:

Математическое выражение

Запись на языке Pascal

Альтернативная запись на языке Pascal

exp(1/8*ln(x));

sqrt(sqrt(sqrt(x)))

exp(1/5*ln(x));

if x>0 then y:= exp(1/5*ln(x)) else if x<0

then y:=-exp(1/5*ln(abs(x))) else y:=0;

6 Не следует забывать о скорости выполнения операций и рациональной записи выражений. Арифметические операции в порядке возрастания времени выполнения можно расположить так: сложение и вычитание, умножение и деление. Поэтому в некоторых случаях целесообразно заменять умножение сложением или использовать функции вместо операций сложения и умножения. Например,x*xлучше записатьsqr(x), а вместо оператора присваиванияx:=x + 1использоватьinc(x).

Пример 2.2.Записать на языкеPascalвыражение.

Решение.

~ x*(x*(x*(2*x-3)+5)-1)+7.

Соседние файлы в папке экзамен информатика