- •1. Основы алгоритмизации и программирования
- •1.1. Этапы подготовки и решения задач на эвм
- •1.2. Алгоритмы и способы их описания Понятие алгоритма
- •Способы описания алгоритмов
- •Структурные схемы алгоритмов
- •1.3. Компиляция и интерпретация программ
- •1.4. Стили программирования
- •Процедурное программирование
- •Функциональное программирование
- •Логическое программирование
- •Объектно-ориентированное программирование
- •2.1. Пример готовой программы.
- •2.2. Структура основной программы
- •2.3. Алфавит языка
- •2.4. Константы и переменные Константы
- •Переменные
- •Примеры записи имен переменных
- •2.5. Арифметические выражения
- •Примеры вычисления арифметических выражений
- •Стандартные функции
- •Примеры программирования арифметических выражений
- •Контрольные задания
- •1. Составить описания для заданных переменных
- •2.6. Линейные вычислительные процессы
- •Оператор присваивания
- •Странные операторы присваивания
- •Операторы ввода-вывода
- •Операторы ввода исходных данных с клавиатуры
- •Потоковый ввод данных числового типа
- •Форматный ввод
- •Операторы вывода данных на экран Потоковый вывод
- •Форматный вывод
- •Контрольные задания
- •2.7. Разветвляющиеся вычислительные процессы
- •Логические выражения
- •Порядок выполнения операций в логических выражениях
- •Условные операторы
- •Короткий условный оператор
- •Полный условный оператор
- •If (логическое выражение) p1; else p2;
- •Вложенные структуры условных операторов
- •Оператор выбора
- •Контрольные задания
- •2.8. Циклические вычислительные процессы
- •Операторы цикла с условием
- •Оператор цикла do...While
- •Оператор цикла с параметром
- •2.9. Базовые алгоритмы
- •Задача 1. Алгоритм организации счетчика
- •Задача 2. Алгоритм накопления суммы
- •Задача 3. Алгоритм накопления произведения
- •Задача 4. Алгоритм поиска минимального члена последовательности
- •Задача 5. Табулирование функции (или кратные циклы)
- •Задача 6. Вычисление сумм последовательностей
- •2.10. Указатели и массивы Указатели
- •Понятие массива
- •Общий вид описания массива
- •Одномерные массивы
- •Описание одномерного массива
- •Индексированные переменные
- •Ввод-вывод одномерных массивов
- •Обработка одномерных массивов
- •Задача 1. Организация счетчика
- •Задача 2. Накопление суммы и произведения
- •Задача 3. Поиск минимального и максимального элементов массива
- •Двухмерные массивы
- •Описание двухмерного массива
- •Ввод-вывод двухмерного массива
- •Обработка матриц
- •2.11. Подпрограммы Структура сложной программы
- •Функции
- •Общий вид описания функции
- •Обращение к функции
- •Пример программы с функцией
- •Механизм замены параметров
- •Параметры-массивы в функциях
- •Рекурсия
- •Примеры программирования задач с использованием подпрограмм
- •Задача 1
- •2.12. Текстовые данные
- •Символьный тип данных
- •Ввод-вывод символьных данных
- •Обработка символьных данных
- •Ввод-вывод строковых данных
- •Обработка строковых данных
- •Стандартные функции обработки строк
- •Сравнение строк:
- •Сцепление строк
- •Определение длины строки
- •Копирование строк
- •Поиск символа в стоке
- •Пример программы для задачи с текстовыми данными
- •Контрольные задания
- •2.13. Динамическое выделение памяти
- •Структуры данных Понятие структуры
- •Обработка структур
- •Пример задачи с использованием структурированных данных
- •2.15. Файлы данных Понятие файла
- •Работа с файлами
- •Открытие файла
- •Обработка открытого файла
- •Закрытие файла
- •Функции ввода/вывода
- •Работа с текстовыми файлами
- •Обработка бинарных файлов
- •Контрольные задания
- •Заключение
- •Оглавление
2.7. Разветвляющиеся вычислительные процессы
Вычислительный процесс называется разветвляющимся, если он реализуется по одному из нескольких направлений - ветвей. В программе должны быть учтены все возможные ветви вычислений. Выбор той или иной ветви осуществляется по условию, включенному в состав условного оператора. Для программной реализации условия используется логическое выражение. В сложных структурах с большим числом ветвей применяют оператор выбора.
Логические выражения
Логические выражения строятся из операндов, отношений, логических операций и круглых скобок.
Результатом вычисления логического выражения является одно из двух значений: (истина)(не ноль ) или (ложь)(ноль).
В качестве операндов используются константы, переменные и функции.
Отношения
Отношение - это простейший вид логического выражения, состоящего из двух выражений арифметического, символьного или строкового типов, соединенных знаком операции отношения.
Операция отношения - это операция сравнения двух операндов:
< - меньше
<= - меньше либо равно
> - больше
>= - больше либо равно
= = - равно
!= - не равно.
Примеры записи отношений на языке С++
Отношение |
Результат |
5>3 |
(не ноль) |
cos(x)>1 |
(ноль) |
х*х+у*у<1 |
(не ноль) для всех точек, лежащих внутри круга с единичным радиусом и центром в начале координат |
A!=’Y’ |
(не ноль), если значение символьной переменной А не равно символу ’Y’ |
Следует помнить, что к операндам вещественного типа не применима операция = = из-за неточного представления чисел в памяти компьютера. Поэтому для вещественных переменных а и b отношение вида а= =b надо заменить отношением fabs(a-b)<E, где Е - малая величина, определяющая допустимую погрешность.
Логические операции
Математическая запись |
Запись на языке С++ аскаль |
Название операции |
¬ |
! |
Отрицание |
|
&& |
Операция «И» (логическое ))умножение) |
|
|| |
Операция «ИЛИ» (логическое сложение) |
Действия логических операций удобно задать таблицами истинности, в которых приняты следующие обозначения: a, b - логические операнды; Т - TRUE, F - FALSE.
а |
b |
a || b |
Т |
Т |
Т |
Т |
F |
Т |
F |
Т |
Т |
F |
F |
F |
а |
b |
a && b |
Т |
Т |
Т |
Т |
F |
F |
F |
Т |
F |
F |
F |
F |
а |
! a |
Т F |
F Т |
Порядок выполнения операций в логических выражениях
В бесскобочных логических выражениях операции выполняются слева направо в соответствии с их приоритетом:
!
&&
||
Отношения.
Поскольку отношения имеют самый низкий приоритет, то их необходимо заключать в круглые скобки.
Пример. Вычислить логическое выражение:
(-3≥5)¬(7<9)(0≤3)
Запись на языке С++ имеет вид:
(-3>= 5) || ! (7 <9) && (0 <= 3)
1 6 4 2 5 3
Внизу под операциями указан порядок их выполнения.
Результаты:
1) -3>= 5=>F; 2) 7 <9 => Т; 3) 0 <= 3 => Т;
4) !(T) -> F; 5) F && T=>F; 6) F || F => F.
Ответ: FALSE (ноль).
Примеры записи логических выражений
Записать на языке С++ логические выражения, реализующие следующие условия:
a) переменная х принадлежит интервалу [а, b].
Ответ: (х>= a) && (x <= b)
б) переменная х не принадлежит интервалу [а, b].
Ответ: Данное условие можно записать в одном из двух вариантов:
1) (х <а) || (x> b);
2) или воспользоваться операцией отрицания:
! ((x>= a) && (х <= b))