Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теорія.doc
Скачиваний:
2
Добавлен:
03.11.2018
Размер:
308.74 Кб
Скачать

Пошук в масивах

Лінійний пошук (або послідовний перебір)

При лінійному пошуку відбувається порівняння кожного елемента масиву з ключем пошуку.

Бінарний пошук

Високошвидкісний бінарний пошук використовується у випадку відсортованого масиву.

При бінарному пошуку після кожного порівняння виключається половина елементів масиву, в якому проводиться пошук. Алгоритм знаходить середній елемент масиву і порівнює його з ключем пошуку. Якщо вони рівні, ключ пошуку вважається знайденим, інакше задача спрощується до пошуку в одній половині масиву. Якщо ключ пошуку менший середнього елемента масиву, пошук відбувається в першій половині масиву, інакше – в другій.

Покажчики

Форма оголошення змінної типу покажчик:

тип [модифікатор] * ім’я_покажчика ;

де тип - найменування типу змінної, адресу якої буде містити змінна-покажчик (на яку він буде вказувати).

Модифікатор необов'язковий і може мати значення:

  • near - ближній, 16-бітний покажчик (встановлюється за замовчуванням), призначений для адресації 64-кілобайтного сегмента ОП;

  • far - дальній, 32-бітний покажчик, містить адресу сегмента і зсув у ньому: може адресувати ОП обсягом до 1 Мб;

  • huge - величезний, аналогічний покажчику типу far, але зберігається у нормалізованому форматі, що гарантує коректне виконання над ним операцій; застосовується до функцій і до покажчиків для специфікації того, що адреса функції або змінної, що адресується, має тип huge;

ім’я_покажчика - ідентифікатор змінної типу покажчик.

Функції для роботи із символами (ctype.H)

Функція

Опис

Тип повернення

isalnum(int c);

Перевірка, чи є символ літерою або цифрою

int

isalpha(int c);

Перевірка, чи є символ літерою

int

iscntrl(int c);

Перевірка, чи є символ керуючим

int

isdigit(int c);

Перевірка, чи є символ десятковою цифрою

int

isgraph(int c);

Перевірка, чи є символ видимим

int

isprint(int c);

Перевірка, чи є символ видимим, включаючи пробіл

int

islower(int c);

Перевірка, чи є символ літерою нижнього регістру

int

ispunct(int c);

Перевірка, чи є символ знаком пунктуації

int

isspace(int c);

Перевірка, чи є символ пробільним

int

isupper(int c);

Перевірка, чи є символ літерою верхнього регістру

int

isxdigit(int c);

Перевірка, чи є символ шістнадцятковою цифрою

int

tolower(int c);

Перетворення символу в нижній регістр

int

toupper(int c);

Перетворення символу у верхній регістр

int

Функції перетворення (stdlib.H)

Прототип

Опис

double atof(const char* str)

Перетворює стрічку str в тип double

int atoi(const char* str)

Перетворює стрічку str в тип int

long atol(const char* str)

Перетворює стрічку str в тип long int

double strtod(const char* str, char **endStr)

Перетворює стрічку str в тип double і присвоює вказівнику endStr адресу символа, що є першим символом стрічки-залишка після перетворення частини стрічки.

long strtol(const char* str, char **endStr, int base)

Перетворює стрічку str в тип long і присвоює вказівнику endStr адресу символа, що є першим символом стрічки-залишка після перетворення частини стрічки. Перетворення відбувається за основою системи числення base (від 2 до 36).

unsigned long strtoul(const char* str, char **endStr, int base)

Перетворює стрічку str в тип unsigned long і присвоює вказівнику endStr адресу символа, що є першим символом стрічки-залишка після перетворення частини стрічки. Перетворення відбувається за основою системи числення base (від 2 до 36).

char *gcvt(double value, int ndec, char *buf);

Перетворює дробове число в стрічку і зберігає стрічку в buf. При перетворенні робиться спроба одержати зазначену кількість значущих цифр ndec, а якщо це зробити неможливо, то число зображується у формі із плаваючою комою.

char *itoa (int value, char *buf, int base)

Перетворює число типу int в стрічку і зберігає стрічку в buf. Перетворення відбувається за основою системи числення base (від 2 до 36).

char *ltoa (long value, char *buf, int base)

Перетворює число типу long в стрічку і зберігає стрічку в buf. Перетворення відбувається за основою системи числення base (від 2 до 36).

char *ultoa (unsigned long value, char *buf, int base)

Перетворює число типу unsigned long в стрічку і зберігає стрічку в buf. Перетворення відбувається за основою системи числення base (від 2 до 36).

Функції стандартної бібліотеки введення/виведення (stdio.h)

Прототип

Опис

int getchar(void)

Вводить наступний символ зі стандартного пристрою введення і повертає його в форматі цілого.

char *gets(char *s)

Вводить символи зі стандартного пристрою введення в масив s до тих пір, поки не зустріне символ нульової стрічки або індикатор кінця файлу. Після цього до масиву добавляється обмежуючий символ NULL.

int putchar(int c)

Виведення символу, який зберігається в с.

int puts(const char *s)

Виведення стрічки s та перехід на наступний рядок

int sprintf(char *buf, const char *format [, argument1, …])

Виконує форматоване виведення у стрічку buf. Параметр format задає спосіб відображення значень змінних argument1, …. Дія функції sprintf аналогічна дії функції printf, але виведення виконується в рядок-буфер, а не на екран.

int sscanf(const char *s, const char *format [, address1, …])

Еквівалентна scanf за винятком того, що введення здійснюється з масиву s, а не з клавіатури.







Функції роботи зі стрічками (string.h)

Прототип

Опис

char *strcpy(char *s1, const char *s2)

Копіює стрічку s2 в масив s1. Повертає значення s1.

char *strncpy(char *s1, const char *s2, size_t n)

Копіює не більше, ніж n символів стрічки s2 в масив s1. Повертає значення s1.

char *strcat(char *s1, const char *s2)

Об’єднує стрічку s2 зі стрічкою масива s1. Перший символ стрічки s2 переписує символ NULL стрічки s1. Повертає значення s1.

char *strncat(char *s1, const char *s2, size_t n)

Об’єднує не більше, ніж n символів стрічки s2 зі стрічкою масива s1. Перший символ стрічки s2 переписує символ NULL стрічки s1. Повертає значення s1.

int strcmp(const char *s1, const char *s2)

Порівнює стрічку s1 зі стрічкою s2. Функція повертає 0, значення менше 0 або більше 0, якщо s1 відповідно рівна, менше або більше, ніж s2.

int strncmp(const char *s1, const char *s2, size_t n)

Порівнює до n символів стрічки s1 зі стрічкою s2. Функція повертає 0, значення менше 0 або більше 0, якщо s1 відповідно рівна, менше або більше, ніж s2.

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

Знаходить позицію першого входження символа с в стрічку s. Якщо с знайдено, функція повертає вказівник на с в стрічці s. Інакше повертається вказівник зі значенням NULL.

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

Знаходить позицію останньго входження символа с в стрічку s. Якщо с знайдено, функція повертає вказівник на с в стрічці s. Інакше повертається вказівник зі значенням NULL.

size_t strcspn(const char *s1, const char *s2)

Визначає і повертає довжину початкового сегмента стрічки s1, що містить тільки ті символи, які не входять в стрічку s2.

size_t strspn(const char *s1, const char *s2)

Визначає і повертає довжину початкового сегмента стрічки s1, що містить тільки ті символи, які входять в стрічку s2.

size_t strprbk(const char *s1, const char *s2)

Знаходить в стрічці s1 позицію першого входження будь-якого із символів стрічки s2. Якщо символ із стрічки s2 знайдено, функція повертає вказівник на цей символ в стрічці s1. Інакше повертається вказівник зі значенням NULL.

char *strstr(const char *s1, const char *s2)

Знаходить позицію першого входження стрічки s2 в стрічку s1. Якщо підстрічка знайдена, повертається вказівник підстрічки в стрічці s1. Інакше повертається вказівник зі значенням NULL.

char *strtok(const char *s1, const char *s2)

Послідовні виклики функції виконують розбиття стрічки s1 на лексеми (логічні частини, такі як слова текстовій стрічці), розділені символами, які містяться в стрічці s2. При першому виклику функція отримує в якості аргументу стрічку s1, а при наступних викликах, щоб продовжити розбиття тієї ж стрічки, в якості першого аргумента передається NULL. При кожному виклику повертається вказівник на поточну лексему стрічки s1. Якщо при виклику функція знаходить, що лексем в стрічці не залишилось, то повертається NULL.

size_t strlen(const char *s)

Визначає довжину стрічки s. Повертає кількість символів, які передують обмежуючому символу NULL.

Таблиця символів ASCII

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