![](/user_photo/2706_HbeT2.jpg)
- •1.2Типы данных
- •1.2.1Объявление переменной
- •1.2.2Категории типов данных
- •1.2.3Целый тип данных
- •1.2.4Данные с плавающей точкой (вещественные типы)
- •1.3Знаки операций
- •1.3.3Простое присваивание
- •1.3.4Составное присваивание
- •1.3.5Приоритеты операций и порядок вычислений
- •1.4Структура и компоненты программы на языке си
- •1.5Организация ввода-вывода в стиле си
- •1.6.1 Манипуляторы и форматирование ввода-вывода
- •1.7Математические функции
- •2Алгоритм. Элементы структурного программирования
- •2.1Понятие алгоритма
- •2.2Основные требования к алгоритмам
- •2.3Элементы структурного программирования
- •3Программирование алгоритмов линейной структуры
- •4Алгоритмы и программы ветвящейся структуры. Условный оператор if. Переключатель switch
- •4.1Алгоритмы и программы ветвящейся структуры
- •4.1.1Условный оператор if
- •If (выражение) оператор1;
- •4.1.2Логические операции
- •4.2Примеры составления алгоритмов и программ с использованием условного оператора If
- •4.3Переключатель switch
- •5Алгоритмы и программы циклической структуры
- •5.1 Понятие цикла. Разновидности циклов
- •5.3Оператор while
- •5.4Оператор do while
- •5.5Оператор continue
- •6Регулярные типы данных. Массивы
- •6.1 Понятие регулярного типа
- •6.2Алгоритмы сортировки массивов
- •6.3 Постановка задачи сортировки и методы её решения
- •6.4Алгоритм прямого упорядочения (Алгоритм сортировки выбором элемента)
- •6.5Алгоритм попарного сравнения соседних элементов («пузырьковая» сортировка)
- •6.6Алгоритм сортировки выбором элемента
- •6.7Методы доступа к элементам массивов, использование указателей
- •6.8Организация многомерных массивов. Указатели на многомерные массивы
- •7.1Описание и определение функции
- •7.2Вызов функции
- •7.3Передача параметров в функцию
- •7.4Описание прототипа функции
- •7.5Функция с переменным количеством параметров
- •7.6Понятие сигнатуры функции
- •7.7Подставляемые (встраиваемые) функции
- •7.8Передача параметров в главную функцию
- •7.9Рекурсивные вызовы функции
- •7.10Примеры составления функций
- •8Указатели
- •8.1Понятие указателя
- •8.2Инициализация указателей
- •8.3Операции с указателями
- •8.4Ссылки
- •9Структуры (struct)
- •10Динамические структуры данных
- •3.1 Односвязные списки
- •Д обавление в начало списка.
- •2 ) Добавление в середину списка.
- •У даление первого элемента списка.
- •3 )Удаление элемента из середины списка.
- •Int Data; //поле данных
- •If (!q) //...И он первый в списке
- •3.2 Стек
- •3.3 Очередь
- •11Динамические массивы
- •12Функции и массивы
- •13Указатели на функции
- •14.1Файловый ввод/вывод с помощью потоков
- •14.2 Дополнительные функции файлового ввода/вывода
- •14.3Режимы файлов
- •14.4 Двоичные файлы
- •14.5Произвольный доступ к файлам
- •Список использованных источников
4Алгоритмы и программы ветвящейся структуры. Условный оператор if. Переключатель switch
4.1Алгоритмы и программы ветвящейся структуры
Очень часто при выполнении программы необходимо выполнять те или иные операторы, в зависимости от анализа каких-либо данных. Алгоритмы, позволяющие производить анализ данных и выполнять нужные, в сложившихся условиях операторы называются ветвящимися или алгоритмами принятия решения.
Для графического изображения ветвления используется блоки, приведённые на рис. 4.1.
В ромбе, как правило, записывается условие, на основе которого производится выбор ветви, в которой будет выполняться оператор. В качестве условия могут использоваться операции сравнения, логические операции, арифметические операции, переменные скалярных типов, указатели. Выражение может иметь арифметический тип. Если оно не равно 0 (для указателя null), то условие считается истинным. Если равно 0 (для указателя null), то условие считается ложным.
При истинности условия выполняется оператор в ветви с надписью «да». «Оператор 2» будет выполнен, если условие примет ложное значение. На рис. 4.1 (б) при ложности условия не будет выполнен ни один оператор, такой блок часто называют «обход».
4.1.1Условный оператор if
Для записи на языке программирования СИ/СИ++ ветвящихся вычислительных процессов используется условный оператор:
If (выражение) оператор1;
else оператор2;
где if, else – служебные слова; <выражение > – логическое, арифметическое выражение или указатель.
Эта форма условного оператора приемлема для алгоритма изображённого на рис. 4.1 (а). При истинности условия, выполняется <оператор_1>, в противном случае – <оператор_2>, следующий за служебным словом else.
Допускается использовать сокращённую форму записи условного оператора:
if (выражение) <оператор>;
Данная форма приемлема для алгоритма изображённого на рис. 4.1 (б). Оператор будет выполнен при истинном выражении, в противном случае управление передаётся на следующий по порядку оператор.
Допускается использование вложенных условных операторов. При этом в качестве операторов записывается очередной условный оператор. Степень вложенности неограниченна.
При необходимости выполнить более одного оператора при истинности или ложности выражения необходимо использовать составной оператор. Составной оператор начинается и заканчивается, как и тело функции, фигурными скобками, между ними записываются операторы, которые необходимо выполнить. Количество операторов, объединяемых составным оператором неограниченно.
{
<Оператор_1>;
<Оператор_2>;
<Оператор_3>;
…
<Оператор_N>;
}
Если в составном операторе присутствует описание переменной, то его называют блоком.
4.1.2Логические операции
Как уже было отмечено выше, в качестве выражения могут использоваться логические операции. Помимо операций отношений в СИ существует три вида логических операций.
Значения логического выражения при использовании бинарной логической операции конъюнкции (&&) приведены в таблице 6.
Таблица 6 – Логическая операция конъюнкция
-
Значение операндов
Результат операции
A
B
A &&B
1
1
1
1
0
0
0
1
0
0
0
0
Значения логического выражения при использовании бинарной логической операции дизъюнкции (||) приведены в таблице 7.
Таблица 7 – Логическая операция дизъюнкция
-
Значение операндов
Результат операции
A
B
A or B
1
1
1
1
0
1
0
1
1
0
0
0
Унарная логическая операция отрицания (!) инвертирующая (изменяющая на противоположное) значение операнда приведена в таблице 8.
Таблица 8 – Логическая операция отрицания
-
Значение операндов
Результат операции
A
! A
1
0
0
1
Например:
(A<=B)&&(B>C)|| (A!=D). При значении переменных A=10, B=15, C=20, D=25 значение всего выражения равно 1. (A<=B) – истинно, (B>C) – ложно, (A<=B)&&(B>C) – ложно, (A!=D) – истинно.
! (A<=B)||(B>C). При значении переменных A=10, B=15, C=20 значение всего выражения равно 0.
(A<=B) || !(B>C). При значении переменных A=10, B=15, C=20 значение всего выражения равно 1.