
- •Этапы создания исполняемой программы
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Структура программы
- •Вывод данных
- •Ввод данных
- •Вопросы для самоконтроля
- •Тема 1.1(2). Типы данных. Константы и переменные
- •Основные (стандартные) типы данных
- •Область действия переменных
- •1.3.1. Математические операции
- •1.3.2. Простое присваивание
- •1.3.3. Составное (сложное) присваивание
- •1.3.4. Операция приведения (преобразования) типов
- •1.3.5. Операции отношения
- •1.3.7. Операция sizeof
- •1.3.8. Операция "запятая" (,)
- •1.3.9. Условная операция (?:)
- •1.3.10. Указатель. Определение адреса переменной
- •1.3.11. Директива define
- •1.3.12. Директива include
- •1.3.13. Примеры программ
- •1.3.14. Вопросы для самоконтроля
- •Тема 1.3. Программирование алгоритмов различной структуры
- •Базовые конструкции структурного программирования
- •Операторы ветвления
- •1.4.1. Условный оператор if
- •If (условие) оператор_1; else оператор_2;
- •If (условие) оператор_1;
- •1.4.2. Оператор выбора switch
- •Операторы цикла
- •1.4.3. Оператор while
- •1.4.4. Оператор do...While
- •1.4.5. Оператор for
- •1.4.6. Функция exit(), операторы break, continue, return
- •Стандартные математические функции
- •Тема 1.4. Ввод-вывод данных
- •Функции get() и put()
- •Функция getch()
- •Функция printf
- •Функция sprintf()
- •Тема 1.5. Функции. Локальные и глобальные переменные. Способы передачи данных.
- •1.5.1. Видимость переменных
- •1.5.2. Определение функции
- •1.5.3. Функция main
- •1.5.4. Вызов функции
- •1.5.5. Способы передачи данных
- •1.5.6. Возвращаемые значения функции
- •1.5.7. Использование прототипов функций
- •Тема 1.6(1). Массивы и указатели
- •Объявление массива
- •Доступ к элементам массива
- •Многомерные массивы
- •Указатели
- •Тема 1.6(2). Структуры и строки
- •1.6.1. Структуры
- •1 Способ – по шаблону.
- •2 Способ – при объявлении (описании) шаблона.
- •1.6.2. Способы реализации строк
- •1.6.3. Строковые константы
- •1.6.4. Указатель на символьную строку
- •1.6.5. Массив символов
- •1.6.6. Некоторые функции для работы со строками
- •1.6.7. Некоторые функции проверки и преобразования символов
- •Тема 1.7. Работа с памятью
- •Функция malloc
- •Функция free
- •Операция new
- •Операция delete
- •Тема 1.10. Динамические структуры
- •Разновидности динамических структур
- •Примеры программ (фрагментов программ) для работы с динамическими структурами
1.6.7. Некоторые функции проверки и преобразования символов
Функции библиотеки ctype.h
isalpha(c) – возвращает значения Истина, если с – буква, Ложь – в остальных случаях;
с – символ
islower(c) – возвращает значения Истина, если с – строчная буква, Ложь – в остальных случаях; с – символ
isupper(c) –возвращает значения Истина, если с – заглавная буква, Ложь – в остальных случаях; с – символ
isdigit(c) – возвращает значения Истина, если c – цифра от 0 до 9, Ложь – в остальных случаях; с – символ
isalum(c) – возвращает значения Истина, если с – буква или цифра, Ложь – в остальных случаях; с – символ
ispunct(c) – возвращает значения Истина, если с – знак пунктуации, Ложь – в остальных случаях; с – символ
tolower(c) – преобразует символ к строчному; с – символ
toupper(c) – преобразует символ к заглавному; с – символ.
Тема 1.7. Работа с памятью
Цель изучения темы
-
познакомиться с некоторыми функциями и операциями для работы с памятью
Среди языков программирования C++ выгодно отличается удобной работой с памятью. Именно поэтому С++ часто используется для системного программирования.
Разберем некоторые функции и операции для работы с памятью.
Функция malloc
Функция malloc выделяет блок памяти. Размер блока задается в байтах.
Функция malloc возвращает адрес выделенного блока или ноль, если не удалось выделить память. Функция malloc содержится в библиотеках alloc.h и stdlib.h.
Пример.
char *str; // Указатель на строку символов
str = malloc(10); // Выделяем 10 байт, адрес выделенной памяти записываем в str
if ! ( str )
{
cout << "Не хватает памяти";
exit (0);
}
strcpy(str, "Hello"); // Копируем строку "Hello" в блок памяти с адресом str
Функция malloc часто используется вместе с оператором size. С помощью size можно определить, сколько байт выделено под переменную или тип данных.
Функция free
Функция free освобождает память, выделенную функцией malloc.
Пример.
Освободим память, выделенную в предыдущем примере:
free (str);
Операция new
В версиях, начиная с 3-й, Borland C++ содержит операции (операторы) new и delete. Они являются улучшенными вариантами функций malloc и free.
Операция new позволяет выделять память, необходимую для размещения переменной, структурной переменной или массива. Для переменной необходимо указывать тип и в случае массива – размер. Операция new может записывать значение в созданную переменную.
В случае успешного завершения new возвращает адрес созданной переменной.
В отличие от функции malloc, при использовании операции new не нужно указывать количество байт памяти, которое необходимо выделить.
Примеры:
/* Опишем указатели на целую и вещественную переменные и указатель на символ */
int * uk_i;
double * uk_d;
char * uk_c;
/* Выделим память под число типа int адрес памяти присвоим указателю uk_i */
uk_i = new int;
* uk_i=10; // запишем число 10 в ячейку памяти с адресом uk_i;
/* Выделим память под число типа double, запишем в нее число 3.1415 и
присвоим указателю uk_d ее адрес */
uk_d=new double (3.1415);
/* Выделим память под число
uk_с=new char [ 60 ] ;
Можно выполнить проверку:
If !(uk_i && uk_d && uk_c)
{
cout << "Не хватает памяти";
}