Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы_1 / Лабораторная работа 2 - Операции языка Си

.doc
Скачиваний:
23
Добавлен:
20.03.2016
Размер:
29.11 Кб
Скачать

Лабораторная работа 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).

Для упаковки нескольких целочисленных переменных в одну, в соответствии с заданной битовой картой (шаблоном), используются операции поразрядного «ИЛИ» и поразрядного сдвига. Для обратной процедуры, распаковки составляющих упакованной структуры данных в отдельные целочисленные переменные, используются операции поразрядного «И» и поразрядного сдвига.

Рабочее задание:

  1. Получить у преподавателя номер варианта задания.

  2. Проанализировать арифметические выражения и записать области допустимых значений для параметров формулы.

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

  4. Вычислить выражения и вывести значения результатов на экран.

  5. Ввести с клавиатуры три составляющие части шаблона как три 32-битных целых числа. При вводе учитывать диапазон возможных значений, который формируется исходя из количества бит, выделенных под соответствующую часть шаблона.

  6. Упаковать введенные составляющие части в одну 16-битную целочисленную переменную в соответствии с шаблоном структуры данных. Вывести результирующее значение на экран.

  7. Выделить составляющие части структуры данных в три 16-битные целочисленные переменные и вывести их на экран.

Варианты заданий

Шаблон упакованной структуры данных задается тремя группами бит начиная с младшего значащего разряда:

  1. , , шаблон: 2-9-5

  2. , , шаблон: 3-3-10

  3. , , шаблон: 8-2-6

  4. , , шаблон 5-2-9

  5. , , шаблон 8-5-3

  6. , , шаблон 9-3-4

  7. , , шаблон 3-10-3

  8. , , шаблон 4-4-8

  9. , , шаблон 5-3-8

  10. , , шаблон 6-6-4

  11. , , шаблон 2-2-12

  12. , , шаблон 7-2-7

  13. , , шаблон 8-4-4

  14. , , шаблон 5-5-6

  15. , , шаблон 4-6-6

  16. , , шаблон 7-7-2

  17. ,, шаблон 5-6-5

  18. , , шаблон 3-7-6

  19. , , шаблон 10-3-3

  20. , , шаблон 11-2-3

  21. , , шаблон 7-4-5

  22. , , шаблон 6-5-5

  23. , , шаблон 4-5-7