Определить принадлежность точки областям - C (СИ)
Формулировка задачи:
Определить принадлежность точки областям, обозначенным прописными буквами A и B. Малыми буквами обозначены определяемые пользователем параметры рисунка. Координаты точки x и y и другие параметры рисунка вводятся пользователем.
Не могу составить корректное условие к задаче. Спасибо.
#include <stdio.h> #include <locale.h> void main(){ float x, y; setlocale(LC_ALL, "Russian"); printf("Введите координаты точки(х и у):\n"); scanf("%f%f", &x, &y); if () printf("Точка находится в области А."); else if () printf("Точка находится в области B."); else printf("Точка находится вне областей А и В.\n"); }
Решение задачи: «Определить принадлежность точки областям»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <conio.h> struct POINT { float x, y; }; int main() { float vertLine = 6.0, horLine = 4.0; POINT pnt; printf("Write the x- and y-coordinates of your point:\n"); scanf("%f%f", &pnt.x, &pnt.y); if( pnt.x < 0 && pnt.y > 0 ) { if(abs(pnt.x) < abs(pnt.y)) { POINT negatPnt = { -pnt.x, -pnt.y }; float line = sqrt( (pnt.x - negatPnt.x)*(pnt.x - negatPnt.x) + (pnt.y - negatPnt.y)*(pnt.y - negatPnt.y) ); if( line <= vertLine ) printf("The point belongs to the A\n"); } else if( abs(pnt.x) >= abs(pnt.y)) { POINT negatPnt = { -pnt.x, -pnt.y }; float line = sqrt( (pnt.x - negatPnt.x)*(pnt.x - negatPnt.x) + (pnt.y - negatPnt.y)*(pnt.y - negatPnt.y) ); if( line < horLine ) printf("The point belongs to the A\n"); } } else if( pnt.x > 0 && pnt.y < 0 ) { if(abs(pnt.x) < abs(pnt.y)) { POINT negatPnt = { -pnt.x, -pnt.y }; float line = sqrt( (pnt.x - negatPnt.x)*(pnt.x - negatPnt.x) + (pnt.y - negatPnt.y)*(pnt.y - negatPnt.y) ); if( line >= vertLine ) printf("The point belongs to the B\n"); } else if( abs(pnt.x) >= abs(pnt.y)) { POINT negatPnt = { -pnt.x, -pnt.y }; float line = sqrt( (pnt.x - negatPnt.x)*(pnt.x - negatPnt.x) + (pnt.y - negatPnt.y)*(pnt.y - negatPnt.y) ); if( line > horLine ) printf("The point belongs to the B\n"); } } else printf("The point doesn't belong to any area.\n"); getch(); }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы:
, , . - Определяется структура POINT, которая содержит два поля: x и y типа float.
- В функции main() инициализируются переменные vertLine и horLine, которые задают вертикальную и горизонтальную линии соответственно.
- Создается структура POINT, в которую пользователь будет вводить координаты точки.
- С помощью функции scanf() пользователь вводит координаты точки.
- Выполняется проверка на принадлежность точки к определенному квадранту.
- Если точка принадлежит квадранту A, выполняется проверка на принадлежность к области A.
- Если точка принадлежит квадранту B, выполняется проверка на принадлежность к области B.
- Если точка не принадлежит ни одному из квадрантов, выводится сообщение о том, что точка не принадлежит ни одной области.
- Выводится сообщение о том, что точка принадлежит области A.
- Выводится сообщение о том, что точка принадлежит области B.
- Программа завершается с помощью функции getch().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д