- •Основные понятия программирования
- •Понятие алгоритма. Алгоритмизация
- •Свойства алгоритма
- •Запись алгоритма на естественном языке
- •Изображение алгоритма в виде схемы
- •Понятие о языках программирования
- •Понятие о структурном подходе к разработке алгоритмов
- •4 Идти к 8
- •6 Идти к 8
- •8 Останов
- •Первая программа на Си
- •Процесс создания программы
- •Комментарии
- •Директива #include
- •Макросы
- •Переменные и типы данных
- •Правила именования идентификаторов
- •Типы данных
- •Int двухбайтовое целое число
- •Оператор printf: вывод на экран
- •Последовательности для вывода специальных символов
- •Спецификация вывода
- •X тип int в шестнадцатеричном виде
- •Оператор scanf: ввод с клавиатуры
- •Логическая организация программы на Си
- •Функция main
- •Глобальные и локальные переменные
- •Операторы и операции
- •Арифметические операции
- •Битовые операции
- •Операции отношения
- •Логические операции
- •Операции присваивания
- •Другие операции
- •Математические функции
- •Управляющие структуры
- •Операторы ветвления
- •Операторы цикла
- •Массивы
- •Функции
- •Интегрированная среда разработки turbo c
- •Общие сведения и принципы работы
- •Стандартные органы управления
- •Главное меню
- •Запуск иср и выход
- •Работа с окнами и файлами
- •Система помощи
- •Редактор
- •Компиляция и выполнение программ
- •Технология создания с-программы
- •Лабораторные работы
- •Лабораторная работа №1
- •Создание нового файла
- •Ввод и редактирование исходного текста
- •Сохранение
- •Выполнение программы
- •Исправление ошибок
- •Просмотр результатов выполнения
- •Закрытие файла
- •Открытие и выполнение ранее сохраненного файла
- •Вызов справки
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Список вопросов
- •Литература
- •Приложение Пример оформления отчета по лабораторной работе
- •Блок-схема алгоритма
- •Текст программы
- •Результат выполнения программы
- •Теория и технология программирования
-
Математические функции
Как уже упоминалось ранее, в языке Си нет встроенных функций, поэтому, при необходимости использовать в выражениях математические функции, нужно подключить заголовочный файл math.h. При этом будут доступны функции, представленные в таблице 7.
Таблица 7 — Список основных функций math.h
Функция |
Описание |
|
fabs(x) |
абсолютная величина, |
|
sqrt(x) |
квадратный корень, |
|
exp(x) |
экспонента, |
|
log(x) |
натуральный логарифм, |
|
log10(x) |
десятичный логарифм, |
|
pow(x, y) |
возведение x в степень y, |
|
floor(x) |
округление до целого числа вниз |
|
ceil(x) |
округление до целого числа вверх |
|
sin(x) |
синус, |
аргумент x в радианах |
cos(x) |
косинус, |
|
tan(x) |
тангенс, |
|
asin(x) |
арксинус, |
|
acos(x) |
арккосинус, |
|
atan(x) |
арктангенс, |
|
sinh(x) |
гиперболический синус, |
|
cosh(x) |
гиперболический косинус, |
|
tanh(x) |
гиперболический тангенс, |
В листинге 10 приведен пример программы использующей математические функции. Обратите внимание на оператор printf, осуществляющий вывод результатов расчета. В спецификации вывода координат %+.1f используется флаг +, означающий обязательный вывод знака числа (как минуса, так и плюса). Кроме этого, для переноса строки используется обратный слеш \. Если его не поставить, то компилятор будет выдавать ошибку: незавершенная строка. Текст, идущий с начала следующий строки, будет выводиться на экран с того места, на котором закончился вывод предыдущей на символе \. Сам символ \ на экран не выводится. Такой прием удобно использовать при необходимости вывода длинных строк, но при этом сохраняется нормальное форматирование программы. Другой способ избежать выхода текста программы за пределы экрана в окне редактора — разбивать один оператор printf с длинной строкой на несколько коротких операторов printf, умещающихся в экран.
Листинг 10 — Пример использования математических функций
/* rasst.c – пример использования математических функций */
#include <stdio.h> // scanf(), printf() #include <math.h> // sqrt(), pow()
int main() { float x1, y1, x2, y2; // координаты двух точек float d; // расстояние между точками
// запрос на ввод координат первой точки printf("Введите координаты первой точки: "); // ввод с клавиатуры двух вещественных чисел scanf("%f %f", &x1, &y1);
// запрос на ввод координат второй точки printf("Введите координаты второй точки: "); // ввод с клавиатуры двух вещественных чисел scanf("%f %f", &x2, &y2);
/* расчет расстояния между точками sqrt() - функция извлечения квадратного корня pow() - функция возведения в степень */ d = sqrt(pow(x2 - x1, 2) + pow(y2 - y1,2));
// вывод результатов расчета printf("Расстояние между (%+.1f, %+.1f) и \ (%+.1f, %+.1f) равно %.3f\n", x1, y1, x2, y2, d);
return 0; } |
Результаты выполнения программы rasst.c представлены на рисунке 25. Координаты точек при запросе оператором scanf могут быть введены через пробел или нажатием клавиши ENTER после ввода каждого числа.
Рисунок 25 — Результат выполнения программы rasst.c