ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Условный оператор ifУсловный оператор if используется для разветвления процесса вычислений на два направления. Формат оператора:
i f (выражение) оператор_1; [else оператор_2;]
Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно нулю (имеет значение true), выполняется первый оператор, иначе — второй. После этого управление передается на оператор, следующий за условным. Одна из ветвей может отсутствовать, логичнее опускать вторую ветвь вместе с ключевым словом еlse. Если в какой-либо ветви требуется выполнить несколько операторов, их необходимо заключить в блок, иначе компилятор не сможет понять, где заканчивается ветвление. Оператор switch Оператор switch (переключатель) предназначен для разветвления процесса вычислений па несколько направлений. Структурная схема оператора приведена на рис. Формат оператора:
switch (выражение){ case константное_выражение_1: [список_операторов_1]; case константное_выражение_2: [список_операторов_2]; case константное_выражение_n: [список_операторов_n]; [default: операторы ]; } Выполнение оператора начинается с вычисления выражения (оно должно быть целочисленным), а затем управление передается первому оператору из списка, помеченного константным выражением, значение которого совпало с вычисленным. После этого, если выход из переключателя явно не указан, последовательно выполняются все остальные ветви. Выход из переключателя обычно выполняется с помощью операторов break или return. Если совпадения не произошло, выполняются операторы, расположенные после слова default (а при его отсутствии управление передается следующему за switch оператору).
Задание
1. Для задачи «Условный оператор» с оставить программу, которая предусматривает: - работу с пользователем в режиме диалога; - ввод с клавиатуры координат точки (x, y); вывод на экран ответа о принадлежности точки заданной фигуре. 2. Составить программу с использованием оператора switch. Варианты
Пример выполнения задачи 1: Составить программу, которая предусматривает: - работу с пользователем в режиме диалога; - ввод с клавиатуры координат точки (x, y); - вывод на экран ответа о принадлежности точки заданной фигуре. Анализ поставленной задачи
Для решения поставленной задачи необходимо составить систему условий. Так, если x<0, то точка однозначно не принадлежит области. Если х≥0, то необходимо проверить, принадлежит ли точка с введенными с клавиатуры координатами закрашенной области – треугольнику. Для этого координаты должны удовлетворять одновременно трем условиям:
Далее надо исключить из треугольника область – окружность. Для точек, лежащих вне окружности справедливо: - верхнее полупространство и - нижнее полупространство. Так как фигура симметричная, то можно записать . Алгоритм решения программы следующий: 1. Ввод координат с клавиатуры 2. Проверяем х – отрицательное или положительное число. Если x<0 то выводим сообщение, что точка не принадлежит области. 3. Если это условие не выполняется, проверяем, принадлежит ли точка треугольнику (в первой четверти или в четвертой). Если не принадлежит, выводим соответствующее сообщение. 4. Если точка находится внутри треугольника, то проверяем, попадает она в не закрашенную окружность или нет. Если не попадает, то выводим сообщение, что точка принадлежит области, иначе – выводится сообщение о том, что точка не принадлежит области.
Если требуется проверить несколько условий, их объединяют знаками логических операций. В программе приведенной ниже необходимо проверить выполняются ли одновременно 2 и 3 условие. Для этого используется операция логического умножения «И» - &&. Если бы нужно было, чтобы выполнялось либо условие 2, либо условие 3, то тогда использовалась бы операция логического сложения «ИЛИ» - ||. Модуль записывается как fabs(y).
Пример программы #include<iostream.h> #include<conio.h> #include<math.h>
int main() { double x,y; cout<<"Введите координаты \n"; cin>>x>>y; if (x<0) cout<<"Точка не принадлежит области"; else if ((fabs(y)>=7*x/14)&&(fabs(y)<=14)) if (pow((x-4),2)+ pow((fabs(y)-9),2)>=4) cout << " Точка принадлежит области "; else cout << " Точка не принадлежит области "; else cout << " Точка не принадлежит области "; getch(); } Типичные ошибки при выполнении работы: Не забывайте после слова if заключать условие в скобки При выводе сообщений направление потоков <<. Неправильно будет cout>> При вводе данных с клавиатуры направление потоков >>. Неправильно будет cin<< Если необходимо проверить равенство, то в условии записывается два знака ==. Например, неправильно будет if (x=3). Правильно - if (x==3) Пример выполнения задачи 2: Вычислить функцию Значения х и у вводятся с клавиатуры Пример выполнения программы: #include <iostream.h> #include <conio.h> #include <math.h> int main() { double f; int k,x,y; cout << "Введите х и у\n" << "x="; cin >> x; cout <<"y="; cin >> y; k=x+y; switch (k) { case 7: f=x*x+y*y; cout << "f= " << f;break; case 0: f=x-y*y; cout << "f= " << f;break; default: f=pow((x+y),2); cout << "f= " << f; }
getch(); return 0; }
Не нашли, что искали? Воспользуйтесь поиском:
|