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

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

o1ps

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

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


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

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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab