- •Язык программирования Си
 - •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.
 - •Открытие потока.
 - •Закрытие потока.
 - •Предопределенные указатели потоков.
 - •Функции ввода-вывода.
 
Операции и выражения
Под операцией понимают некоторое действие, которое может быть выполнено над одним или несколькими операндами для получения результата. Операции и операнды могут объединяться в выражение. Каждое выражение вычисляется с учетом особенностей составляющих его операций и их приоритетов. В результате вычисляется значение выражения.
Существует большое количество операций различных видов: арифметические, логические, битовые и т.д. Наиболее просты для понимания арифметические операции. Каждая операция характеризуется выполняемыми действиями и результатом операции.
Простейшие арифметические операции
Определены для данных арифметических типов, т.е. вещественных (float, double) и целых (int, short, long, char и соответствующих им беззнаковых данных unsigned int, unsigned short, unsigned long, unsigned char).
Действие этих операций - соответствующее арифметическое действие. Результат операции - результат арифметического действия.
Одноместные арифметические операции имеют один операнд. К ним относятся операции "+" и "-", которые меняют знак операнда.
Результатом этих операций является значение операнда с противоположным знаком.
Двуместные арифметические операции имеют два операнда. К ним относятся операции + , - , * , / и % . Каждая из этих операций выполняет соответствующее действие, результат которого и является результатом операции. Операция + вычисляет сумму операндов, операция - вычисляет разность, операция * вычисляет произведение, операция / вычисляет частное от деления вещественных операндов или целую часть частного от деления целых операндов, операция % вычисляет остаток от деления первого операнда на второй.
Арифметические операции в выражениях выполняются слева направо в соответствии с общепринятыми приоритетами. Приоритет можно изменить с помощью скобок.
Примерывыражений с арифметическими операциями:
a + b%c
(a + b)/3*5
Операция присваивания
Операция присваивания выполняет действия по занесению результатов выражения, стоящего справа от знака присваивания = в область памяти, определяемую выражением, стоящим слева от знака присваивания. Чаще всего слева от знака присваивания стоит простая переменная. При выполнении присваивания происходит преобразование типа результата правого выражения к типу левого операнда.
Результат операции присваивания - значение присвоенной величины.
Поскольку присваивание является операцией, а не оператором, то в одном выражении допускается несколько присваиваний. В этом случае они выполняются справа налево
Например:
ab = ( c = d+5 ) * 6
Присваивание имеет самый низкий приоритет из всех операций.
Оператор-выражение
Выражение, оканчивающееся точкой с запятой, является оператором, т.е. наименьшей элементарной частью программы.
БНФ:
оператор = выражение ";"
Пример:
ab = ( c = d + 5 ) * 6; /* это оператор */
В дальнейшем будем строго придерживаться этой терминологии, т.е. выражением будем называть совокупность операндов, связанных операциями, а оператором - выражение заканчивающейся точкой с запятой.
