реализация массива на Фортране

Тема в разделе "Другие", создана пользователем o1ps, 5 апр 2007.

Статус темы:
Закрыта.
  1. o1ps

    o1ps Гость

    Подскажите пожалуйста как можно органиовать получение из одномерного массива допустим размером 10 двумерный массив 4*10, в котором каж-дая
    строка получена циклическим сдвигом исходного массива на заданное число позиций.
    Число позиций, на которые осуществляется сдвиг, например, 5,3,1,8.

    Знаю что это можно организовать оператором ISHIFTC(I, SHIFT, size).. но точно его применить не получается. Помогите пожалуйста.
     
  2. o1ps

    o1ps Гость

    Вот примерно что должно быть.. :


    Код (Text):
    DIMENSION A(10),B(4,10),C(4)
    INTEGER K,I;
    C(1)=5
    C(2)=3
    C(3)=1
    C(4)=8
    PRINT *,'ishodnii massiv A'
    DO K=1,10
    A(K)=K
    PRINT *,K
    END DO
    DO I=1,4
    DO K=1,10
    IF (K<11-C(I)) THEN
    B(I,K)=A(K+C(I))
    ELSE
    B(I,K)=A(K+C(I)-10)
    END IF
    END DO
    END DO
    PRINT *,'massiv B'
    DO I=1,4
    PRINT *,I
    DO K=1,10
    PRINT *,B(I,K)
    END DO
    END DO
    END

    Но такие вопросы :

    А если необходимо чтобы полученный двумерный массив 4*10 получался сдвигом исходного каждый раз?! Т.е. массив Б состоял из первого, который каждый раз смещается, а не сместился на 5, потом из уже из полученного еще раз смещаем на 3 и т.д.?!

    И не затруднит вас сказать как расположить массив не в столбец, а в строку?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей