- •Язык программирования Си
- •7. Понятие о препроцессоре языка Си 29
- •8. Операторы языка Си и приемы программирования 30
- •9. Массивы. Адресная арифметика языка Си 51
- •Правила записи программы на языке Си
- •Правила формального описания синтаксиса языка программирования
- •Идентификаторы языка Си
- •Понятие о типах данных.
- •Системы счисления. Представление данных в эвм.
- •Основные типы данных языка Си
- •Правила записи констант различных типов
- •Беззнаковый тип для целых данных
- •Символьные строки
- •Понятие функции
- •Стандартная функция printf
- •Стандартная функция scanf
- •Операции и выражения
- •Простейшие арифметические операции
- •Операция присваивания
- •Оператор-выражение
- •Использование в выражениях операндов разных типов
- •Операции преобразования типов
- •Стандартные математические функции
- •Простейшие функции, определяемые программистом
- •Дополнительные арифметические операции
- •Дополнительные операции присваивания
- •Битовые операции
- •Операции отношения
- •Логические операции
- •Операция определения размера данных
- •Приоритеты операций
- •Понятие о препроцессоре языка Си
- •Операторы языка Си и приемы программирования
- •Оператор цикла while
- •Условный оператор и условная операция
- •1) Короткие операторы:
- •2) Группы коротких операторов:
- •3) Длинные группы операторов:
- •Запись алгоритмов с помощью диаграмм Несси - Шнейдермана (структограмм )
- •Некоторые приемы программирования
- •Оператор прерывания цикла
- •Оператор продолжения цикла
- •Пример организации простейшего меню
- •Множественный выбор. Оператор переключения
- •Оператор цикла do-while.
- •Перечисления. Работа с клавиатурой ibm pc
- •Пример организации светового меню
- •Массивы. Адресная арифметика языка Си
- •Описание массива
- •Ввод-вывод массива
- •Инициализация массива
- •Программа вычисления длины строки символов
- •Двумерные массивы (массивы массивов)
- •Адресная арифметика языка Си
- •Указатели и одномерные массивы
- •Указатели и двумерные массивы
- •Указатели и функции
- •Оператор typedef
- •Дополнительные описания указателей для ibm pc
- •Непосредственная работа с экранной памятью
- •Дополнительные сведения о функциях
- •Области видимости и глобальные данные
- •Время жизни переменных и классы памяти языка Си
- •Передача аргументов в функцию
- •Возврат значений из функций
- •Работа с динамической памятью
- •Стандартные функции управления динамической памятью
- •Пример использования динамической памяти
- •Особенности работы с двумерными массивами
- •Пересчет индексов вручную
- •Массивы с постоянной длиной строки
- •Общий случай двумерного массива
- •Особенности работы с массивами большого размера
- •Модульное программирование в системе Turbo c
- •Обеспечение корректной стыковки модулей
- •Создание библиотек функций
- •Некоторые библиотечные функции языка Си
- •Функции консольного ввода/вывода (уникальны для tc)
- •Функции обработки строк.
- •Функции распознавания вида символа
- •Функции преобразования данных
- •Структуры языка c.
- •Описание структуры
- •1 Способ
- •2 Способ
- •Трактовка имени структуры.
- •Доступ к элементу структуры.
- •Инициализация структур.
- •Структуры и функции.
- •Поля бит в структурах.
- •Объединения.
- •Дополнительные сведения о препроцессоре языка c.
- •Условное выражение.
- •Приоритеты и направления операций.
- •Динамические данные.
- •Линейные списки.
- •Организация данных в виде стека.
- •Организация данных в виде очереди.
- •Организация данных в виде деревьев.
- •Библиотека ввода-вывода языка c.
- •Открытие потока.
- •Закрытие потока.
- •Предопределенные указатели потоков.
- •Функции ввода-вывода.
Функции распознавания вида символа
Строго говоря, это не функции, а макроопределения, описанные в заголовочном файле <ctype.h>:
isalnum(c) истина если c буква или цифра;
isalpha(c) истина если c буква;
isdigit(c) истина если c цифра;
iscntrl(c) истина если c символ удаления или обычный уп-
равляющий символ;
isprint(c) истина если c печатный символ;
islower(c) истина если c буква нижнего регистра;
isupper(c) истина если c буква верхнего регистра;
ispunct(c) истина если c знак пунктуации;
isspace(c) истина если c пробел, знак табуляции, возврат
каретки, символ перевода строки, вертикальной
табуляции, перевода страницы;
isxdigit(c) истина если c шестнадцатеричная цифра;
_toupper(c) преобразует c из диапазона [a-z] к символам
[A-Z];
_tolower(c) преобразует c из диапазона [A-Z] к символам
[a-z];
_toascii(c) преобразует c больший, чем 127 к диапазону
0-127 путем очистки всех битов, кроме 7 млад-
ших.
Функции преобразования данных
Прототипы функций преобразования данных находятся в файле <stdlib.h>.
Преобразование строки символов в целое число:
int atoi(const char *s);
long atol(const char *s);
Возвращает преобразованное значение входной строки. Если строка не может быть преобразована возвращает ноль.
Преобразование строки символов в вещественное число:
double atof(const char *s);
Возвращает преобразованное значение входной строки. Если строка не может быть преобразована возвращает ноль.
Преобразование строки символов в длинное целое число с указанием системы счисления:
long strtol(const char *s, char **endptr, int radix);
unsigned long strtoul(const char *s, char **endptr,
int radix);
Возвращает преобразованное значение входной строки. Если строка не может быть преобразована возвращает ноль. Указатель *endptr устанавливается на первый символ строки не отвечающий синтаксису целого числа языка СИ.
Преобразование строки символов в вещественное число:
double strtod(const char *s, char **endptr);
Возвращает преобразованное значение входной строки. Если строка не может быть преобразована возвращает ноль. Указатель *endptr устанавливается на первый символ строки не отвечающий синтаксису вещественного числа языка СИ.
Преобразование целого числа в строку символов с указанием системы счисления:
char *ltoa(long value, char *string, int radix);
char *itoa(int value, char *string, int radix);
char *ultoa(unsigned long value, char *string,
int radix);
Возвращает указатель на выходную строку.
Преобразование вещественного числа в строку символов:
char *ectv(double value, int ndig, int *dec, int *sign);
char *fctv(double value, int ndig, int *dec, int *sign);
Функции возвращают указатель на статический буфер памяти с выходной строкой, содержащей только цифры числа. Буфер обновляется при каждом вызове функции. Для функции ectv() ndig является числом цифр в выходной строке, для fctv() - числом цифр в выходной строке после десятичной точки. Параметр dec показывает положение десятичной точки в выходной строке, которая явно не присутствует. Параметр sign принимает отличное от нуля значение для отрицательных чисел.
Преобразование вещественного числа в строку:
char *gctv(double value, int ndec, char *buf);
Функции возвращают указатель на буфер buf памяти с выходной строкой, содержащей готовое к печати символьное представление числа из ndec цифр в формате F Фортрана, если возможно. В противном случае число будет представлено в формате e функции printf().