Есть 2 действительных числа, x и y, которые вводятся с клавиатуры. Нужно проверить попадет ли точка в заданную область, область это рисунок. Если да, то выполняется одно уравнение, если нет, то другое. Нужно помочь с проверкой на то попадает точка или нет, немного не знаю как это сделать
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
setlocale(LC_ALL, "Russian");
float x, y, p; char n;
m1: cout << "Ввкдите кординаты точек:";
cout << "\n\t x="; cin >> x;
cout << "\t y="; cin >> y;
if (y >= 0 && x >= 0 && x*x + y * y <= 1 || y >= 0 && x <= 0 && x*x + y * y <= -1)
p = sin(x);
else p = x+2*y;
cout << "\t p=" << p;
cout << "\nПродолжить?: Y/N -> "; cin >> n;
if (n == 'Y') goto m1;
else cout << "Конец\n";
system("PAUSE");
}
]1
Ну давайте подумаем... Ломаная линия - это график y = |x|, так что чтоб точка была выше - надо, чтоб выполнялось условие y > |x|. А чтоб было в заштрихованной области - нужно выполнение y*y + x*x < 1 (пересечение круга и угла).
Вместе -
if (y > abs(x) && x*x+y*y < 1) ...
Примерно так.
Можно, чтоб не использовать функцию abs, записать неравенство как y*y > x*x && y > 0.
Знаки могут быть <= и >= - в зависимости от того, должны ли граничные точки учитываться как часть фигуры.
private static void Main(string[] args)
{
double x = GetCoord("x"), y = GetCoord("y");
Console.WriteLine(y >= x && x >= -1 && y <= 1 ? "Попадает" : "Не попадает");
Console.ReadKey();
}
static double GetCoord(string name = null)
{
Console.Write("Введите координату {0}: ", name ?? "\b");
var input = Console.ReadLine();
try
{
return double.Parse(input, CultureInfo.InvariantCulture);
}
catch
{
Console.WriteLine("Неверный ввод!");
return GetCoord(name);
}
}
http://www.cyberforum.ru/csharp-beginners/thread976436.html
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости