[P&AM Lab] Программа, считающая траекторию под речкой.

Егор Одинцов rg-400 на list.ru
Пт Мар 4 11:19:43 MSK 2011


03.03.2011 23:57, Константин Никулов пишет:
> Написал программу для прокладки кратчайшей траектории под дном речки на расстоянии от дна не менее 1,5 единицы с помощью роющей машины, которая может рыть под под наибольшим углом 7 градусов.
>
> Задается: количество точек, в которых задается глубина, глубина в каждой из этих точек и длина интервала между точками.
> Выводится: направление роющей машины в каждой точке и глубина от поверхности речки в каждой точке, а так же как далеко от речки машина зайдет под землю и выйдет из под нее, а так же соответствующие углы.
>
> Наверняка куча ошибок, и нету комментов, но скоро сброшу версию с ними.
Было  бы здорово, если бы ты сразу тут идею рассказал.
Вроде ты выбираешь самую глубокую точку и идешь
вправо(там тоже выбираешь самую глубокую точку)
и т.д...., а затем влево аналогично?
Еще нужно бы уточнить угол может быть от 0 до 7,
если да то нужно бы еще между максимумами
выбирать углы так, чтобы они образовывали ломанную
близкую к прямой.

Насчет функций:

int left_deepest(int start, float *set)
int right_deepest(int start, float *set)

Они обе ищут максимум в каком-то массиве, так что лучше будет использовать функцию с понятным названием
int max_array_value(float *arr, int size) и с таким же как у тебя наполнением:

int
max_array_value(float *arr, int size)
{
	float max;
	int idx, i;

	if (size == 0)
		return -1;

	idx = 0;	/* считаем, что максимальный элемент это первый */
	max = arr[0];
	
	for (i = 0; i<  size; i++)
		if (max<  arr[i]) {
			max = arr[i];
			idx = i;
		}

	return idx;
}
И теперь лишь нужно вычислять адрес первого элемента и размер.





Подробная информация о списке рассылки Lab