- •Предисловие
- •Введение
- •Введение в программирование
- •1.1. Предисловие к курсу
- •1.2. Идеология языка
- •1.3. Обзор среды Microsoft Developer Studio
- •1.4. Жизненный цикл программного обеспечения
- •1.5. Общая структура программы
- •1.6. Директивы препроцессора
- •1.7. Построение исполняемого файла
- •1.8. Строительные блоки программы
- •Контрольные вопросы
- •Типы данных. Переменные. Массивы. Операции и Указатели
- •Стандартные типы и размеры данных
- •2.1.1. Объявление переменных
- •Управляющие символьные константы
- •2.2. Объявление указателя
- •2.2.1. Операции разыменования и взятия адреса
- •2.2.2. Указатели на указатели
- •2.2.3. Арифметические операции с указателями
- •2.3. Массивы
- •2.3.1. Инициализация массивов
- •2.3.2 Динамические массивы
- •2.3.3. Методы доступа к элементам массивов
- •2.3.4. Массивы указателей
- •2.4. Строки
- •2.5. Операции
- •2.5.1. Арифметические операции
- •Арифметические операции
- •2.5.2 Операции сравнения и логические операции
- •Операции сравнения и логические операции
- •2.5.3. Побитовые операции
- •Побитовые операции
- •Контрольные вопросы
- •3.1. Базовые операторы
- •3.1.1. Оператор выражение
- •3.2.2. Оператор switch
- •3.3.4. Оператор goto
- •3.4. Операторы цикла
- •3.4.1. Оператор for
- •3.4.2. Оператор while
- •3.4.3. Оператор do..While
- •Контрольные вопросы
- •Стандартный ввод/вывод. Работа с файлами.
- •4.1. Роль стандартного ввода/вывода
- •4.1.1. Основные функции стандартного ввода/вывода
- •4.2. Понятие файла
- •4.2.1. Строение файлов
- •4.2.2. Порядок работы с файлом
- •4.2.3. Обзор библиотечных функций с для работы с файлами
- •4.3. Программные конструкции при работе с файлами
- •4.3.1. Открытие/закрытие файла
- •4.3.2. Цикл посимвольного чтения содержимого файла
- •4.3.3. Цикл построчного чтения содержимого файла
- •Контрольные вопросы
- •Функция. Пользовательские типы данных.
- •5.1. Понятие функции
- •5.1.1. Определение функции
- •5.1.2. Формальные параметры
- •5.1.3. Тип возвращаемого значения
- •5.1.4. Тело функции
- •5.1.5. Фактические параметры
- •5.1.6. Рекурсивные вызовы
- •5.1.7. Передача параметров
- •5.1.8. Библиотеки стандартных функций
- •5.2. Пользовательские типы данных.
- •5.2.1. Ключевое слово typedef
- •5.2.2. Перечислимый тип данных
- •5.2.3. Понятие структуры
- •5.2.4. Указатели на структурный объект
- •Контрольные вопросы
- •Работа с динамической памятью. Динамические структуры данных
- •6.1. Работа с динамической памятью
- •6.1.1. Статическое и динамическое распределение памяти
- •6.1.2. Основные принципы динамического распределения
- •6.1.3. Способы работы с динамической памятью
- •6.2. Динамические структуры данных
- •6.2.1. Стек
- •6.2.2.Линейный список
- •Контрольные вопросы
- •Объектно-ориентированное программирование
- •7.1. Критерии качества декомпозиции проекта
- •7.2. Новые концепции программирования
- •7.3. Достоинства ооп
- •7.4. Объекты и классы в ооп
- •7.4.1. Определение класса
- •7.4.2. Использование класса
- •7.4.3. Вложенные классы
- •Контрольные вопросы
- •Конструкторы и Перегрузка операций.
- •8.1. Перегрузка операций
- •8.1.1. Перегрузка операций внешними функциями
- •8.1.2. Перегрузка операций методами класса
- •8.2. Конструкторы и деструктор
- •8.2.1. Конструкторы и параметры
- •Контрольные вопросы
- •9.1. Простое открытое наследование
- •9.1.1 Конструкторы и деструкторы при наследовании
- •9.1.2. Поля и методы при наследовании
- •9.1.3. Вложенные классы и наследование
- •9.1.4. Закрытое наследование
- •9.1.5. Виртуальные функции
- •9.1.6. Чистые виртуальные функции и абстрактные классы
- •9.3. Основы программирования под Windows
- •9.3.1. Типы данных в Windows
- •9.4. Cреда Microsoft Developer Studio
- •9.4.1. Библиотека mfc
- •9.4.2. Архитектура приложения
- •9.4.3. Каркас приложения
- •9.4.4. Проект приложения
- •Контрольные вопросы
- •Заключение
- •Список Литературы
Операции сравнения и логические операции
Операции сравнения Операция |
Действие |
> |
Больше |
>= |
Больше или равно |
< |
Меньше |
<= |
Меньше или равно |
!= |
Не равно |
Логические операции Операция |
Действие |
&& |
И |
|| |
Или |
! |
НЕ |
&= |
И и присваивание |
|= |
ИЛИ и присваивание |
^= |
Исключающее ИЛИ и присваивание |
Операции сравнения и логические операции имеют более низкий приоритет, чем арифметические операции. Таким образом, выражение 10 > 1+12 будет вычислено так, будто оно записано следующим образом: 10 > (1+12).
2.5.3. Побитовые операции
В отличие от многих языков программирования язык С/С++ содержит полный набор побитовых операций. Поскольку С был разработан в качестве замены языка ассемблера, он предусматривает многие операции низкого уровня, в частности, побитовые операции, предназначенные для проверки, установки и сдвига битов, из которых состоят байты и машинные слова, образующие переменные типа char или int. Побитовые операции представлены в табл. 8.
Таблица 8
Побитовые операции
Операция |
Действие |
& |
И |
| |
ИЛИ |
^ |
Исключающее ИЛИ |
~ |
Дополнение до единицы (НЕ) |
>> |
Сдвиг вправо |
<< |
Сдвиг влево |
Контрольные вопросы
1. Организация данных в С/С++.
2. Типы данных в С/С++.
3. Объявление переменных. Классификаторы. Спецификаторы.
4. Строки, массивы, инициализация массивов.
5. Методы доступа к элементам массивов.
6. Операции.
7. Объявление указателя.
8. Арифметические операции с указателями.
9. Массивы указателей.
Лекция 3.
базовые Операторы в С/С++.
3.1. Базовые операторы
Оператор – это часть программы, которую можно выполнить отдельно (иными словами, оператор определяет некое действие).
Оператор присваивания можно использовать в любом корректном выражении. В языке С/С++ оператор присваивания не считается особенным. Общий вид оператора присваивания выглядит следующим образом:
Имя_переменной = выражение.
Здесь выражение может состоять как из отдельной константы, так и комбинации сложных операторов. В качестве оператора присваивания в языке С/С++ используется знак равенства.
Операнды – это переменные, константы и другие выражения. Разделителями являются символы [] () , ; : ... * = # .
Отличия оператора присваивания:
- множественное присваивание: а=b=c=d=0;
- комбинированность: int a*=5.
Преобразование типов в выражениях Операнды бинарной операции могут быть разных типов. В этом случае перед ее выполнением компилятор предварительно приводит операнды к одному типу. При неявном преобразовании типов действуют следующие правила.
При выполнении оператора присваивания результат приводится к типу переменной слева от знака “=”. В этом случае может возникнуть приведение длинного типа к более короткому. Явное преобразование типов задается путем указания названия типа в скобках (type).
Выражение может состоять из одной и более операций по преобразованию информации. Компилятор соблюдает строгий порядок разбора выражений, называемый правилами предшествования, который может быть изменен, если части выражения заключить в круглые скобки.
Операторы языка С и С++ разделяются на следующие категории:
- условные операторы (оператор условия if и оператор выбора switch);
- операторы цикла (for, while, do while);
- операторы перехода (break, continue, return, goto);
- другие операторы (оператор "выражение", пустой оператор).
Операторы в программе могут объединяться в составные операторы с помощью фигурных скобок. Любой оператор в программе может быть помечен меткой, состоящей из имени и следующего за ним двоеточия. Все операторы языка C/C++, кроме составных операторов, заканчиваются точкой с запятой ";".