Вычисления по формулам с вещественными числами

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

 
 

Задание: составить программу для вычисления значения арифметического выражения (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);