| Текст подпрограммы и версий avz1r_c.zip avz1d_c.zip avz1c_c.zip | Тексты тестовых примеров tavz1r_c.zip tavz1d_c.zip tavz1c_c.zip | 
Вычисление суммы абсолютных значений компонент вектора или заданного подмножества компонент этого вектора.
Для заданного вектора V длины N вычисляется сумма абсолютных значений всех его компонент. Кроме того, может быть вычислена сумма абсолютных значений тех его компонент, индексы которых последовательно отстают друг от друга на величину istep.
    real avz1r_c (real *v, integer *n, integer *istep)
Параметры
| v - | вещественный одномерный массив длины n, в котором задаются компоненты вектора; | 
| n - | число компонент вектора (тип: целый); | 
| istep - | заданный шаг изменения индексов тех компонент, сумма абсолютных значений которых вычисляется (тип: целый). | 
Версии
| avz1d_c - | вычисление суммы абсолютных значений компонент вектора, заданного с удвоенной точностью, или заданного подмножества компонент этого вектора. | 
| avz1c_c - | вычисление суммы абсолютных значений компонент комплексного вектора или заданного подмножества компонент этого вектора. | 
Вызываемые подпрограммы: нет
Замечания по использованию
| В функции avz1d_c вектор V должен иметь тип double.В функции avz1c_c вектор V должен иметь тип complex. | 
int main(void)
{
    /* Initialized data */
    static float v[10] = { 1.f,2.f,3.f,4.f,5.f,6.f,7.f,8.f,9.f,10.f };
    /* Local variables */
    extern float avz1r_c(float *, int *, int *);
    static int n;
    static float y;
    static int istep;
    static float y1;
    n = 10;
    istep = 1;
    y = (float)avz1r_c(v, &n, &istep);
    n = 5;
    istep = 2;
    y1 = (float)avz1r_c(&v[1], &n, &istep);
    printf("\n  %16.7e \n", y);
    printf("\n  %16.7e \n", y1);
    return 0;
} /* main */
      y =  avz1r (v, n, istep)
Результат:    y = 55.