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

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

o1ps

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

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

o1ps

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


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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!