Лаб_раб_02.pptx.ppt
- Количество слайдов: 20
Задачи на разветвления ЛАБОРАТОРНАЯ РАБОТА № 2 1
Вопросы занятия 1. Условный оператор. 2. Условная операция. 2. Чтение программ со структурой «ветвление» . 3. Вычисление значения функции. 4. Выстрел по мишени. 2
1. Полная форма условного оператора if ( <логическое_выражение> ) <оператор_1> ; else <оператор_2> ; else Пример: вычислить значение функции: VBA C++ IF a * b < 0 THEN if(a * b < 0) y = exp(sin(a*b)); y = EXP(SIN(a*b)) else y = sqrt(a * b) *log(abs(a)); ELSE y = SQR(a * b)*log(ABS(a)) END IF 3
2. Условная операция <переменная> = <логическое выражение> ? <выражение 1> : <выражение 2>; Если <логическое выражение> истинно, то <переменная> получает значение <выражение 1> иначе <переменная> получает значение <выражение 2> #include <iostream> #include <cmath> using namespace std; int main() { float a=1, b=2, y; y = a*b<0 ? exp(sin(a*b)) : sqrt(a * b)*log(abs(a)) ; cout << a <<' '<< b << ' ' << y << endl; return 0; } 4
3. Программирования задачи с разветвлением на три направления a=1. /3; if (x<a) z = sin(x*x)/(x-a); else if (x==a) z = pow(x, a)*pow(cos(x), 2); else z = tan(sqrt(abs(x+a))); 5
Дан фрагмент программы int main () {int ms[]={7, 3, -3, 8, -5}, i, k, n; n=sizeof(ms)/4; cout <<"k: "; cin >>k; cout <<"n="<<n <<"k="<<k<< endl; if (k>=0 && k<n/2) cout<<ms[k]<<' ' <<ms[k+1]<<endl; else if(k>n/2 && k<=n) cout << ms[k-1]<< ' '<<ms[k]<< endl; else cout<<"array index outside sizeof ms" <<endl; Какие значения будут выведены на консоль, если с консоли ввести число 3? Какие значения будут выведены на консоль, если с консоли ввести число 2? Какие значения будут выведены на консоль, если с консоли ввести число 1? Какие значения будут выведены на консоль, если с консоли ввести число 7? 6
Задача 1 на самостоятельное решение В два контейнера станка вбрасывается по n заготовок. В 1 -м контейнере создается (n 2+2 n +5) деталей, Во 2 -м контейнере 2 – (3 n 3 -7) деталей. В передается б. Ольшее количество деталей, остальные отправляются на переплавку. Создать программу для приема деталей в 3 -й контейнер. Задать n, определить большее из двух функций. 7
Задача 2 на самостоятельное решение Составить программу для определения наименьшего из значений трех функций : y 1=x²+1, y 2=7 -x² , y 3=x+1 8
1. Вычисление значения функции. Составить программу, которая по введенному значению аргумента x вычисляет значение функции y, заданной в виде графика на интервале [-3; 3]. y 9
y y 2 В x 1 А x 2 x y 1 10
y y 0 R x 0 x 11
y 12
y 13
y 14
y 15
16
int main( ) { double x, y; cout << "x: "; cin >> x; if(x >= -3 && x <= 3) { if (x < -2) y = -2 * x - 5; else if(x >= - 2 && x < 0) y = - sqrt(1 - pow(x + 1, 2)) -1; else if(x >= 0 && x < 1) y = x - 1; else y = sqrt(1 - pow(x - 2, 2)); cout << "y = " << y << endl; } else cout << "enter number -3 <= x <= 3 "; return 0; } 17
2. Выстрел по мишени Дано: 1) заштрихованная область и 2) точка координатами (x, y). Составить программу, определяющую, попадет ли точка в заштрихованную область. Точка попадет в круг, если: x 2 + y 2 ≤ 1 Точка попадет в треугольник, если одновременно выполняются следующие условия x ≤ 0 y ≥ - x -2 18
Точка попадет в круг, если: x 2 + y 2 ≤ 1 Точка попадет в треугольник, если одновременно выполняются следующие условия x ≤ 0 y ≥ - x -2 #include <iostream> #include <cmath> using namespace std; int main( ) { double x, y; cout << "x: "; cin >> x; cout << "y: "; cin >> y; if(x*x + y*y <= 1 || x <= 0 && y >= -x -2) cout << "Yes" << endl; else cout << "No " << endl; return 0; } 19
Домашнее задание 1. Даны действительные числа x, y, z. Вычислить, используя а) логическую функцию и б) логический оператор а) max(x+y+z, xyz); б) min 2(x+y/2+z, x/yz)+1. 2. (53 Абрамов) Даны действительные числа a, b, c, d, s, t, u (s, t одновременно не равны 0). Известно, что точки (a, b) и (c, d) не лежат на одной прямой L, заданной уравнением sx+ty+u=0. Прямая L разбивает координатную плоскость на две полуплоскости. Выяснить, верно ли, что точки (a, b) и (c, d) принадлежат разным плоскостям. «Задачи по программированию» . С. А Абрамов, Г. Г. Гнездилова…. 3. Разработать программу неэлементарной функции заданного вида. Если x не входит в указанные интервалы, выдать об этом сообщение на консоль. 20
Лаб_раб_02.pptx.ppt