Определить принадлежность точки области - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Даны координаты точек х1, у1, х2, у2, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2, то вывести на печать координаты этой точки и сообщение «ТОЧКА В ПЛОСКОСТИ»; если точка вне круга, то вывести на печать координаты точки и сообщение «ТОЧКА ЗА ПРЕДЕЛАМИ». R = 15. Начал делать, массивы вроде задал, а дальше не выкупаю, вообще фигню написал в конце, помогите, очень нужно.
Листинг программы
  1. #include <stdio.h>
  2. #define N 100
  3. int main()
  4. {
  5. int r=15,i,j,s;
  6. int x[15];
  7. int y[15];
  8. for(i=0; i<15; i++)
  9. x[i]=rand()%20;
  10. for(i=0;i<15;i++)
  11. {
  12. printf("x[%i]-%d\n",i,x[i]);
  13. }
  14. for(j=0; j<15; j++)
  15. y[j]=rand()%20;
  16. for(j=0;j<15;j++)
  17. {
  18. printf("\n\ty[%i]-%d ",j,y[i]);
  19. }
  20. if(x[i]+y[j]==r)
  21. {
  22. printf("Tochka v ploschyne");
  23. }
  24. else
  25. printf("Tochka za meghamy");
  26. scanf(" ");
  27. }

Решение задачи: «Определить принадлежность точки области»

textual
Листинг программы
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <math.h>
  6. #define SIZE 10
  7.  
  8. main()
  9. {
  10.     int circleX, circleY, R;
  11.     int arrX[10], arrY[10];
  12.     system("chcp 1251 > nul");
  13.  
  14.     puts("Введите параметры окружности (x, y, R):");
  15.     scanf("%d%d%d", &circleX, &circleY, &R);
  16.        
  17.     printf("\n%s%13s %3s\n", "Массив точек:","X","Y");
  18.     srand((unsigned)time(NULL));
  19.     for (i=0; i<SIZE; ++i) {
  20.         arrX[i] = rand() % 20;
  21.         arrY[i] = rand() % 20;
  22.         printf("Координаты %2d-й точки: %3d %3d\n", i+1, arrX[i], arrY[i]);
  23.     }
  24.  
  25.     puts("");
  26.     for (int i=0; i<SIZE; ++i)
  27.         if (pow(circleX - arrX[i], 2) + pow(circleY - arrY[i], 2) > pow(R, 2)) printf("Точка %2d лежит вне окружности\n", i+1);
  28.         else
  29.             if (pow(circleX - arrX[i], 2) + pow(circleY - arrY[i], 2) < pow(R, 2)) printf("Точка %2d лежит внутри окружности\n", i+1);
  30.             else
  31.                 printf("Точка %2d лежит на окружности", i+1);
  32.    
  33.  
  34.     system("pause > nul");
  35.     return 0;
  36. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы