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

  • Автор темы o1ps
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

o1ps

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

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

o1ps

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


Код:
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 и т.д.?!

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