Лабы_1 / Лабораторная работа 2 - Операции языка Си
.docЛабораторная работа 2
ОПЕРАЦИИ ЯЗЫКА Си И МАТЕМАТИЧЕСКИЕ ФУНКЦИИ
Цель работы: получение практических навыков программирования арифметических выражений и использования математических функций библиотеки языка C.
Методические указания к выполнению работы:
Для использования в программе математических функций языка Си необходимо включить в код программы заголовочный файл стандартной библиотеки math.h. Ниже приводится краткое описание доступных математических функций:
Прототип функции |
Описание |
int abs(int x); |
абсолютное значение целого числа x |
long labs(long x); |
абсолютное значение длинного целого числа x |
double fabs(double x); |
абсолютное значение вещественного длинного числа x |
double sqrt(double x); |
извлечение квадратного корня из вещественного числа x |
double pow(double x, double y); |
возведение вещественного числа x в степень вещественного числа y |
double cos(double x); |
косинус вещественного числа x. Здесь и далее x задается в радианах |
double sin(double x); |
синус вещественного числа x |
double tan(double x); |
тангенс вещественного числа x |
double acos(double x); |
арккосинус вещественного числа x. Результат в радианах |
double asin(double x); |
арксинус вещественного числа x. Результат в радианах |
double atan(double x); |
арктангенс вещественного числа x. Результат в радианах |
double atan2(double x, double y); |
арктангенс x/y. Результат в радианах |
double exp(double x); |
|
double log(double x); |
натуральный логарифм ln x |
double log10(double x); |
десятичный логарифм |
Для ввода с клавиатуры двух вещественных чисел двойной точности используется функция scanf: scanf("%lf %lf",&x, &y).
Для ввода с клавиатуры трех целых 32-битных чисел используется функция scanf:
scanf("%d %d %d",&Value1, &Value2, &Value3).
Для упаковки нескольких целочисленных переменных в одну, в соответствии с заданной битовой картой (шаблоном), используются операции поразрядного «ИЛИ» и поразрядного сдвига. Для обратной процедуры, распаковки составляющих упакованной структуры данных в отдельные целочисленные переменные, используются операции поразрядного «И» и поразрядного сдвига.
Рабочее задание:
-
Получить у преподавателя номер варианта задания.
-
Проанализировать арифметические выражения и записать области допустимых значений для параметров формулы.
-
Оптимизировать вычисление выражений так, чтобы количество арифметических операций было минимальным, для чего разбить выражения на составляющие части и указать последовательность вычисления подвыражений.
-
Вычислить выражения и вывести значения результатов на экран.
-
Ввести с клавиатуры три составляющие части шаблона как три 32-битных целых числа. При вводе учитывать диапазон возможных значений, который формируется исходя из количества бит, выделенных под соответствующую часть шаблона.
-
Упаковать введенные составляющие части в одну 16-битную целочисленную переменную в соответствии с шаблоном структуры данных. Вывести результирующее значение на экран.
-
Выделить составляющие части структуры данных в три 16-битные целочисленные переменные и вывести их на экран.
Варианты заданий
Шаблон упакованной структуры данных задается тремя группами бит начиная с младшего значащего разряда:
-
, , шаблон: 2-9-5
-
, , шаблон: 3-3-10
-
, , шаблон: 8-2-6
-
, , шаблон 5-2-9
-
, , шаблон 8-5-3
-
, , шаблон 9-3-4
-
, , шаблон 3-10-3
-
, , шаблон 4-4-8
-
, , шаблон 5-3-8
-
, , шаблон 6-6-4
-
, , шаблон 2-2-12
-
, , шаблон 7-2-7
-
, , шаблон 8-4-4
-
, , шаблон 5-5-6
-
, , шаблон 4-6-6
-
, , шаблон 7-7-2
-
,, шаблон 5-6-5
-
, , шаблон 3-7-6
-
, , шаблон 10-3-3
-
, , шаблон 11-2-3
-
, , шаблон 7-4-5
-
, , шаблон 6-5-5
-
, , шаблон 4-5-7