powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Си [Направьте на путь правидный]
14 сообщений из 64, страница 3 из 3
Си [Направьте на путь правидный]
    #39265344
569
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
569
Гость
LimsЯ569,
Надеюсь успею изучить структуры за 3 дня)
Довольно удобно - попытаюсь с помощью структур решить данную задачу.


Попробуйте вместо
int и sizeof(int)
использовать созданную вами структуру,

struct camera
{
int cX;
int cY;
int Ri;

// char cam_name[255];

};

посмотрите, что вызывает макрос sizeof ( camera) для созданного вами типа данных
и как происходит позиционирование по индексу массива.

и к вам должно прийти понимание, что предложенный
выше алгоритм 19351246
очень прост и легко будет читаться любым человеком знающим С...
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265354
569
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
569
Гость
LimsЯТут я реализовал ввод кол-ва камер и их координат/радиуса, как мне создать массив что бы после ввода координат и радиуса я мог производить с ними манипуляции?
Code
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
#include <stdio.h>
#include <math.h>

	/*Обьявление структур*/
struct coordinates {				// Координаты
  int xi,yi,ri;
};
struct kamer {					// Камеры
  int n;
  int kamer[3];
};
struct point {					// Точки
  int x,y, x1,y1, x2,y2;
};

	/*Начало программы*/
void main() {
  struct coordinates coordinates;		// |---Обьявляем --->
  struct kamer kamer;				// --->как обычные ->
  struct point point;				// --->переменные --|
  
	printf("Введите количество kamer: ");
	 scanf("%d", &kamer.n);
  int i;
	for (i=0; i<kamer.n; i++) {
	  printf("Введите координаты для всех kamer в формате [xi, yi, ri]: ");
	   scanf("%d%d%d", &coordinates.xi, &coordinates.yi, &coordinates.ri);
	}
}




Вы запутались,
и загнали себя и компилятор в рекурсию ....

Код: plaintext
1.
2.
3.
struct kamer {					// Камеры
  int n;
  int kamer[3];



не нужно так усложнять ...

см сообщение выше и создавайте массив камер
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265407
LimsЯ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
struct coordinates {				// Координаты
  int xi,yi,ri;
};
struct kamer {					// kamer
  int n;
  int cX,cY,Ri;
  char kamer_name[255];
};
struct point {					// Точки
  int x,y, x1,y1, x2,y2;
};



это получается что структура координат не понадобиться ? если мы записали координаты в структуру kamer? и создали массив camer_namep[255]
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265456
569
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
569
Гость
LimsЯ
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
struct coordinates {				// Координаты
  int xi,yi,ri;
};
struct kamer {					// kamer
  int n;
  int cX,cY,Ri;
  char kamer_name[255];
};
struct point {					// Точки
  int x,y, x1,y1, x2,y2;
};



это получается что структура координат не понадобиться ?
если мы записали координаты в структуру kamer?


Структура состоящая из координат точки и радиуса - и есть ваша камера.

struct camera
{
int cX;
int cY;
int Ri;
}

char kamer_name[255] - это резервация памяти длиной 255 байт внутри структуры,
типа имя камеры , в качетве примера того,
что вы можете наращивать количество свойств обьекта описываемого структурой.


теперь вы можете создать массив камер


#define cam_num 5 \\ количество камер

camera cam_array[cam_num];


for ( xx =0 ; xx<cam_num; xx++)
{
cam_array[xx] - камера в итерации цикла из массива в зависимости
от значения xx
}


LimsЯи создали массив camer_name[255]

Это массив 255 байт, он вам для выполения заданий не понадобится
но может быть полезен для изучения....
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265530
LimsЯ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такое чувство что я головой об стену бьюсь, не могу понять, осознать что и как делать и использование структур мне не облегчило выполнение задания(
Code
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
#include <stdio.h>
#include <math.h>

	/*Обьявление структур Beginning*/
struct camer {					// camer
  int n;
  int xi,yi,ri;
  char camer_coordinates[255];
};
struct point {					// Точки
  int x,y, x1,y1, x2,y2;
};

	/*Начало программы*/
void main() {
	struct camer camer;				// |---Обьявляем как обычные ->
	struct point point;				// --->переменные --|

		printf("Введите количество камер: ");
		scanf("%d", &camer.n);

	/*Входные данные*/
int i,k;
	printf("Введите координаты для всех камер в формате [xi, yi, ri]:\n");
	for (i=0; i<camer.n; i++) {
		k++;
		printf("Камера №[%d]: ",k);
		scanf("%d%d%d", &camer.xi, &camer.yi, &camer.ri);
	}

		printf("Введите координаты точек Т,А,В в формате [x,y]:\n");
		printf("Введите точку Т: ");
		scanf("%d%d", &point.x, &point.y);
		printf("Введите точку A: ");
		scanf("%d%d", &point.x1, &point.y1);
		printf("Введите точку B: ");
		scanf("%d%d", &point.x2, &point.y2);

	/*Алгоритмы решения*/
int camer_array[];
	for(i=0; i<camer.n; i++) {
	  camer_array[];
	}
}

...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265566
569
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
569
Гость
LimsЯТакое чувство что я головой об стену бьюсь, не могу понять, осознать что и как делать и использование структур мне не облегчило выполнение задания(
Code
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
#include <stdio.h>
#include <math.h>

	/*Обьявление структур Beginning*/
struct camer {					// camer
  int n;
  int xi,yi,ri;
  char camer_coordinates[255];
};
struct point {					// Точки
  int x,y, x1,y1, x2,y2;
};

	/*Начало программы*/
void main() {
	struct camer camer;				// |---Обьявляем как обычные ->
	struct point point;				// --->переменные --|

		printf("Введите количество камер: ");
		scanf("%d", &camer.n);

	/*Входные данные*/
int i,k;
	printf("Введите координаты для всех камер в формате [xi, yi, ri]:\n");
	for (i=0; i<camer.n; i++) {
		k++;
		printf("Камера №[%d]: ",k);
		scanf("%d%d%d", &camer.xi, &camer.yi, &camer.ri);
	}

		printf("Введите координаты точек Т,А,В в формате [x,y]:\n");
		printf("Введите точку Т: ");
		scanf("%d%d", &point.x, &point.y);
		printf("Введите точку A: ");
		scanf("%d%d", &point.x1, &point.y1);
		printf("Введите точку B: ");
		scanf("%d%d", &point.x2, &point.y2);

	/*Алгоритмы решения*/
int camer_array[];
	for(i=0; i<camer.n; i++) {
	  camer_array[];
	}
}



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
struct camer {					// camer
  int n;  //  каков смысл   этого  поля структуры ?
  int xi,yi,ri; 
  char camer_coordinates[255]; //   и что это ?
};


int camer_array[];  /// в С так делать  нельзя, в скобках должно быть число. Почему  int ?


	for( i=0; i<camer.n;   // вам не предлагали делать   дерево  или список ....  камера  ничего  не знает  о других камерах...
     i++) {
	  camer_array[]; // Это что ? 
	}



вы должны для себя ответить на эти вопросы ,
мне можете не овечать.
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265579
LimsЯ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
569LimsЯТакое чувство что я головой об стену бьюсь, не могу понять, осознать что и как делать и использование структур мне не облегчило выполнение задания(
Code
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
#include <stdio.h>
#include <math.h>

	/*Обьявление структур Beginning*/
struct camer {					// camer
  int n;
  int xi,yi,ri;
  char camer_coordinates[255];
};
struct point {					// Точки
  int x,y, x1,y1, x2,y2;
};

	/*Начало программы*/
void main() {
	struct camer camer;				// |---Обьявляем как обычные ->
	struct point point;				// --->переменные --|

		printf("Введите количество камер: ");
		scanf("%d", &camer.n);

	/*Входные данные*/
int i,k;
	printf("Введите координаты для всех камер в формате [xi, yi, ri]:\n");
	for (i=0; i<camer.n; i++) {
		k++;
		printf("Камера №[%d]: ",k);
		scanf("%d%d%d", &camer.xi, &camer.yi, &camer.ri);
	}

		printf("Введите координаты точек Т,А,В в формате [x,y]:\n");
		printf("Введите точку Т: ");
		scanf("%d%d", &point.x, &point.y);
		printf("Введите точку A: ");
		scanf("%d%d", &point.x1, &point.y1);
		printf("Введите точку B: ");
		scanf("%d%d", &point.x2, &point.y2);

	/*Алгоритмы решения*/
int camer_array[];
	for(i=0; i<camer.n; i++) {
	  camer_array[];
	}
}



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
struct camer {					// camer
  int n;  //  каков смысл   этого  поля структуры ?
  int xi,yi,ri; 
  char camer_coordinates[255]; //   и что это ?
};


int camer_array[];  /// в С так делать  нельзя, в скобках должно быть число. Почему  int ?


	for( i=0; i<camer.n;   // вам не предлагали делать   дерево  или список ....  камера  ничего  не знает  о других камерах...
     i++) {
	  camer_array[]; // Это что ? 
	}



вы должны для себя ответить на эти вопросы ,
мне можете не отвечать.

до меня не доходит как мне реализовать запись x,y,z в массив что бы с ними работать(
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265583
569
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
569
Гость
LimsЯ,

Размереность массва структур типа камера в вашем случае
не содержится внутри в каком либо поле структуры камера ...

Структура отдельно , массив отдельно ...

представтьте структуру как строку ,
а массив как таблицу состоящую из строк
Массив позволяет вам обращаться к строкам по номеру элемента массива.

Собтсвенно в квадратный скобках у вас должно быть количество камер
при декларации масива ,
и номер камеры ( индекс массива) при обращении к свойствам камеры,
то есть вы обращаетесь к камере по номеру строки...
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265587
569
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
569
Гость
LimsЯ569пропущено...


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
struct camer {					// camer
  int n;  //  каков смысл   этого  поля структуры ?
  int xi,yi,ri; 
  char camer_coordinates[255]; //   и что это ?
};


int camer_array[];  /// в С так делать  нельзя, в скобках должно быть число. Почему  int ?


	for( i=0; i<camer.n;   // вам не предлагали делать   дерево  или список ....  камера  ничего  не знает  о других камерах...
     i++) {
	  camer_array[]; // Это что ? 
	}



вы должны для себя ответить на эти вопросы ,
мне можете не отвечать.

до меня не доходит как мне реализовать запись x,y,z в массив что бы с ними работать(

19354289
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265598
LimsЯ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
569LimsЯ
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
struct coordinates {				// Координаты
  int xi,yi,ri;
};
struct kamer {					// kamer
  int n;
  int cX,cY,Ri;
  char kamer_name[255];
};
struct point {					// Точки
  int x,y, x1,y1, x2,y2;
};



это получается что структура координат не понадобиться ?
если мы записали координаты в структуру kamer?


Структура состоящая из координат точки и радиуса - и есть ваша камера.

struct camera
{
int cX;
int cY;
int Ri;
}

char kamer_name[255] - это резервация памяти длиной 255 байт внутри структуры,
типа имя камеры , в качетве примера того,
что вы можете наращивать количество свойств обьекта описываемого структурой.


теперь вы можете создать массив камер


#define cam_num 5 \\ количество камер

camera cam_array[cam_num];


for ( xx =0 ; xx<cam_num; xx++)
{
cam_array[xx] - камера в итерации цикла из массива в зависимости
от значения xx
}


LimsЯи создали массив camer_name[255]

Это массив 255 байт, он вам для выполения заданий не понадобится
но может быть полезен для изучения....

Структура состоящая из координат точки и радиуса - и есть ваша камера.
Код: sql
1.
2.
3.
4.
5.
6.
7.
struct camera
{
int cX;
int cY;
int Ri;
}
Это  понял.




Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#define  cam_num 5 \\ количество камер 

camera  cam_array[cam_num];


for ( xx =0 ; xx<cam_num; xx++)
{
cam_array[xx]   -   камера  в   итерации цикла  из массива в зависимости 
от значения xx
}


Зачем создавать #define cam_num 5? если число камер задаёт пользователь
Как создать массив camera cam_array[cam_num];? int camera_array[n] так не пойдёт?
Код: sql
1.
2.
3.
4.
5.
6.
for ( xx =0 ; xx<cam_num; xx++)
{
cam_array[xx]   -   камера  в   итерации цикла  из массива в зависимости 
от значения xx
}
этот момент не понял как он будет писать вводимые координаты в массив?
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265613
569
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
569
Гость
LimsЯ
Зачем создавать #define cam_num 5? если число камер задаёт пользователь

Как создать массив camera cam_array[cam_num];? int camera_array[n] так не пойдёт?



Попробуйте сначала получить конечный результат
с фиксированным количество камер,


а потом допишете параметризацию количества камер
и выделения памяти
под массив камер заданных пользователем....
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39265615
569
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
569
Гость
LimsЯ
Как создать массив camera cam_array[cam_num];?

int camera_array[n] так не пойдёт?


Рекомендую открыть конспект и еще раз прочесть первые
лекции о принципах языка С ,
переменных , типах, обьявлениях переменных и типов итд....
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39266483
LimsЯ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Code
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
int function=0,id=0;
	for (i=0; i<camera.n; i++) {
		id++;
		function = (((point.x-A[i][0])*(point.x-A[i][0]))+((point.y-A[i][1])*(point.y-A[i][1]))); // (x-x0)^2+(y-y0)^2=R^2 где (x0;y0)-это центр окружности,R-это радиус;
			if (function<=pow(A[i+1][2],2)) {	//по теореме пифагора проверяем чтобы сумма квадратов координат точки 
				printf("№[%d] Камера охраны обнаружила нарушителя\n", id);
			}
			else {
				printf("№[%d] Камера охраны не обнаружила нарушителя\n", id);
			}



Решил задачу с записыванием в массив данных x,y,r - а вот с расчётом что то пошло не так,
ввожу значени, а результат не верен - вроде бы все формулы правильно написал.

в основном значение выводит что точка поподает в круг а на самом деле это не так, подскажите где я ошибся
...
Рейтинг: 0 / 0
Си [Направьте на путь правидный]
    #39266644
LimsЯ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо вам за помощь и советы в решении данной задачи) я подчеркнул для себя много нового)
...
Рейтинг: 0 / 0
14 сообщений из 64, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Си [Направьте на путь правидный]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]