Добавил:
Education Must Be Free Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / LR_3_Izuchenie_lineynykh_konstruktsiy.docx
Скачиваний:
34
Добавлен:
22.09.2021
Размер:
315.82 Кб
Скачать
    1. Математические функции

В С++ определены в заголовочном файле <math.h> функции выполняющие некоторые часто используемые математические задачи (табл. 3).

Таблица 2.

Математические функции в языке С++

Математическая функция

Назначение

abs(a)

Модуль или абсолютное значение от а

sqrt(a)

Корень квадратный из а, причём а не отрицательно

pow(a, b)

Возведение а в степень b

сeil(a)

Округление c избытком

floor(a)

Округление а до наибольшего целого, но не больше чем а

fmod(a, b)

вычисление остатка от a/b

exp(a)

вычисление экспоненты а

sin(a)

a задаётся в радианах

cos(a)

a задаётся в радианах

log(a)

натуральный логарифм a(основанием является экспонента)

log10(a)

десятичный логарифм а

asin(a)

арксинус a, где -1.0 < а < 1.0

    1. Пример реализации линейного алгоритма на языке С++

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

На первом этапе произведем анализ поставленной задачи. Для начала определимся с переменными, которые следует ввести. В данном случае это . В условиях задачи можно считать, что введены целочисленные значения , то есть эти переменные будут иметь тип integer, и вещественный x (переменная х имеет тип double).

Результат вычислений должен быть занесен в переменную. Из вида формулы ясно, что результат будет вещественным. Для сохранения результата нам потребуется переменная типа double. Присвоим ей имя y.

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

Получим: .

Далее создадим новый проект (как это сделать изучено в ЛР1). Добавим в него файл исходного кода, запишем в нем функцию main() и объявим переменные.

Далее произведем чтение целочисленных значений переменных с клавиатуры, используя оператор scanf(). Для того, чтобы его стало возможным использовать, подключим заголовочный файл stdio.h.

После чтения значений переменных организуем расчет формулы. Заметим, что для использования функции вычисления синуса числа нам потребуется подключить библиотеку “math.h”, содержащую определение математических функций.

На следующем шаге осуществим вывод полученного значения у. В формате вывода числа укажем, что само число должно занимать 10 символов, после запятой должно отображаться три знака:

При запуске программы в данном случае мы вводим значения переменных, после чего окно закрывается и мы не успеваем увидеть результат работы программы. Для того, чтобы предотвратить закрытие окна добавим команду system("pause") и подключим библиотеку <stdlib.h>:

После запуска приложения и ввода переменных программа выведет следующую информацию (рис. 1).

Рис. 1. Консольное окно выполнения программы

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

Вывод полученных результатов организуем следующим образом:

После запуска программы, ввода значений и завершения алгоритма мы увидим окно со следующим содержимым (рис. 2).

Рис. 2. Консольное окно выполнения программы

Как мы видим, кириллический шрифт оказался нераспознанным. Для того, чтобы исправить это, добавим в код программы следующие строку:

Кроме того, необходимо подключить библиотеку locale.h.

Теперь код программы выглядит следующим образом:

После выполнения программы мы получим окно со следующим содержимым (рис. 3)

Рис. 3. Консольное окно выполнения программы

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

На этом выполнение данного задания завершено.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ.

  1. Ознакомится с теоретической частью лабораторной работы.

  2. Ознакомится с заданиями согласно варианту.

  3. Разработать блок-схему линейного алгоритма решения задачи.

  4. Реализовать разработанный алгоритм на языке программирования C++.

  5. Протестировать программу.

СОДЕРЖАНИЕ ОТЧЕТА

    1. Титульный лист с названием лабораторной работы, номером своего варианта, фамилией студента(ов) и группы.

    2. На первом после титульного листа указать :

- Название работы.

- Цель.

- Задание по варианту.

    1. Блок схема алгоритма.

    2. Текст программы.

    3. Результаты работы программы.

    4. Выводы о полученных результатах работы программы.

КОНТРОЛЬНЫЕ ВОПРОСЫ

    1. Что называется выражением в языке СИ?

    2. Что называется операцией в языке СИ?

    3. Какие типы операций в языке СИ вам известны?

    4. Как осуществляется ввод и вывод информации в программах на языке СИ?

    5. Как реализуются основные математические функции в программах на языке СИ?

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

  1. Липпман С. Б. Основы программирования на C++: Пер. с англ. — М.:Вильямс, 2002. — 256 с.

  2. Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 1104 с.

  3. Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 1104 с.

  4. Страуструп Б. Дизайн и эволюция языка C++. Объектно-ориентированный язык программирования: Пер. с англ. — М.: ДМК пресс, Питер, 2006. — 448 с.

  5. Эккель Б. Философия C++. Введение в стандартный C++: Пер. с англ. — 2-е изд. — СПб.: Питер, 2004. — 572 с.

  6. Эккель Б., Эллисон Ч. Философия C++. Практическое программирование: Пер. с англ. — СПб.: Питер, 2004. — 608 с.

Приложение