Определить принадлежность точки области - 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, указывая на успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д