- •Лекция 1. Введение.
- •Лекция 2-3. Основные понятия. Типы данных.
- •Основные типы данных
- •Лекция 4 Выражения. Классификация операторов
- •Операторы объявлений типов и переменных
- •Операторы вызова функций
- •Математические и логические операции. Условная операция. Математические операции для целочисленных и вещественных вычислений.
- •Математические операции только для целочисленных вычислений
- •Логические операции.
- •Условная операция.
- •Операторы управления.
- •Оператор ветвления.
- •Оператор выбора.
- •Лекция 5. Циклы
- •Цикл while
- •Цикл for
- •Операция "запятая"
- •Цикл с условием на выходе: do while
- •Какой цикл лучше?
- •Другие управляющие операторы: break, continue, goto.
- •Лекция 6. Структуры данных. Массивы. Объединения. Строковые литералы.
- •1. Объявление массива
- •2. Инициализация массивов
- •3. 1 Работа с массивами
- •3.2. Обработка массивов
- •3.3. Ввод/вывод массивов
- •Объединения в c
- •Лекция 7. Функции. Рекурсия. 1 часть.
- •Лекция 8. Функции. Рекурсия. 2 часть.
- •Лекция 9. Указатели.
- •Функции управление памятью
- •Лекция 10. Динамические структуры данных.
- •Лекция 11. Файлы
- •Лекция 13. Объектно-ориентированные модели. Составные части объектного подхода.
- •Лекция 14. Классы. Конструкторы и деструкторы.
- •Лекция 15. Простое наследование классов
- •Лекция 16. Перегрузка функций
- •Лекция 17. Перегрузка операторов
- •Лекция 18. Друзья
- •Лекция 19. Шаблоны. Стандартная библиотека шаблонов
- •Лекция 20. Исключительные ситуации
- •Лекция 3.2. Проектирование структуры приложения. Система меню
- •Лекция 3.3.1. Стандартные и дополнительные компоненты
- •Лекция 3.3.2. Компоненты страницы Win32. Системные компоненты.
- •Лекция 3.4. Проектирование структуры данных
- •Лекция 3.6. Компоненты ActiveX. Графические компоненты
- •3.6.1.Компоненты ActiveX.
- •3.6.2. Графические компоненты
- •Лекция 4.1. Основные понятия языка. Переменные, операции, выражения. Операторы
- •Класс Array
- •Массивы как коллекции
- •Сортировка и поиск. Статические методы класса Array
- •Лекция 4.3. Делегаты, события и потоки выполнения. Работа с файлами библиотеки, атрибуты, директивы
- •Описание делегатов
- •Использование делегатов
- •Паттерн "наблюдатель"
- •Операции
- •Передача делегатов в методы
- •События
- •Многопоточные приложения
- •Класс Thread
- •Асинхронные делегаты
- •Лекция 5.1. Методы конструирования сложных программных систем
- •Inline-ассемблер в Delphi
- •Лекция 5.2. Разработка динамических библиотек
- •Для начала - что это такое ?
- •Далее разберемся: какая может быть польза от dll
Логические операции.
В языке «С» нет логического типа данных. Для этих целей здесь используется целочисленный тип, ложь представляется значением равным нулю, а истина – любым не нулевым значением. Существует ряд способов создания данного типа.
Первый способ - объявление через директиву препроцессора #define:
#define BOOL int
#define FALSE 0
#define TRUE 1
Преимуществом этого способа перед следующим является то, что компилятор не будет выдавать «warning» на действия с такими переменными. С другой стороны он допускает присвоение этой переменной значения отличного от нуля и единицы.
Второй способ – создание нового типа как перечисление:
typedef enum {false=0, true=1} bool;
В данном случае переменная сможет принимать только два значения: false и true, интерпретируемые как 0 и 1 соответственно.
Недостатком того и другого метода является то, что возникает ошибка если оператор или функция в качестве значения ИСТИНА возвращает значение отличное от 1. Также недостатком является то, что значение переменной такого типа невозможно напрямую вывести на экран – приходится пользоваться следующим способом:
if(flag) printf(“TRUE”); else printf(“FALSE”);
В таких средах разработки как Borland C++ Builder и Microsoft Visual C++ создан тип bool, который является логическим (в обход общего стандарта).
Для работы с логическими переменными в языке «С» предусмотрены два вида операций:
операции отношения (сравнения);
логические операции.
В таблице сведены операции отношений доступные в языке «С», их синтаксис аналогичен синтаксису математических операций.
Обозначение |
Значение |
== |
Равно |
!= |
Неравно |
> |
Больше |
< |
Меньше |
>= |
Больше или равно |
<= |
Меньше или равно |
Операции отношения (сравнения) возвращают 0 – если условие не выполняется, в противном случае возвращают 1.
Для построения сложных логических выражений в языке «С» предусмотрены логические операции: И - &&, ИЛИ - ||, НЕ - !.
При построении логических выражений необходимо учитывать, что логические операции имеют приоритет более высокий, чем операции отношения. Для построения правильных выражений нужно использовать скобки.
Условная операция.
В языке «С» присутствует условная операция, имеющая следующий синтаксис: переменная = условие ? выражение1 : выражение2;
Данная операция работает следующим образом: если условие истинно, то значению переменной присваивается результат выражения 1, если ложно – выражения 2.
Примеры: Вычислить модуль числа.
#include <stdio.h>
void main()
{
double a;
printf(“Введите число: ”); scanf(“%lf”,&a);
a = a>0 ? a : -a;
printf(“Модуль числа: %lf”, a);
}
Операторы управления.
Как и любой другой язык программирования высокого уровня, язык «С» содержит операторы управления для осуществления ветвлений, циклов и прерываний выполнения алгоритма программы. Традиционно все операторы управления можно разделить на четыре основные группы:
Операторы ветвления,
Операторы выбора,
Операторы циклов,
Операторы переходов.
Рассмотрим каждую из этих групп применительно к языку «С».