Определить принадлежность точки области - 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;
}

Объяснение кода листинга программы

  1. Объявлены переменные: circleX, circleY, R, arrX[10], arrY[10]
  2. Задаются начальные значения переменных: circleX, circleY, R
  3. Выводится приглашение для ввода параметров окружности
  4. Считываются параметры окружности: circleX, circleY, R
  5. Выводится массив точек и их координаты: arrX[i], arrY[i]
  6. Инициализируется генератор случайных чисел: srand((unsigned)time(NULL))
  7. Задается условие для цикла: i<SIZE
  8. Внутри цикла генерируются случайные координаты точек: arrX[i], arrY[i]
  9. Выводится информация о координатах каждой точки: arrX[i], arrY[i]
  10. Выводится пустая строка
  11. Выполняется проверка принадлежности точек к окружности по формуле: pow(circleX - arrX[i], 2) + pow(circleY - arrY[i], 2)
  12. Если значение выражения больше, чем pow(R, 2), то выводится сообщение о том, что точка лежит вне окружности
  13. Если значение выражения меньше, чем pow(R, 2), то выводится сообщение о том, что точка лежит внутри окружности
  14. Если значение выражения равно pow(R, 2), то выводится сообщение о том, что точка лежит на окружности
  15. Повторяется шаги 8-14 для всех точек в массиве
  16. Выводится сообщение о завершении программы
  17. Программа ожидает нажатия клавиши для выхода из программы: system(pause > nul)
  18. Возвращается 0, указывая на успешное выполнение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы