Вычисление числовых формул Задание
Составить программу, которая вычисляет две математически эквивалентные пары числовых формул: y1 ~ y2 и z1 ~ z2, с указанными в варианте задания значениями переменных, выводит переменные и результаты вычислений.
Два числовых выражения математически эквивалентны, если для всех возможных значений переменных их математические значения равны.
Примечание. В программе нельзя заменять числа в формулах задания и функции (кроме sec x и ctg x) эквивалентными значениями. Разрешается вводить обозначения.
Отчет
Отчет по лабораторной работе должен содержать в указанном порядке:
название работы;
номер варианта задания;
фамилию, имя, отчество и номер группы студента, выполнившего работу;
текст задания;
формулы в том виде, как они приведены в варианте задания;
ОДЗ переменных для формул y1, y2;
распечатку программы и результатов из соответствующих файлов;
вопросы к заданию с правильными ответами.
Справочная информация
Старшинство операций:
Операция |
Знак |
Старшинство |
Вычисление функции |
имя(аргумент) имена см. ниже |
1 |
Умножение, деление |
*, / |
2 |
Сложение, вычитание |
+, – |
3 |
В заданиях используются математические функции:
в формуле |
в C |
в формуле |
в C |
в формуле |
в C |
xy |
pow( x, y) |
│х│ |
fabs(x) |
sin х |
sin(x) |
|
sqrt(x) |
cos х |
cos(x) |
tg х |
tan(x) |
Примечания. Функцию sec х вычислять из соотношения sec х · cos х = 1.0
Для использования стандартных математических функций ANSI C в программу необходимо включить директиву препроцессора
#include <math.h>
Комментарии к заданию
Обратите внимание на типичные ошибки.
Формула |
Запись на языке C |
cos x2 |
правильно cos(x*x), не правильно cos(x)* cos(x) возведение в степень в формуле относится к аргументу, а не к функции |
cos2x |
правильно cos(x)* cos(x), не правильно cos * cos(x) после имени функции в C аргументы в скобках, а не операция |
2x+b |
правильно 2*x + b, не правильно 2x + b знак операции умножения в C опускать нельзя |
|
правильно a/((b+c)*d), не правильно а/(b+c)*d в а/(b+c)*d нарушен порядок операций, он соответствует формуле |
|
правильно 1.0/3.0, не правильно 1/3 результат деления целых чисел 1/3 есть целое равное 0 |
|
правильно pow(x, 1.0/3.0), не правильно pow(x, 1/3), результат деления 1/3 равен 0, а x0 = 1 |
Программируя числовые формулы, необходимо учитывать следующее:
предпочтительно именовать переменные со смыслом, например, вычисление длины окружности: circle = 2*Pi*Radius; // С = 2R
формулу пишут в строчку, возможно длинную; действия выполняются по старшинству; скобки (только круглые) изменяют старшинство;
знак умножения, как в 2R, опускать нельзя 2* Pi*Radius
в ссылке на функцию после имени функции пишут аргументы в круглых скобках;
в ПК используется два комплекта числовых операций, которые выбираются компилятором в соответствии с типом вступающих в операцию операндов, если операнды целые, ответ целый и точный, если хотя бы один операнд вещественный – ответ вещественный и приближенный; особенно существенно понимание этого механизма для операции деления целых чисел;
громоздкие формулы следует упрощать, вводя обозначения, в том числе и для повторяющихся частей формулы;
для контроля разумно восстановить формулу по выражению.
Пример
1) исходные значения: x=3.3