Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
rudenko_c_tasks.doc
Скачиваний:
54
Добавлен:
12.11.2019
Размер:
666.62 Кб
Скачать
      1. Математические функции

В головном файле <math.h> описываются следующие математические функции:

double sin(double x) синус x

double cos(double x) косинус x

double tan(double x) тангенс x

double asin(double x) арксинус x; x[-1,+1]

double acos(double x) арккосинус x; x[-1,+1]

double atan(double x) арктангенс x

double sinh(double x) гиперболический синус x

double cosh(double x) гиперболический косинус x

double tanh(double x) гиперболический тангенс x

double exp(double x) экспоненциальная функция ex

double log(double x) натуральный логарифм ln(x), x>0

double log10(double x) десятичный логарифм log10(x), x>0

double sqrt(double x) квадратный корень x, x0

double fabs(double x) абсолютное значение x

double pow(double x, double y) xy

double ldexp(double x, int n) x*2n

      1. Функции общего назначения

Функции этого раздела предназначены для преобразования чисел и запроса памяти; они описаны в головном файле <stdlib.h>.

double atof(const char *s)

atof переводит строку s в значение double. В случае переполнения выдает HUGE_VAL - некоторое положительное double-значение, определенное в головном файле <math.h>; при исчезновении порядка - нуль.

int atoi(const char *s)

atoi переводит строку s в значение int. В случае переполнения выдает (int)HUGE_VAL - некоторое положительное double-значение, определенное в головном файле <math.h>, преобразованное в int; при исчезновении порядка - нуль.

void *calloc(size_t nobj, size_t size)

calloc возвращает указатель на место в памяти, отведенное для массива nobj объектов, каждый из которых имеет размер size. Выделенная область памяти обнуляется. Если память отвести не удалось, то результат работы функции - NULL.

void *malloc(size_t size)

malloc возвращает указатель на место в памяти для объекта размера size. Выделенная память не инициализируется. Если память отвести не удалось, то результат работы функции - NULL.

void free(void *p)

free освобождает область памяти, на которую указывает p; если p равно NULL, то функция ничего не делает. Значение p должно указывать на область памяти, ранее выделенную с помощью функций calloc или malloc.

      1. Дальние переходы

Головной файл <setjmp.h> предоставляет средства для изменения обычной последовательности обработки вызовов функций: «вызов – возврат в точку вызова». Типичная ситуация, когда требуется отказаться от этой стратегии – необходимость вернуться из «глубоко вложенного» вызова функции на верхний уровень, минуя промежуточные возвраты.

int setjmp (jmp_buf env)

setjmp сохраняет контекст вызова в env для последующего его использования в longjmp. Возвращает нуль, если возврат осуществляется непосредственно из setjmp, и значение val (которое должно быть отличным от нуля), если возврат произошел из последующего вызова longjmp. Обращение к setjmp разумно только в определенных ситуациях: в основном, это проверки в if, swith и циклах в выражениях отношения вида

if ( setjmp() = = 0 )

/* после прямого возврата из setjmp */

else

/* после возврата из longjmp */

void longjmp (jmp_buf env, int val)

longjmp восстанавливает контекст, сохраненный в env при последнем вызове setjmp. Счет возобновляется, как если бы функция setjmp только что отработала и вернула ненулевое значение val. При этом переменныеимеют те значения, которые они имели в момент обращения к longjmp; функция setjmp значений объектов не сохраняет. Результат непредсказуем, если в момент обращения к longjmp, функция, содержащая вызов setjmp, уже завершила свою работу стандартным образом, вернув управление в точку вызова.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]