Задание 8.
Познакомьтесь с типами данных float и double.
#include <stdlib.h>
#include <stdio.h>
#include <float.h> /* комментарии */
int main()
{
float f;
double d;
printf("sizeof(f)=%d\tsizeof(d)=%d\n\n", sizeof(f), sizeof(d)); /* комментарии */
d = f = FLT_MAX; /* комментарии */
printf("FLT_MAX: f=%g d=%g\n", f, d);
d = f = FLT_MIN; /* комментарии */
printf("FLT_MIN: f=%g d=%g\n", f, d);
d = f = FLT_EPSILON; /* комментарии */
printf("FLT_EPSILON: f=%g d=%g\n", f, d);
f = 1e10; /* комментарии */
printf("1e10: f=%f\n", f);
f = 1e11; /* комментарии */
printf("1e11: f=%f\n", f);
f = 1234567890; /* комментарии */
printf("1234567890: f=%f\n", f);
d = DBL_MAX; /* комментарии */
printf("DBL_MAX: d=%g\n", d);
d = DBL_MIN; /* комментарии */
printf("DBL_MIN: d=%g\n", d);
d = DBL_EPSILON; /* комментарии */
printf("DBL_EPSILON: d=%g\n", d);
d = 1e15 + 1; /* комментарии */
printf("1e15+1: d=%lf\n", d);
d = 1e16 + 1; /* комментарии */
printf("1e16+1: d=%lf\n", d);
f = 10000 * 100000;
f += 1;
f -= 4 * 250000000; /* комментарии */
printf("1: f=%f\n", f);
f = 10000 * 100000 + 1 - 4 * 250000000; /* комментарии */
printf("1: f=%f\n", f);
d = 10000 * 100000 + 1 - 4 * 250000000; /* комментарии */
printf("1: d=%lf\n", d);
d = 1e20 * 1e20 + 1000 - 1e22 * 1e18; /* комментарии */
printf("1000: d=%lf\n", d);
d = 1e20 * 1e20 - 1e22 * 1e18 + 1000; /* комментарии */
printf("1000: d=%lf\n", d);
return 0;
}
Результаты работы программы:
скриншот
Задание 9.
Проверить порядок выполнения операций в каждом выражении, содержащем несколько операций присваивания, разделив каждый оператор-выражение на несколько операторов, выполняемых последовательно.
Текст измененной программы:
Сюда добавляем текст программы. Шрифт Courier New или FreeMono 10 пт, междустрочный интервал одинарный.
Результаты работы программ:
до изменения
скриншот
после изменения
скриншот
Задание 10.
Написать программу для вычисления значений следующих выражений:
a=5, c=5
a=a+b-2
c=c+1, d=c-a+d
a=a*c, c=c-1
a=a/10, c=c/2, b=b-1, d=d*(c+b+a)
Выражения, записанные в одной строке, записывать одним оператором-выражением, не содержащим запятой. Использовать расширенные операции присваивания, операции инкремента и декремента. Переменные c и d объявить как целые, переменные a и b – как вещественные. Значения переменных b и d вводить с клавиатуры. После вычисления каждого выражения выводить на экран значения всех переменных.
Таблица тестирования:
Входные данные | Ожидаемый результат | Результат работы программы |
Текст программы:
Сюда добавляем текст программы. Шрифт Courier New или FreeMono 10 пт, междустрочный интервал одинарный.