- •1. Краткие теоретические сведения
- •1.1. Операции сравнения и логические операции
- •1.1.1. Операции сравнения
- •1.1.2. Логические операции
- •1.1.3. Логические выражения
- •1.2. Приоритет операций
- •1.3. Разветвляющийся вычислительный процесс
- •1.5. Оператор перехода
- •1.6. Пустой оператор
- •1.7.1. Короткая форма условного оператора
- •1.7.2. Полная форма условного оператора
- •1.9. Понятие составного оператора (группы операторов)
- •1.10.1. Проверка двух или более условий
- •1.10.5. Обработка нескольких условий
- •1.10.6. Вложенный условный оператор
- •1.11. Рекомендации по заданию исходных значений переменным
- •1.11.1. Операторы присваивания
- •1.11.2. Операторы ввода
- •1.11.3. Инициализация переменных
- •1.11.4. Именованные константы
- •1.12. Оператор множественного выбора switch
- •1.13. Использование отступов для улучшения удобочитаемости вашей программы
- •2. Задание
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1
- •2.4.1.1. Условие задания
- •2.4.2. Задание 2
- •2.4.3. Задание 3
- •2.4.4. Задание 4
- •2.5. Задания для выполнения дома
- •2.5.1. Задание 1
- •2.5.2. Задание 2
- •3.6. Пример программы
- •3.7. Типичные ошибки при выполнении работы
- •2.5.3. Задание 3
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Операции сравнения и логические операции 2
- •1.1.1. Операции сравнения 2
1.6. Пустой оператор
Пустым оператором называется оператор, который не вызывает никаких действий и никакими символами не обозначается. Как и любой другой оператор, пустой оператор может быть помечен. Следовательно, пустой оператор имеет вид:
М: ;
где М –список меток, который может отсутствовать.
Пустой оператор используется для того, чтобы поместить метку в определенное место программы или зарезервировать место в программе для предполагаемых впоследствии операторов. Обычно (чаще всего) помеченный пустой оператор ставится в конце программы, чтобы в зависимости от выполнения некоторых условий можно было прервать вычисления и выйти на конец программы, блока или составного оператора, пропуская какие-то другие операторы.
Пример 6.3.
Составить программу для вычисления по заданные сторонам А, В, С площади треугольника S, радиусов описанной R и вписанной r окружностей. Предусмотреть проверку существования треугольника.
Решение. Алгоритм решения задачи: если треугольник существует, то есть если р > а, р > в, р > с, то
Здесь р = (а + в + с)/2 – полупериметр. Блок-схема алгоритма последовательности вычислений примера 6.3 приведена на рис. 6.2.
Рис 6.2. Блок-схема, алгоритма примера 6.3
В качестве идентификаторов сохраним обозначения, принятые при записи алгоритма за исключением R (обозначим R через RO) и r (обозначим r через RB).
Программа решения задачи примера 6.3 может иметь вид
*/Пример 6.3*/
#include <iostream.h>
#include<conio.h>
#include<math.h>
int main()
{
unsigned znak = 11111;
float a, b, c, s, p, RO, RB;
cout "Введите через пробел значения для a, b, c и нажмите Enter \n";
cin a >> b >> c >>$
р = (а + в + с)/2;
if (p <= a || p< = b || p< = c) goto PRIZNAK;
s = sqrt(p*(p-a)*(p-b)*(p-c));
RO= a+b+c;
RB = s/p;
cout << "Площадь треугольника s = " << s << endl;
cout << "Радиус описанной окружности R = " << RO << endl;
cout << " Радиус вписанной окружности r = " << RB << endl;
goto FIN;
PRIZNAK: cout << " Треугольник не существует znak = " << znak << endl;
FIN: ;
getch();
return 0;
}
1.7. Условный оператор и его формы в С++
Одним из наиболее часто применяющихся операторов, которые изменяют естественный порядок следования операторов программы, является условный оператор. Условный оператор (его также называют оператором условной передачи управления) предусмотрен для описания разветвляющегося алгоритма. С помощью этого оператора можно обеспечить выполнение одного или другого оператора в зависимости от заданных условий. В С++ условный оператор имеет три формы: короткую и полную и вложенную.
1. Короткая форма – [метка:] if (E) оператор S1;
Например, if (a>b) y=2*x;
Если логическое выражение Е истинно, то выполняется оператор S1.
2. Полная форма – [метка:] if (E) оператор S1; else оператор S2;
Например, if (x>0 && x!=10) y=2*x; else y=x*x;
Если логическое выражение Е истинно, то выполняется оператор S1, иначе – оператор S1.
Оператор if в полной форме часто называется оператором if-else.
3. Вложенная форма:
[метка:] if (E1) оператор S1; else if (E2) оператор S2; else оператор S3;
Если логическое выражение Е1 истинно, то выполняется оператор S1, иначе, если логическое выражение Е2 истинно, то выполняется оператор S2, иначе выполняется оператор S3.
Здесь Е, Е1, Е2 – условие (выражение типа сравнения или скалярное выражение); S1, S2, S3 – либо отдельный, оператор, либо группа операторов (рассмотрим далее в данной работе), либо блок (рассмотрим в последующих работах).
Каждая из конструкций оператор S1 и оператор S2 должна заканчиваться точкой с запятой. Выражение Е принято называть логическим. Условие Е необходимо заключать в круглые скобки.
Выражение в записи формата условного оператора – это некоторое условие, содержащее операции отношения и логические операции.
В числе операторов S1 и S2 может быть и другой условный оператор.
Если условие, стоящее за ключевым словом if, выполняется (истинно) то управление будет передано на оператор S1. Если же условие не выполняется (ложно), то при использовании короткой формы оператора if управление передается оператору, непосредственно следующему за условным оператором, а при использовании полной формы оператору S2 (см. рис. 6.3).
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
Нет |
|
|
Нет |
Оператор S2 Выполнение ветви "Нет" |
|||||||||||
Условие Е (выражение) |
(Ложь) |
|
Условие Е (выражение) |
|
(Ложь) |
||||||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Да |
|
|
|
|
|
Да |
|
|
||||||||
|
(Истина) |
|
|
|
|
|
(Истина) |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Оператор S1 Выполнение ветви "Да" |
|
|
|
|
|
Оператор S1 Выполнение ветви "Да" |
|
|
||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Выполнение операторов в естественном порядке |
|
|
|
|
|
Выполнение операторов в естественном порядке |
|
|
||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
а) |
|
|
|
б) |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
Рис. 6.3. Блок-схема участка алгоритма, реализующего условный оператор: а) короткий формат; б) полный формат |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
Скалярное выражение Е (условие) в операторе if задает правило вычисления логического условия, для получения которого значение Е преобразуется в строку битов.
Если значение выражения равно true (истина), то выполняется оператор S1 (говорят также, что выполняется ветвь "Да"). После выполнения оператора S1 (если это не повлияет на порядок выполнения операторов) управление передается оператору, следующему за условным оператором (см. рис. 6.3).
Если значение скалярного выражения Е равно false (ложь), то выполняется оператор S2 (говорят также, что выполняется ветвь "Нет"). В случае отсутствия конструкции else и в операторе if выполняется оператор, стоящий непосредственно за условным оператором (см. рис 6.3,а). После выполнения оператора S2 управление передается следующему за ним оператору, если S2 не влияет на порядок выполнения операторов.
Варианты графического изображения команд ветвления представлены на рисунке 6.4.
Рис. 6.4. Команды ветвления: а) – полная форма; б) и в) – сокращенная форма.