
- •Содержание
- •Введение
- •История развития компьютера
- •Типы и назначение компьютеров
- •Классы программного обеспечения (ПО) ЭВМ
- •Операционная система персонального компьютера (ПК)
- •Основы информатики
- •Информационные процессы
- •Информационная деятельность человека
- •Технические средства хранения информации
- •Кодирование информации
- •Системы счисления
- •Представление информации в компьютере
- •Представление текстовых данных
- •Представление изображений
- •Представление звуковой информации
- •Представление видео
- •Введение в программирование на языке Си
- •Этапы решения задачи на ЭВМ
- •Графический способ описания алгоритмов
- •Структура программы на языке С++
- •Описание переменных
- •Функции ввода-вывода
- •Условный оператор
- •Составной оператор
- •Операция условия
- •Оператор выбора
- •Циклические программы
- •Оператор цикла с постусловием
- •Оператор цикла с предусловием
- •Оператор цикла со счетчиком
- •Обработка массивов
- •Обработка одномерных массивов
- •Обработка двумерных массивов
- •Массивы и указатели
- •Пользовательские функции
- •Решение нелинейных уравнений
- •Нелинейные уравнения
- •Исследование уравнений и отделение корней
- •Методы поиска корней уравнения
- •Модификация табличного способа
- •Метод Ньютона (метод касательных)
- •Метод секущих
- •Файлы
- •Файлы данных и каталоги. Внутренняя организация и типы файлов
- •Текстовые файлы
- •Строки символов
- •Заключение
- •Список источников

В этой программе впервые используется условный оператор, который служит для выбора формулы вычисления y в зависимости от введенного значения x.
Условный оператор
Условный оператор служит для ветвлений в программе и имеет следующий синтаксис:
if(<условие>) <оператор1>; else <оператор2>;
Здесь if, else - ключевые слова (пер. с англ. если, иначе соответственно); <условие> - это условное выражение типа сравнения (например, a>b,
c<=d, f==1);
<оператор1> и <оператор2> любые операторы C++.
Оператор работает следующим образом: если условие истинно, то выполняется <оператор1> и управление передается на следующий за условным оператор; если условие ложно, то выполняется <оператор2> и управление передается на следующий за условным оператор. Таким образом, всегда выполняется один из двух операторов: либо <оператор1>, либо <оператор2>.
Существует сокращенная форма условного оператора, в которой отсутствует ветвь else:
if (<условие>) <оператор1>;
Оператор работает следующим образом: если условие истинно, то выполняется <оператор1> и управление передается на следующий за условным оператор; если условие ложно, то управление сразу передается на следующий за условным оператор. Таким образом, в зависимости от условия, <оператор1> либо выполняется, либо не выполняется.
Ниже приведены фрагменты схем алгоритмов и соответствующие им фрагменты программ.
if (a>b) max=a; else max=b;
Рис. 17
65

if (k>0) s=s+k;
Рис. 18
if (a > b) if (a > c) max = a; else
max = c;
Рис. 19
if (a > b) if (a > c) max = a;
else max = c; else
if (b > c) max = b; else
max = c;
Рис. 20
В первом фрагменте программы приведена полная форма условного оператора, во втором - сокращенная, в третьем - сокращенная с вложенным условным оператором и в четвертом - полная форма с вложенными в каждой ветви условными операторами. Вложенные условные операторы уменьшают число необходимых проверок, обеспечивают большую эффективность, но ухудшают читаемость программы, поэтому не рекомендуется слишком увлекаться вложением условных операторов.
При определении последовательности выполнения вложенных условных операторов каждое else соответствует тому if, которое ему
66
непосредственно предшествует. Таким образом, исключается всякая двусмысленность.
Подробнее остановимся на понятии условное выражение. В С++ используются следующие операции отношения:
< меньше; <= меньше равно; > больше;
>= больше равно; == равно; != не равно.
В языке С++ нет логического типа, но любое выражение имеет значение, в том числе и условное. «Истина» - это все ненулевые значения, и только 0 - «ложь» [6]. В программе pr8 это иллюстрируется:
//Пример pr8 #include <stdio.h> #include <conio.h> void main()
{
int true, false; true = 10 > 2; false = 10 == 2;
printf ( « true = %d; false = %d\n», true, false ); if (200)
printf ( « 200 - это истина \n» ); if (-200)
printf ("-200 - это истина \n"); if (0);
else
printf("0 - это ложь \n"); getch();
}
В результате работы этой программы будут выведены сообщения: true = 1; false = 0;
200 - это истина - 200 - это истина 0 - это ложь
В последнем условном операторе после условного выражения стоит так называемый пустой оператор, о чем свидетельствует знак точка с запятой при отсутствии какого-либо оператора.
Если нужно проверить несколько условий, то можно воспользоваться булевыми операциями. Эти операции образуют инструментальный фундамент булевой логики, алгебры логики,
67

разработанной в ХIХв. математиком Джорджем Булем. Рассмотрим три основные булевы операции.
Операция && - логическое пересечение (умножение, операция «и"). Если а и b - условные выражения, например a=k>l или b=d==5, то выражение a&&b дает значение истина только в том случае, если a и b имеют значения истина, в остальных случаях - ложь.
Операция || - логическое сложение (объединение, операция «или"). Выражение a||b дает ложь значение в том и только в том случае, если a и b имеют значения ложь, в остальных случаях - результат истина.
Операция !- отрицание (операция «не"). Выражение !a имеет значение, противоположное значению a.
Эти операции полезны, если необходимо проверить сложные условия. Например:
if ( a>b&&a>c ) max=a;
Рис. 21
if ( x==y||x==z ) z=y;
Рис. 22
Самый высокий приоритет имеют операции сравнения, затем идет операция логического отрицания, затем - логическое умножение, а только потом - логическое сложение.
68