Что такое cmath в c

Стандартная библиотека С++ (Часть 1)

Этот урок состоит из двух частей:

В предыдущих уроках мы уже подключали библиотеку ввода/вывода ( iostream ). Теперь также подключим две новых библиотеки:

1 Математическая библиотека Си/С++

Нахождение квадратного корня числа a. Вы любите комплексные числа? sqrt тоже, поэтому не задавайте ему отрицательные числа. Пример:

Ну и картинка для лучшего понимания:

Желательно чтобы в операции a=sqrt(b) обе переменные были вещественными, используя другие виды переменных возможно получить ошибку компиляции или неверное решение.

pow(a,b)

fmod(a,b)

Теперь тригонометрические функции, т.е косинусы, синусы, тангенсы и их арк-версии, ВНИМАНИЕ, в С++ используются не градусы а радианы. Универсальная формула:

Программе задается угол в градусах или радианах (для этого замените строку на комментарий под ней), и она выдает тригонометрические функции от этого угла.

Программе задается тригонометрическая функция, и она выдает их арк-функции в радианах и градусах. Мне кажется, что комментарии к коду излишни, так как все должно быть понятно даже при беглом просмотре.

Наиболее часто используемые математические фукнции стандартной библиотеки приведены в таблице:

ФункцияОписание работы функции
double sqrt (double x);Данная математическая функция вычисляет и возвращает корень из положительного числа, принимая его в
качестве аргумента х
double pow (double x, double y);Возводит число, принимаемое в качестве аргумента х, в степень, принимаемую в качестве
аргумента y.
double fabs (double x);Вычисляет абсолютное значение числа х (иными словами, его модуль)
double fmod (double x, double y);Вычисляет остаток от деления х на y.
double ceil (double x);Вычисляет наименьшее целое, значение которого не будет меньшим, чем х. Например,
функция ceil (4.68) вернет значение 5.00.
double floor (double x);В отличии от предыдущей функции эта функция вычисляет наибольшее целое, по значению не превосходящее
х. Например, функция floor (4.68) вернет значение 4.00.
double modf (double value, double *ptr);Разбивает значение аргумента value на целую и дробные части. Целую часть функция сохраняет
в объекте на который указывает указатель *ptr, а дробную возвращает.
double cos (double x);Вычисляет косинус аргумента х, который задается в радианах
double sin (double x);То же, но синус
double tan (double x);То же, но тангенс
double acos (double x);Вычисляет главное значение арккосинуса х. Аргумент х должен быть из
интервала [-1 ; +1]. Функция возвращает значение в радианах из интервала [0; p]
double asin (double x);Вычисляет главное значение арксинуса х. Аргумент х должен быть из
интервала [-1 ; +1]. Функция возвращает значение в радианах из интервала [- p/2; + p/2]
double atan (double x);Вычисляет главное значение арктангенса х.
double exp (double x);Вычисляет значение показательной функции аргумента х.
double log (double x);Вычисляет натуральный логарифм аргумента х.
double log10 (double x);Вычисляет десятичный логарифм аргумента х.

2 Работа с файлами и другими потоками в С++

Под файлом тут понимается область внешней памяти (жесткого диска), которой в операционной системе присвоено имя. При закрытии программы, область памяти, в которой работала программа возвращается операционной системе, при этом мы никак не сможем повторно получить эти данные. Если нужно хранить информацию между запусками программы — используем файлы.

Поддержка операционной системы состоит в том, что в ней имеются средства:

создания файлов;
уничтожения файлов;
поиска файлов на внешнем носителе;
чтения и записи из файлов и в файлы;
открытия файлов;
закрытия файлов;
позиционирования файлов.
Любой сколько-нибудь развитый язык программирования должен содержать средства для организации хранения информации на внешних запоминающих устройствах и доступа к этой информации. Язык С++ не лишен таких возможностей.

Любой файл в С++ имеет три характерные особенности:

у файла есть имя, это дает возможность работать с несколькими файлами одновременно;
содержит компоненты одного типа (типом может быть любой тип, кроме файлового);
длина вновь создаваемого файла никак не ограничена при объявлении и ограничивается лишь емкостью внешних устройств памяти.
Файлы могут быть текстовыми и двоичными (типизированными). Вид файла определяется способом хранения информации в файле.

Текстовый файл можно представить как набор строк произвольной длины. Для деления на строки используется управляющий символ «\n». Он является файлом последовательного доступа. Логически текстовый файл можно представить как именованную цепочку байтов, имеющую начало и конец. Чтение (или запись) из файла (в файл) ведется байт за байтом от начала к концу. Перед первым обращением к функциям ввода-вывода указатель файла стоит в его начале и указывает на первый компонент. После каждого чтения или записи указатель сдвигается на заданное количество байт. Такой способ доступа называется последовательным. Текстовые файлы оказываются переносимыми с одного типа компьютера на другой, если символы, содержащиеся в файле, принадлежат стандартному набору символов (т.е. не используются дополнительные символы, такие, например, как символы псевдографики фирмы IBM).

Рассмотрим текстовые файлы. Каждой программе доступны два стандартных файла stdin (клавиатура) и stdout (экран). Это — текстовые файлы. Любые другие файлы становятся доступными после выполнения специальных процедур. Рассмотрим основные функции для работы с текстовыми файлами.

Например, необходимо создать текстовый файл и записать в него строку «Скоро Новый год!». Для этого необходимо проделать следующие шаги:

создать объект класса ofstream;
связать этот объект с файлом, в который будет производиться запись;
записать строку в файл;
закрыть файл.
Например, создаём объект fout для записи в файл:

ofstream out ; // объект класса ofstream

Объект создан, связываем его с файлом, в который планируется записать строку:

out.open(«out.txt»); // связываем объект с файлом

Указанный файл будет создан в текущей директории. Если файл с таким именем существует, то существующий файл будет заменен новым. Итак, файл открыт, записываем в него нужную строку:

Так как больше нет необходимости изменять содержимое файла, его нужно закрыть, то есть отделить объект от файла.

out.close (); // закрываем файл

Шаги по созданию объекта и связыванию его с файлом можно объединить:

Объединим весь код и получим следующую программу.

При считывании данных из файла может произойти ситуация достижения конца файла (end of file, сокращенно EOF). После достижения конца файла никакое чтение из файла невозможно. Для того чтобы проверить состояние файла, необходимо вызвать метод eof(). Данный метод возвращает true, если конец файла достигнут или false, если не достигнут. Например, в файле в текстовом файле File.txt хранится последовательность целых чисел, необходимо их считать и найти сумму:

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

Организацию считывания файла построчно (считая, что строка заканчивается символом перехода на новую строку) продемонстрируем на примере кодирования файла путем замены кода символа следующим кодом из таблицы ASCII :

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *