|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.ru/lib_na/cat/av_htm_c/avz2r_c.htm
Дата изменения: Mon Dec 22 11:40:10 2014 Дата индексирования: Sun Apr 10 02:22:09 2016 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий 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