генерация пары чисел в порядке - PullRequest
0 голосов
/ 09 августа 2011

Мне нужна помощь в создании пары чисел в ордерах с использованием кода FORTRAN.

Порядок подобен следующему.

loop_1: 1,2 2,3 3,4 4,5 5,6 6,7 7,8 ..... until <= 2000

loop_2: 1,3 3,5, 5,7 7,9 9,11 11,13 ........until <= 2000

loop_3: 1,4, 4,7 7,10 10,13 13,17 ..... until <= 2000

loop_4: 1,5 5,9 9,13 13,17 17,21 .... until <= 2000

. , , , до цикла_100:

Я пробовал с простым кодом, таким как

program loopJump
implicit none
!

 integer :: i,j,k

 do k = 1, 6
 do i =  1, 5

    j=(i+k)

   print*, i,"   ",j

 enddo
 enddo

 stop
 end

Но я не могу получить, как я хотел.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 09 августа 2011

Это один из способов сделать это. РЕДАКТИРОВАТЬ: с правильным форматированием.

program loopJump

  implicit none
  !

  integer :: i,j,k
  integer :: loopend
  character(len=*),parameter :: fmt1 = "('loop_',I1,' ',I4)"
  character(len=*),parameter :: fmt2 = "(', ',I4,', ',I4 )"

  do k = 1, 6
     write(*,fmt1,advance='NO') k,1
     loopend = (2000-1)/k
     do i =  1, loopend

        j=1+i*k
        write(*,fmt2,advance='NO') j,j
     enddo
     write(*,fmt="(2X)")
  enddo

  stop

end program

EDIT2: После тщательного изучения, похоже, Kerrek SB ответил на этот вопрос ранее через комментарий выше.При таком методе цикл будет выглядеть так:

 do k = 1, 6
     write(*,fmt1,advance='NO') k,1
     do i =  k+1, 20, k
        write(*,fmt2,advance='NO') i,i
     enddo
     write(*,fmt="(2X)")
 enddo
0 голосов
/ 09 августа 2011

Я не знаю фортран, но этот псевдокод может вам помочь:

let i := 1
let n := 1

while i <= 100 do
  while n <= 2000 do
    print n
    n := n + i
    print ",", n, " "
  done
  print "\n"
  i := i + 1
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...