Вычисления по формулам с вещественными числами
Цель: выработка умений программирования арифметических выражений с вещественными переменными и константами и использования библиотечных функций языка Си, закрепление умений отладки и тестирования программ линейной структуры и составления отчета по разработанной программе.
Задание: составить программу для вычисления значения арифметического выражения (1). Значение х вводит пользователь программы. Вывод результатов на печать выполнить в экспоненциальной форме с числом знаков после точки, равным числу знаков в исходных данных. Определить порядок выполнения операций в арифметическом выражении программы.
/* Программа 2
ТЕСТ: x= sqrt(2) = 1.4142, z= 0.2000 */
#include <stdio.h>
#include <math.h>
void main()
{ double x, z;
printf("\n\n\t *** РАБОТА 2 *** \n");
printf("Выполнил: Иванов П.С., группа ИТ-11, вариант 13 \n");
printf("Введите x:\t ");
scanf("%le", &x); // Для чего указан символ & ?
printf("Исходные данные: x=%.4le \n", x);
z = (2.0 - exp(1.- x*x/2.)) / (3. + sqrt(sqrt(2.) * pow(x,3)));
printf("Результат: z=%.4le \n", z); // в экспоненциальной форме
} // с 4 знаками в числе z после точки
Порядок выполнения операций при вычислении выражения:
(2.0 – exp(1. – x * x / 2.)) / (3. + sqrt(sqrt(2.) * x * 3))
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
5 4 3 1 2 12 11 10 6 7 9 8
Операция 8 – преобразование константы 3 типа int в константу 3.0 типа double.
Вопросы и упражнения:
1. Как вычислить выражение y = logab, в котором а>0, b>0 ?
2. Модифицируйте программу для вычисления выражения (1), в знаменателе которого вычисляется корень k-ой степени из 2.
3. Определите область допустимых значений переменной х для вычисления выражения (1). Можно ли вычислить выражение для х = –1?
4. Сравните количество верных знаков в числах типа float и double. Для этого вычислите значение y = 1.0 / 3.0 и выведите результаты на экран оператором printf(“\n float = %.20f double = %.20lf ”, yfl, ydb);