ВУЗ:
Составители:
36
codx = x; cody = y;
if l < L then TAKT = TAKT + 1
else TAKT = 1
RETURN
Ниже приводится листинг программы на языке Си, которая реализует
алгоритм оценочной функции, приведенный выше, с небольшими
модификациями. Скорость подачи принята 1 шаг за один цикл алгоритма,
направление движения по окружности зависит от введенных координат
центра, начальной и конечной точек.
#include <stdio.h> /* Подключение библиотеки стандартных
функций ввода-вывода */
#include <math.h> /* Подключение библиотеки
математических функций */
#define PI 3.1415 /* Определение числа π */
#define SGN(a) (((a) >= 0) ? 1 : -1) /* Определение макроса
для вычисления знака переменной; макрос возвращает 1, если
значение переменной ≥0 и возвращает -1, если значение переменной
<0 */
int x_n, y_n, x_k, y_k, I, J; /* Объявление целочисленных
входных переменных для алгоритма: x_n – начальная точка по оси
X, y_n – начальная точка по оси Y, x_k – конечная точка по оси
X, y_k – конечная точка по оси Y, I – координата центра по оси
X, J – координата центра по оси Y */
int x, y, r, codx, cody, f, L, l, X, Y; /* Объявление
целочисленных внутренних переменных алгоритма: x, y – текущие
координаты, r – радиус дуги, codx, cody – переменные для
передачи координат исполнительному устройству, f – значение
оценочной функции, L – полная длина пути по дуге, l – текущая
пройденная длина, X, Y – разница между текущими координатами и
центром окружности */
float a_n, a_k, da; /* Объявление вещественных внутренних
переменных алгоритма: a_n – начальный угол в радианах, a_k –
конечный угол в радианах, da – отрабатываемый по дуге угол (a_k
– a_n) */
/* Определение функции инициализации алгоритма */
void init() {
printf("Введите x_n, y_n, x_k, y_k, I, J: "); /* Вывод
сообщения с просьбой ввести значения входных переменных */
scanf("%d %d %d %d %d %d", &x_n, &y_n, &x_k, &y_k, &I, &J);
/* Ввод входных переменных пользователем */
r = sqrt((x_n - I)*(x_n - I) + (y_n - J) * ( y_n - J));
/* Вычисление радиуса дуги */
codx = x; cody = y; if l < L then TAKT = TAKT + 1 else TAKT = 1 RETURN Ниже приводится листинг программы на языке Си, которая реализует алгоритм оценочной функции, приведенный выше, с небольшими модификациями. Скорость подачи принята 1 шаг за один цикл алгоритма, направление движения по окружности зависит от введенных координат центра, начальной и конечной точек. #include/* Подключение библиотеки стандартных функций ввода-вывода */ #include /* Подключение библиотеки математических функций */ #define PI 3.1415 /* Определение числа π */ #define SGN(a) (((a) >= 0) ? 1 : -1) /* Определение макроса для вычисления знака переменной; макрос возвращает 1, если значение переменной ≥0 и возвращает -1, если значение переменной <0 */ int x_n, y_n, x_k, y_k, I, J; /* Объявление целочисленных входных переменных для алгоритма: x_n – начальная точка по оси X, y_n – начальная точка по оси Y, x_k – конечная точка по оси X, y_k – конечная точка по оси Y, I – координата центра по оси X, J – координата центра по оси Y */ int x, y, r, codx, cody, f, L, l, X, Y; /* Объявление целочисленных внутренних переменных алгоритма: x, y – текущие координаты, r – радиус дуги, codx, cody – переменные для передачи координат исполнительному устройству, f – значение оценочной функции, L – полная длина пути по дуге, l – текущая пройденная длина, X, Y – разница между текущими координатами и центром окружности */ float a_n, a_k, da; /* Объявление вещественных внутренних переменных алгоритма: a_n – начальный угол в радианах, a_k – конечный угол в радианах, da – отрабатываемый по дуге угол (a_k – a_n) */ /* Определение функции инициализации алгоритма */ void init() { printf("Введите x_n, y_n, x_k, y_k, I, J: "); /* Вывод сообщения с просьбой ввести значения входных переменных */ scanf("%d %d %d %d %d %d", &x_n, &y_n, &x_k, &y_k, &I, &J); /* Ввод входных переменных пользователем */ r = sqrt((x_n - I)*(x_n - I) + (y_n - J) * ( y_n - J)); /* Вычисление радиуса дуги */ 36
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »