
- •Л. Б. Бузюков, о. Б. Петрова
- •Учебное пособие
- •Предисловие
- •Глава 1. Введение в язык с
- •1.1. История создания и особенности языка с
- •1.3. Элементы языка с
- •1.3.1. Основные символы
- •1.3.2. Ключевые слова
- •1.3.3. Идентификаторы
- •1.3.4. Константы
- •1.3.5. Лексемы
- •1.3.6. Комментарии
- •Глава 2. Типы данных языка c
- •2.1. Числовые типы данных
- •2.2. Объявление переменных
- •2.3. Данные целого типа
- •2.4. Данные вещественного типа
- •Глава 3. Выражения
- •3.1. Операции
- •3.1.1. Арифметические операции
- •3.1.2. Операция присваивания
- •Глава 4. Составление простейших программ
- •4.1. Препроцессор и его функции
- •4.2. Основные директивы препроцессора
- •4.2.1. Директива include
- •4.2.2. Директива define
- •4.2.3. Директива undef
- •4.3. Структура и правила составления программ
- •4.3.1. Структура функции
- •4.3.2. Функция main()
- •4.3.3. Структура простой программы
- •4.3.4. Правила записи объявлений, операторов и комментариев
- •4.3.5. Пример простейшей программы
- •Глава 5. Средства ввода/вывода
- •5.1. Общие замечания
- •5.2. Функция форматированного вывода printf()
- •5.2.1. Основные форматы
- •5.2.2. Модификации форматов
- •5.3. Функция форматированного ввода scanf()
- •Глава 6. Управляющие операторы
- •6.1. Условные операторы
- •6.1.1. Логические выражения
- •6.1.2. Формы оператора if
- •6.1.3. Оператор выбора switch
- •6.2. Операторы цикла
- •6.2.1. Оператор while
- •6.2.2. Оператор for
- •6.2.3. Оператор do-while
- •6.3. Операторы перехода
- •6.3.1. Оператор break
- •6.3.2. Оператор continue
- •6.3.3. Оператор return
- •6.3.4. Применение оператора goto и меток
- •Глава 7. Функции
- •7.1. Основные понятия
- •7.2. Определение функции
- •7.3. Прототип функции
- •7.4. Вызов функции
- •Глава 8. Классы памяти
- •8.1. Логическаяструктура памяти программы
- •8.2. Особенности классов памяти
- •8.3. Объявления переменных
- •8.4. Объявления функций
- •8.5. Время жизни и область видимости программных объектов
- •8.6. Инициализация глобальных и локальных переменных
- •Глава 9. Указатели
- •9.1. Операция получения адреса
- •9.2. Операции над указателями
- •Глава 10. Массивы
- •10.1. Общие сведения о массивах
- •10.2. Одномерные массивы
- •10.3. Двумерные массивы
- •10.4. Массивы и указатели
- •10.5. Массивы и функции
- •Глава 11. Строки
- •11.1. Представление символьной строки при помощи одномерного массива
- •11.2. Указатель на символьную строку
- •11.3. Ввод/вывод символьных строк
- •11.4. Массивы символьных строк
- •11.5. Функции работы состроками
- •Глава 12. Структуры
- •12.1. Определение структуры
- •12.2. Структуры и функции
- •12.3. Указатели на структуру
- •12.4. Массивы структур
- •12.5. Вложенные структуры
- •12.6. Использование синонима типа
- •12.7. Объединения
- •Глава 13. Файлы
- •13.1. Работа с файлами
- •13.2. Функции ввода/вывода
- •Глава 14. Динамическая память
- •14.1. Распределение памяти
- •14.2. Функции управление памятью
- •Глава 15. Проект
- •15.1. Основы создания проекта
- •15.2. Пример создания проекта
- •Глава 17. Основы объектно-ориентированного программирования
- •17.1. Объектно-ориентированный подход
- •17.3. Конструкторы и деструкторы
- •17.4. Инкапсуляция
- •17.5. Полиморфизм
- •17.6. Наследование
- •17.7. Виды взаимодействия классов
- •17.8. Способы графического представления объектно-ориентированной задачи
- •18.2. Библиотека Win32 api
- •18.3. Библиотека owl
- •18.4. Библиотека vcl
- •18.5. Библиотека clx
- •18.6. Библиотека mfc
- •18.7. Библиотека OpenGl
- •19.3. Создание проекта
- •19.4. Редактирование проекта
- •19.5. Компиляция и выполнение программы
- •19.6. Файловая структура проекта
- •19.7. Создание консольного приложения
- •Глава 20. Разработка приложений для операционных систем windows
- •20.1. Взаимодействие программы и Windows
- •20.2. Компоненты библиотеки Win32 api
- •20.3.Функция WinMain()
- •20.4. Оконная процедура
- •20.5. Структура программы для ос Windows
- •20.6. Ресурсы Windows
- •20.7. Взаимодействие прикладной программы и устройств в Windows
- •Глава 21. Создание приложений для ос windows на основе библиотеки mfc
- •21.1. Обзор классов библиотеки mfc
- •21.2. Класс cString
- •21.3. Класс cFile
- •21.4. Класс cPoint
- •21.5. Класс cRect
- •21.7. Приложение, основанное на диалоге
- •21.8. Использование в приложении элементов управления
- •21.9. Мастер классов mfc ClassWizard
- •21.10. Установка начального значения элементам управления
- •21.11. Элементы управления Picture
- •21.12. Элемент управления Group Box
- •21.13. Элемент управления Radio Button
- •21.14. Элемент управления Check Box
- •21.15. Элемент управления List Box
- •21.16. Создание меню
- •21.17. Приложение с двумя диалоговыми панелями
- •21.18. Приложение sdi
- •21.19. Создание панели инструментов
- •21.20. Приложение mdi
- •21.21. Контекстыустройств в mfc
- •21.22. Графические объекты Windows в mfc
- •21.23. Графические операции в mfc
- •П.1. Основы методологии конструирования программ
- •П.1.1. Основные понятия. Программа и алгоритм
- •П.1.2. Этапы разработки программ
- •П.2. Алгоритмы
- •П.2.1. Алгоритм и его свойства
- •П.2.2. Способы описания алгоритмов
- •П.2.3. Средства графического изображения алгоритмов Схемы алгоритмов
- •Псевдокоды
- •Структурограммы
- •П.3. Основные приемы программирования
- •П.3.1. Разновидности структур программирования
- •П.3.2. Программирование линейных и разветвляющихся процессов
- •П.3.3. Программирование циклических процессов
- •Арифметический цикл (цикл с параметром)
- •Итерационный цикл
- •Вложенный цикл
- •Литература
Глава 6. Управляющие операторы
6.1. Условные операторы 6.1.1. Логические выражения 6.1.2. Формы оператора if 6.1.3. Оператор выбора switch 6.2. Операторы цикла 6.2.1. Оператор while 6.2.2. Оператор for 6.2.3. Оператор do-while 6.3. Операторы перехода 6.3.1. Оператор break 6.3.2. Оператор continue 6.3.3. Оператор return 6.3.4. Применение оператора goto и меток
Оператором называетсяконструкция языка программирования, обозначающая какие-либо действия в программе. Среди большого количества операторов можно выделить операторы, управляющие ходом вычислений. Такие операторы называют управляющими операторами (инструкциями). Другая группа операторов выполняет действия над данными, например, +, %, ++ и т. д. Такие операторы в языке C традиционно называют операциями, а в C++ операторами. Поскольку в первых главах книги рассматривается язык C, то и терминология будет соответствовать этому языку. Итак, некоторые операторы, преобразующие данные, называемые (в языке C) операциями, рассмотрены в гл. 3.
Операторы, управляющие последовательностью выполнения действий в программах на языке C, называются просто операторами.
В языке C можно выделить следующие группы операторов:
условные;
цикла;
безусловного перехода;
операторы-выражения;
блоки (составные операторы).
К условным относятся операторы if и switch, к операторам цикла – for, while и do-while, к операторам безусловного перехода - break, continue, goto и return.
Операторы-выражения – это операторы, состоящие из операндов (переменных, констант, функций), знаков операций и круглых скобок, обозначающих порядок действий над операндами.
Блок или составной оператор представляет собой фрагмент текста программы, заключенный в фигурные скобки {}.
6.1. Условные операторы
6.1.1. Логические выражения
При выполнении многих операторов вначале анализируются данные (вычисляется некоторое логическое выражение), и в зависимости от полученного результата выбирается та или иная ветвь вычислительного процесса.
Логическое выражение (ЛВ) – это выражение, принимающее одно из двух значений: истина или ложь.
В отличие от других языков программирования в C (C89) нет специального типа для логических переменных и констант. Однако результат у ЛВ есть всегда. В языке C, если значение ЛВ равно нулю, то оно ложно, любое ненулевое ЛВ истинно.
Простейшие ЛВ – любые выражения (в частности, переменная, арифметическое выражение).
Отношения (следующий уровень ЛВ) позволяют сравнивать данные (табл. 6.1).
Отношение имеет структуру: V1 OP V2;
где V1, V2 – выражения, OP – знак операции отношения.
Операции <, <=, >, >= являются операциями одного уровня и выполняются в порядке их написания слева/направо; операции == и != имеют более низкий приоритет.
Следующий уровень ЛВ – логические выражения с использованием логических операций И(&&), ИЛИ(||), НЕ (!). В круглых скобках представлены обозначения этих операций в C.
Таблица 6.1.
Алгебраическая запись |
Запись в C |
< |
< |
≤ |
<= |
> |
> |
≥ |
>= |
= |
== |
≠ |
!= |
Правила записи и результат обычные. Иерархия операций, если порядок их выполнения в ЛВ не полностью определен круглыми скобками, представлена в табл. 6.2.
Таблица 6.2.
Уровень иерархии |
Операция |
1 |
( ) |
2 |
!(НЕ)++ –– |
3 |
*(умножение)/% |
4 |
+– |
5 |
< <= > >= |
6 |
== != |
7 |
&&(И) |
8 |
||(ИЛИ) |
9 |
= *= /= %= += –= |