Технический форум

Технический форум (http://www.tehnari.ru/)
-   C/C++/С# (http://www.tehnari.ru/f42/)
-   -   Си. Направьте на путь праведный (http://www.tehnari.ru/f42/t247308/)

LimsЯ 29.06.2016 15:48

Си. Направьте на путь праведный
 
Код:

Зашел в тупик реализацией на Си ><

Собственно сама задача

       
Цитата:

       
       
               
       
       

                       

                       
                                На территории имеется N камер видео наблюдений, исходные координаты которых (xi, yi), i=0..N-1, радиусы локации — ri.

б) для точки T(x,y) определить, в области видимости каких камер видео наблюдений она находится;
в) Нарушитель следует из точки A(x1; y1) в точку B(x2; y2). Сколько камер его заметят.

Входные данные:
- число N -количество камер(1<N<=300);
- N строк вида xi, yi, ri.
- координаты точек T(x,y) и A(x1; y1) , B(x2; y2).

Выходные данные:
- первая строка- порядковые номера камер ВН, в области видимости которых находится точка Т;
- вторая строка - количество камер ВН, заметивших нарушителя.
                       
                       

               

Мои попытки реализовать

       
Код:

       
#include <stdio.h>
#include <math.h>
main(){
        int n,xi,yi,ri,x,y,x1,y1,x2,y2;                                                 // Переменные вводимые пользователем
        int i=0;                                                                        // Переменные цикла

                /*Входные данные задачи [Б]*/
                printf("Введите N -количество камер: ");                                // Число N -количество камер (1<n<=300)
                 scanf("%d" ,&n);
                printf("Введите координаты камер: ");                                        // N строк вида xi, yi, ri
                 scanf("%d%d%d" ,&xi,&yi,&ri);
                printf("Введите координаты точек:\n");
                printf("T(x,y): ");                                                        // Координаты точек T, A, B
                 scanf("%d%d" ,&x,&y);

                /*Входные данные Задача [В]*/
                printf("A(x1,y1)");                                                        // |---Нарушитель следует из точки [А]--->
                 scanf("%d%d" ,&x1,&y1);
                printf("B(x2,y2)");                                                        // --->в точку [В]---|
                 scanf("%d%d" ,&x2,&y2);

        int k,function;                                                                        //Переменные для расчёта

                printf("\n");
                printf("[Задача 1.2]\n[Задание Б]\n");
                function = pow(0-x,2)+pow(0-y,2);                                        //x^2+y^2
                if (function<=pow(ri,2)) {                                                //по теореме пифагора проверяем чтобы сумма квадратов координат точки
                    printf("\tНарушитель находится в области видимости\n");
                }
                else {
                    printf("\tНарушитель не находиться в области видимости камер\n");
                }
}


Проверка попадает ли точка
Тут я хотел сделать проверку попадает ли точка в радиус камер.

       
Код:

       
function = pow(0-x,2)+pow(0-y,2);                                        //x^2+y^2
                if (function<=pow(ri,2)) {                                //Определить попадает ли точка с координатами х,у в круг радиуса r.                    printf("\tКатер нарушитель находится в области видимости\n");
                }
                else {
                    printf("\tКатер нарушитель не находиться в области видимости радара\n");
                }





Часовой пояс GMT +4, время: 07:17.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.