Определить принадлежность точки области - C (СИ)
Формулировка задачи:
Даны координаты точек х1, у1, х2, у2, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2, то вывести на печать координаты этой точки и сообщение «ТОЧКА В ПЛОСКОСТИ»; если точка вне круга, то вывести на печать координаты точки и сообщение «ТОЧКА ЗА ПРЕДЕЛАМИ». R = 15. Начал делать, массивы вроде задал, а дальше не выкупаю, вообще фигню написал в конце, помогите, очень нужно.
#include <stdio.h>
#define N 100
int main()
{
int r=15,i,j,s;
int x[15];
int y[15];
for(i=0; i<15; i++)
x[i]=rand()%20;
for(i=0;i<15;i++)
{
printf("x[%i]-%d\n",i,x[i]);
}
for(j=0; j<15; j++)
y[j]=rand()%20;
for(j=0;j<15;j++)
{
printf("\n\ty[%i]-%d ",j,y[i]);
}
if(x[i]+y[j]==r)
{
printf("Tochka v ploschyne");
}
else
printf("Tochka za meghamy");
scanf(" ");
}Решение задачи: «Определить принадлежность точки области»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define SIZE 10
main()
{
int circleX, circleY, R;
int arrX[10], arrY[10];
system("chcp 1251 > nul");
puts("Введите параметры окружности (x, y, R):");
scanf("%d%d%d", &circleX, &circleY, &R);
printf("\n%s%13s %3s\n", "Массив точек:","X","Y");
srand((unsigned)time(NULL));
for (i=0; i<SIZE; ++i) {
arrX[i] = rand() % 20;
arrY[i] = rand() % 20;
printf("Координаты %2d-й точки: %3d %3d\n", i+1, arrX[i], arrY[i]);
}
puts("");
for (int i=0; i<SIZE; ++i)
if (pow(circleX - arrX[i], 2) + pow(circleY - arrY[i], 2) > pow(R, 2)) printf("Точка %2d лежит вне окружности\n", i+1);
else
if (pow(circleX - arrX[i], 2) + pow(circleY - arrY[i], 2) < pow(R, 2)) printf("Точка %2d лежит внутри окружности\n", i+1);
else
printf("Точка %2d лежит на окружности", i+1);
system("pause > nul");
return 0;
}
Объяснение кода листинга программы
- Объявлены переменные: circleX, circleY, R, arrX[10], arrY[10]
- Задаются начальные значения переменных: circleX, circleY, R
- Выводится приглашение для ввода параметров окружности
- Считываются параметры окружности: circleX, circleY, R
- Выводится массив точек и их координаты: arrX[i], arrY[i]
- Инициализируется генератор случайных чисел: srand((unsigned)time(NULL))
- Задается условие для цикла: i<SIZE
- Внутри цикла генерируются случайные координаты точек: arrX[i], arrY[i]
- Выводится информация о координатах каждой точки: arrX[i], arrY[i]
- Выводится пустая строка
- Выполняется проверка принадлежности точек к окружности по формуле: pow(circleX - arrX[i], 2) + pow(circleY - arrY[i], 2)
- Если значение выражения больше, чем pow(R, 2), то выводится сообщение о том, что точка лежит вне окружности
- Если значение выражения меньше, чем pow(R, 2), то выводится сообщение о том, что точка лежит внутри окружности
- Если значение выражения равно pow(R, 2), то выводится сообщение о том, что точка лежит на окружности
- Повторяется шаги 8-14 для всех точек в массиве
- Выводится сообщение о завершении программы
- Программа ожидает нажатия клавиши для выхода из программы: system(
pause > nul) - Возвращается 0, указывая на успешное выполнение программы