Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование).docx
Скачиваний:
32
Добавлен:
28.10.2018
Размер:
52.68 Кб
Скачать

9)Условная компиляция.

В Си существует возможность избирательно компилировать части файла в зависимости от значения некоторого константного выражения или идентификатора . Для этого существуют #if,#endif,#elif,#else.

#if (выражение 1)

Текст 1

#elif (выражение 2)

Текст 2

#else

Текст 3

#endif

Каждая из этих директив записывается на отдельной строке . Константные выражения в #if и последующий #elif вычисляются по порядку , пока не обнаружится выражение с ненулевым значением. Текст следуемый за строкой с ненулевым значением выбрасывается . Текст , расположенный за директивой с ненулевым значением обрабатывается обычным образом . Под словом текст имеется ввиду любая последовательность строк включая строки предпроцессора , которые не являются частью условия структуры . Если все выражения имеют ненулевые значения и есть строка #else , то следующий за ней текст обрабатывается .

#if SYSTEM==BCD

#include “bcd.h”

#elif SYSTEM==MSDOS

#include “msdos.h”

#else

#include “default.h”

#endif

10)Стандартные библиотеки <math.h> и <string.h>.

<math.h> (математические функции)

1)Синус

Double sin(double x)

A=sin(x)

2)Косинус

Double cos(double x)

3)Тангенс

Double tan(double x)

4)Арксинус

Double asin(double x)

5)Арккосинус

Double acos(double x)

6)Арктангенс

Double atan(double x)

7)

Double exp(double x)

8)Натуральный логарифм (x>0)

Double log(double x)

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

Double log10(double x)

10)Возведение в степень

Double pow(double x,double y)

11)

Double sqrt(double x)

12)Округление с избытком

Double ceil(double x)

13)Округление с недостатком

Double floor(double x)

14)Модуль для целых чисел |x|

Int abs(int x)

15)Модуль для вещественных чисел

Double fabs(double x)

16)Модуль для длинного целого

Long int labs(long int x)

<string.h>(функции обработки строк)

1)char *strcpy(char *s,const char *t)

Копирует строчку t в строчку s включая \0

2)char *strcat (char *s,const char *t)

Присоединяет строку t к строке s и возвращает s

3)char *strchr (const *s,int c)

Возвращает указатель на первое вхождение символа “c” в строку “s” или если такого нет , то возвращает NULL

4) char *strrchr(const char *s,int c )

Тоже самое , только на последний символ .

5)int strlen (const char *s)

Возвращает длину строки S , но без \0.

11) Стандартные библиотеки <ctype.h> и <stdlib.h>

<ctype.h> (функции проверки класса символов)

1)int isalpha (int c)

Возвращает не 0 , то есть истину , если с-буква и 0 в противном случае .

2) int isupper (int c)

Возвращает не 0 , если с-буква верхнего регистра и 0 в противном случае .

3) int islower (int c)

Возвращает не 0 , если с-буква нижнего регистра и 0 в противном случае .

4) int isdigit (int c)

Возвращает не 0 , если с-цифра и 0 в противном случае .

5) int isaalnum (int c)

Возвращает не 0 , если с-буква или цифра и 0 в противном случае .

6) int isspace (int c)

Возвращает не 0 , если с-пробел и 0 в противном случае .

7) int ispunct (int c)

Возвращает не 0 , если с-печатаемый символ ,кроме пробела , буквы или цифры .

8) int iscntrl (int c)

Возвращает не 0 , если с-управляемый символ .

9) int tolower (int c)

Переводит с на нижний регистр , иначе не меняет .

10) int toupper (int c)

Переводит с на верхний регистр , иначе ничего не делает.

<stdlib.h>(функции общего назначения)

1)double afof(const char *s)

Переводит строку s в тип double . Рассматривает начальные символы до 1го не подходящего , а пробелы игнорирует. Пример – на входе ______3,78bsdfc на выходе будет 3,78

2)int afoi (const char *s)

Переводит строку s в тип int

3)long int afol(const char *s)

Переводит в long

4)int rand (coid)

Возвращает целое случайное число в диапазоне от 0 до max числа в данной реализации.