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

Знаю что это можно организовать оператором ISHIFTC(I, SHIFT, size).. но точно его применить не получается. Помогите пожалуйста.
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 и т.д.?!

И не затруднит вас сказать как расположить массив не в столбец, а в строку?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.