[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