Текст подпрограммы и версий avz2r_c.zip avz2d_c.zip avz2c_c.zip |
Тексты тестовых примеров tavz2r_c.zip tavz2d_c.zip tavz2c_c.zip |
Нахождение максимальной по модулю компоненты и ее индекса из всего вектора или из заданного подмножества компонент этого вектора.
avz2r_c находит максимальную по модулю компоненту вектора V длины N и ее индекс. Кроме того, может быть найдена максимальная по модулю компонента и ее индекс из множества тех компонент, индексы которых последовательно отстают друг от друга на величину ISTEP.
real avz2r_c (real *v, integer *n, integer *istep, integer *j)
Параметры
v - | вещественный одномерный массив длины n, в котором задаются компоненты исходного вектора; |
n - | заданное число компонент вектора (тип: целый); |
istep - | заданный шаг изменения индексов тех компонент вектора, из которых ищется максимальная по модулю; |
j - | целая переменная, содержащая индекс максимальной по модулю компоненты. |
Версии
avz2d_c - | нахождение максимальной по модулю компоненты и ее индекса из всего вектора, заданного с удвоенной точностью, или из заданного подмножества компонент этого вектора. |
avz2c_c - | нахождение максимальной по модулю компоненты и ее индекса из всего комплексного вектора или из заданного подмножества компонент этого вектора. |
Вызываемые подпрограммы: нет
Замечания по использованию
В функции avz2d_c вектор V должен иметь тип double. В функции avz2c_c вектор V должен иметь тип complex. |
int main(void) { /* Initialized data */ static float v[10] = { 1.f,2.f,3.f,4.f,5.f,4.f,3.f,2.f,1.f,0.f }; /* Local variables */ extern float avz2r_c(float *, int *, int *, int *); static int j, n; static float y; static int istep; n = 4; istep = 3; y = (float)avz2r_c(v, &n, &istep, &j); printf("\n %13.5e \n", y); printf("\n %5i \n", j); n = 10; istep = 1; y = (float)avz2r_c(v, &n, &istep, &j); printf("\n %13.5e \n", y); printf("\n %5i \n", j); return 0; } /* main */ Результаты: y = 5. , j = 5