Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Запись алгебраических выражений

2017-11-17 587
Запись алгебраических выражений 0.00 из 5.00 0 оценок
Заказать работу

Вверх
Содержание
Поиск

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

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

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

Таблица 9 − Учет приоритета операций посредством скобок

Математическое выражение Запись на языке 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 Аргументы сложных функций (функция функции) необходимо заключать в скобки (таблица 10).

Таблица 10Pascal -код сложных функций

Математическое выражение Запись на языке Pascal Возможные ошибки
sqrt(abs(sin(x))); Потеря скобок или неправильный порядок расположения функций
sqr(ln(2*x)); Потеря скобок, неправильный порядок следования функций, потеря знака умножения
exp(2*sqr(cos(x))); Неправильный порядок следования функций, потеря знака умножения или скобок
     

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

(1)

можно ввести промежуточную переменную f 1 и только после этого записать оператор присваивания для вычисления f:

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

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

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

Таблица 11Pascal -код экспоненциальной функции

Математическое выражение Запись на языке Pascal
exp(a+b)
exp(1)
exp(–1)
   

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

, (2)

. (3)

Примеры приведены в таблице 12.

Таблица 12Pascal -код степенных и показательных выражений

Математическое выражение Альтернативная математическая запись Запись на языке Pascal
exp(x/2*ln(a+b))
exp(1/3*ln(a/b))
     

6 Необходимо учитывать область определения функций, к которым в выражении происходит обращение. Такие ошибки легче предотвратить, чем исправлять, так как они не обнаруживаются компилятором. Например, для выражения , записанного на языке Pascal в виде

exp(17*ln(x)),

при выполнении программы возникнет ошибка при отрицательных значениях переменной х. Поэтому его лучше записать в форме

sqr(sqr(sqr(sqr(x))))*x,

исключающей подобную ошибку.

Два других примера представлены в таблице 13.

Таблица 13 − Учет области определения функций

Математическое выражение Запись на языке Pascal Альтернативная запись на языке Pascal
exp(1/8*ln(x)); sqrt(sqrt(sqrt(x)))
exp(1/5*ln(x)); ifx>0theny:= exp(1/5*ln(x)) else ifx<0 then y:=- exp(1/5*ln(abs(x))) elsey:=0;
     

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

Пример 2. Запишите на языке Pascal выражение .

Решение.

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


Поделиться с друзьями:

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.