Компания ALT Linux
Опубликован: 07.03.2015 | Доступ: свободный | Студентов: 2183 / 522 | Длительность: 24:14:00
Лекция 3:

Операторы управления

Задача 3.2. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами (x; y) заштрихованной области (рис. 3.12).

Графическое представление задачи 3.2

Рис. 3.12. Графическое представление задачи 3.2
Алгоритм решения задачи 3.2

Рис. 3.13. Алгоритм решения задачи 3.2

Как показано на рис. 3.12, область ограничена линиями x = -1, x = 3, y = -2 и y = 4. Значит точка с координатами (x; y) будет принадлежать этой области, если будут выполняться следующие условия: x \ge -1, x \le 3, y \ge -2 и y \le 4. Иначе точка лежит за пределами области.

Блок-схема, описывающая алгоритм решения данной задачи, представлена на рис. 3.13.

Текст программы к задаче 3.2:

#include <iostream>
using namespace std;
int main ( )
{ float X,Y;
	cout<<" X = "; cin >>X;
	cout<<" Y = "; cin >>Y;
	if (X>=-1 && X<=3 && Y>=-2 && Y<=4)
	cout <<"Точка принадлежит области"<< endl;
	else
	cout<<"Точка не принадлежит области"<<endl;
	return 0;
}
			

Задача 3.3. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами (x; y) заштрихованной области (рис. 3.14).

Составим уравнения линий, ограничивающих заданные области. В общем виде уравнение прямой, проходящей через точки с координатами (x_1,y_1) и (x_2,y_2), имеет вид:

\frac{x-x_1}{x_2-x_1}=\frac{y-y_1}{y_2-y_1}
Графическое представление задачи 3.3

Рис. 3.14. Графическое представление задачи 3.3

Треугольник в первой координатной области ограничен линиями, проходящими через точки:

  1. (0, 1) - (4, 3);
  2. (4, 3) - (5, 1);
  3. (5, 1) - (0, 1).

Следовательно, уравнение первой линии:

\frac{x-0}{4-0}=\frac{y-1}{3-1}\Rightarrow \frac{x}{4}=\frac{y-1}{2}\Rightarrow y=1+\frac{1}{2}\cdot x,

уравнение второй линии:

\frac{x-4}{5-4}=\frac{y-3}{1-3}\Rightarrow x-4=\frac{y-3}{-2}\Rightarrow -2\cdot x+8=y-3\Rightarrow y=-2\cdot x+11

и уравнение третьей линии: y = 1.

Линии, которые формируют треугольник во второй координатной области, проходят через точки:

  1. (0, 1) - (-4, 3);
  2. (-4, 3) - (-5, 1);
  3. (-5, 1) - (0, 1);

Следовательно, уравнение первой линии:

\frac{x-0}{-4-0}=\frac{y-1}{3-1}\Rightarrow \frac{x}{-4}=\frac{y-1}{2}\Rightarrow y=1-\frac{1}{2}\cdot x,

уравнение второй линии:

\frac{x+4}{-5+4}=\frac{y-3}{1-3}\Rightarrow \frac{x+4}{-1}=\frac{y-3}{-2}\Rightarrow -2\cdot x-8=-y+3\Rightarrowy=2\cdot x+11

и уравнение третьей линии: y = 1.

Таким образом, условие попадания точки в заштрихованную часть плоскости имеет вид:

\begin{equation}\left\{\begin{array}{c}y\leqslant 1+\frac{1}{2}\cdot x\\y\leqslant -2\cdot x+11\\y\geqslant 1\end{array}\right. \text{или}\ \  \left\{\begin{array}{c}y\leqslant 1-\frac{1}{2}\cdot x\\y\leqslant 2\cdot x+11\\y\geqslant 1\end{array}\right. \end{equation}

Далее приведён текст программы для решения задачи 3.3.

#include <iostream>
using namespace std;
int main ( )
{
	float X,Y;
	cout<<" X = "; cin >>X;
	cout<<" Y = "; cin >>Y;
	if ( (Y<=1+( float ) 1/2 *X && Y<=-2*X+11 && Y>=1) | | (Y<=1-( float ) 1/2 *X && Y<=2*X+11 && Y>=1))
		cout <<"Точка принадлежит области"<< endl;
	else
		cout<<"Точка не принадлежит области"<< endl;
	return 0;
}
			
Сергей Радыгин
Сергей Радыгин

Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке?

Тип приложения - не Qt,

Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.

 

Юрий Герко
Юрий Герко

Кому удалось собрать пример из раздела 13.2 Компоновка (Layouts)? Если создавать проект по изложенному алгоритму, автоматически не создается  файл mainwindow.cpp. Если создавать этот файл вручную и добавлять в проект, сборка не получается - компилятор сообщает об отсутствии класса MainWindow. Как правильно выполнить пример?