ВУЗ:
Составители:
38
}
else
if(abs(X) < abs(Y) && SGN(f) * SGN(X) * SGN(Y) != SGN(da))
{
x = x + SGN(Y) * SGN(da); /* Изменение координаты
x */
f = f + 2 * X * SGN(Y) * SGN(da) + 1; /* Изменение
значения оценочной функции */
}
else {
x = x + SGN(Y) * SGN(da); /* Изменение координаты
x */
y = y - SGN(X) * SGN(da); /* Изменение координаты
y */
/* Изменение значения оценочной функции */
f = f +2 * (abs(X) - abs(Y)) * SGN (Y) * SGN(X) *
SGN(da)+ 2 * 1;
}
l = l + abs(x - codx) + abs(y - cody); /* Изменение
пройденного пути */
codx = x; cody = y; /* Установка переменных для передачи
исполнительному устройству */
printf("f=%d\tcodx=%d\tcody=%d\tl=%d\n", f, codx, cody, l);
/* Вывод результатов очередного шага алгоритма на экран */
}
/* Главная функция программы, с нее начинается выполнение */
int main() {
/* Вызов функции инициализации алгоритма оценочной функции
*/
init();
/* В этом месте можно передать начальные координаты cod_x и
cod_y (равные x_n и y_n) на исполнительное устройство */
/* Организация циклического вызова функции расчета очередного
шага оценочной функции до тех пор пока текущий пройденный путь
меньше полной длины пути по дуге */
while(l < L) {
circle();
/* В этом месте можно передать рассчитанные координаты
cod_x и cod_y на исполнительное устройство */
}
return 0; /* Завершение главной функции программы */
}
} else if(abs(X) < abs(Y) && SGN(f) * SGN(X) * SGN(Y) != SGN(da)) { x = x + SGN(Y) * SGN(da); /* Изменение координаты x */ f = f + 2 * X * SGN(Y) * SGN(da) + 1; /* Изменение значения оценочной функции */ } else { x = x + SGN(Y) * SGN(da); /* Изменение координаты x */ y = y - SGN(X) * SGN(da); /* Изменение координаты y */ /* Изменение значения оценочной функции */ f = f +2 * (abs(X) - abs(Y)) * SGN (Y) * SGN(X) * SGN(da)+ 2 * 1; } l = l + abs(x - codx) + abs(y - cody); /* Изменение пройденного пути */ codx = x; cody = y; /* Установка переменных для передачи исполнительному устройству */ printf("f=%d\tcodx=%d\tcody=%d\tl=%d\n", f, codx, cody, l); /* Вывод результатов очередного шага алгоритма на экран */ } /* Главная функция программы, с нее начинается выполнение */ int main() { /* Вызов функции инициализации алгоритма оценочной функции */ init(); /* В этом месте можно передать начальные координаты cod_x и cod_y (равные x_n и y_n) на исполнительное устройство */ /* Организация циклического вызова функции расчета очередного шага оценочной функции до тех пор пока текущий пройденный путь меньше полной длины пути по дуге */ while(l < L) { circle(); /* В этом месте можно передать рассчитанные координаты cod_x и cod_y на исполнительное устройство */ } return 0; /* Завершение главной функции программы */ } 38
Страницы
- « первая
- ‹ предыдущая
- …
- 36
- 37
- 38
- 39
- 40
- …
- следующая ›
- последняя »