
Другие языки программирования и технологии
Задачка в Паскале
составьте пожалуйста программу при вводе значений, которая бы говорила принадлежит точка графику или нет.! 

Где-то так:
Program gr;
var
x, y, u, r, r2 : Real;
begin
Write('x='); Read(x);
Write('y='); Read(y);
y := abs(y); { не важен знак, так как график симметричен у нас и y всегда +}
{ если хоть одна точка больше по модулю 2, то уже не принадлежит }
if (abs(x)>2) or (y>2) then WriteLn('No')
else { иначе дальше проверяем }
begin
{ проверка для некоторых линий }
if (x=0) or (x=-2) then WriteLn('Yes')
else if (y=0) and ((x<=0) or (x=2)) then WriteLn('Yes')
else { более сложные вычисления }
begin
u := ArcTan(y/abs(x)); {угол в радианах треугольника}
{ если x < 0}
if x < 0 then
begin
if (u >= 0) and (u <= PI/4) then WriteLn('Yes') else WriteLn('No');
end
else { при x > 0}
begin
r := sqrt(x*x+y*y); { радиус }
{ если радиус больше 2,то не подходит }
if r > 2 then WriteLn('No')
else
begin
r2 := sqrt((x-1)*(x-1)+y*y); { радиус от координаты (1;0) }
// если радиус меньше 1, то не подходит
if r2 < 1 then WriteLn('No')
else WriteLn('Yes');
end;
end;
end;
end;
end.
Program gr;
var
x, y, u, r, r2 : Real;
begin
Write('x='); Read(x);
Write('y='); Read(y);
y := abs(y); { не важен знак, так как график симметричен у нас и y всегда +}
{ если хоть одна точка больше по модулю 2, то уже не принадлежит }
if (abs(x)>2) or (y>2) then WriteLn('No')
else { иначе дальше проверяем }
begin
{ проверка для некоторых линий }
if (x=0) or (x=-2) then WriteLn('Yes')
else if (y=0) and ((x<=0) or (x=2)) then WriteLn('Yes')
else { более сложные вычисления }
begin
u := ArcTan(y/abs(x)); {угол в радианах треугольника}
{ если x < 0}
if x < 0 then
begin
if (u >= 0) and (u <= PI/4) then WriteLn('Yes') else WriteLn('No');
end
else { при x > 0}
begin
r := sqrt(x*x+y*y); { радиус }
{ если радиус больше 2,то не подходит }
if r > 2 then WriteLn('No')
else
begin
r2 := sqrt((x-1)*(x-1)+y*y); { радиус от координаты (1;0) }
// если радиус меньше 1, то не подходит
if r2 < 1 then WriteLn('No')
else WriteLn('Yes');
end;
end;
end;
end;
end.
в ЛС напишу если прям срочно надо, но только объединять не буду, только куча условий, если надо будет сам их раскидаешь.. .
А так алгоритм очень прост.. .
X>0 тогда рассматриваешь закрашенный круг и потом из него выбиваешь внутренний под новым условием
X<0 тогда по формуле треугольника смотришь и все.. .
Тут тупо применение геометрический формул
А так алгоритм очень прост.. .
X>0 тогда рассматриваешь закрашенный круг и потом из него выбиваешь внутренний под новым условием
X<0 тогда по формуле треугольника смотришь и все.. .
Тут тупо применение геометрический формул
Похожие вопросы
- Помогите, пожалуйста, решить задачку на паскале. Заранее благодарна.
- Задачка по Паскалю.
- Помогите с задачкой по Паскалю
- Помогите простенькие задачки по паскалю решить??)
- Люди помогите решить задачку!!!на паскале
- Задачка на Паскале
- Задачка по Паскалю
- помогите, пожалуйста, с задачкой в Паскале
- Задачка на Паскале,чето не понял,что от меня хотят?)
- Нужна помощь в решении задачки на паскале )