Составить программу, которая печатает true, если точка с координатами (x, y) принадлежит закрашенной области, и false в противном случае.
вот вариант решения. но он не верен, где-то есть ошибка
Решение:
var
x,y:integer;
L: Boolean;
begin
Writeln('x,y');
Readln(x,y);
L:=(X>=2)and(x<=4)and(y>=2)and(y<=4)and(y>=2-x)and(y<=4-x)or (x<=-2)and(x>=-4)and(y>=2)and(y<=4)and(y>=x+2)and(y<=x+4)Or (x<=-2)and(x>=-4)and(y<=-2)and(y>=-4)and(y<=-x-2)and(y>=-x-4) ;
Writeln(L);
end.
Другие языки программирования и технологии
помогите исправить ошибку в программе в Pascal
Конечно, ошибка, ведь ты не сопоставляешь каждому значению х его должный диапазон у.
Сначала напиши по-людски все условия. Например, при x>0 => y1= -x+4, y2=-x+2 (это уравнения прямых, для любого х считаем диапазон должных значений у), при этом y должно быть меньше-равно у1 и больше-равно у2.
При x<=0 по уравнениям прямых так же считаем у1, у2, у3 и у4. Проверяем попадание у в должные диапазоны. ВСЁ!
Если не проходили уравнения прямых, то самое время про это почитать. Верхняя прямая первого квадранта описывается уравнением у1(х) = -х+4, нижняя у2(х) =-х+2. Осталось выписать уравнения остальных прямых.
Сначала напиши по-людски все условия. Например, при x>0 => y1= -x+4, y2=-x+2 (это уравнения прямых, для любого х считаем диапазон должных значений у), при этом y должно быть меньше-равно у1 и больше-равно у2.
При x<=0 по уравнениям прямых так же считаем у1, у2, у3 и у4. Проверяем попадание у в должные диапазоны. ВСЁ!
Если не проходили уравнения прямых, то самое время про это почитать. Верхняя прямая первого квадранта описывается уравнением у1(х) = -х+4, нижняя у2(х) =-х+2. Осталось выписать уравнения остальных прямых.
Медет Балгожин
что?
Подели свое условие на несколько более простых - сразу станет как-то легче. А то тут черт ногу сломит.
А вы закрашенную область предъявите народу, тогда будем посмотреть.
Медет Балгожин
в дополнении рисунок
Тань, Вам все объяснили выше. Еще раз, более подробно:
1) Берем точку, определяем, к какой части координатной плоскости, она относится.
2) Берем X для нашей точки. С таким X есть точка на верхней прямой, и точка на нижней прямой, считаем для них: Y1 для верхней прямой, и Y2 для нижней прямой. Считаем по уравнениям прямых, они у Вас есть.
3) Если у нашей точки, координата Y лежит между Y1, и Y2, то точка принадлежит области.
И не повторяйте тупо "я это не знаю", а берите учебник геометрии и ищите, там нет ничего сложного.
1) Берем точку, определяем, к какой части координатной плоскости, она относится.
2) Берем X для нашей точки. С таким X есть точка на верхней прямой, и точка на нижней прямой, считаем для них: Y1 для верхней прямой, и Y2 для нижней прямой. Считаем по уравнениям прямых, они у Вас есть.
3) Если у нашей точки, координата Y лежит между Y1, и Y2, то точка принадлежит области.
И не повторяйте тупо "я это не знаю", а берите учебник геометрии и ищите, там нет ничего сложного.
Похожие вопросы
- Помогите исправить ошибку в программе (c++).
- Pascal ABC. Помогите исправить ошибку в программе.
- Помогите исправить ошибку в программе на Си
- Пожалуйста, помогите исправить ошибки в программах на С++!
- помогите найти ошибка в программе на PASCAL тема: "файлы".
- Помогите исправить ошибки в коде на Pascal, чтобы он выводил верные ответы. Или можете сами пожалуйста написать пжпжпж!
- Пожайлуста, помогите исправить ошибки в программе на С++!!
- Помогите исправить ошибку в коде программы, пожалуйста!
- где ошибка в программе turbo pascal (фото внутри)
- Помогите исправить ошибку в коде программы на паскале.