2012-03-20 14 views
5

tôi sử dụng Fortran và tôi đã tự hỏi nếu nó có thể làm cho một cái gì đó như thếVòng trong Fortran từ một danh sách

do i = array 
    write (*,*) i 
    end do 

nơi mảng là một danh sách các số nguyên không nhất thiết phải đặt hàng.

Trả lời

6

tôi sẽ giới thiệu một chỉ số thứ hai để lặp qua các phần tử của một mảng:

program test 

    implicit none 

    integer, dimension(6) :: A 
    integer, dimension(10) :: B 
    integer    :: i, j 

    A = (/ 1, 3, 4, 5, 8, 9 /) 
    B = (/ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 /) 

    do j = 1, size(A) 
    i = A(j) 
    write(*,*) i, B(i) 
    end do 

end program test 
2

Bạn có nghĩa là bạn muốn viết một số thành phần của một mảng có tên là other_array nhưng không phải tất cả trong số chúng và lần lượt là số i, giá trị tùy ý? Nói cách khác bạn muốn in không

do i = 1, size(other_array,1) 
    write(*,*) other_array(i) 
end do 

nhưng cái gì đó như

array = [1,3,4,2,3,7,8,8,12] 
write(*,*) another_array(array) 

mà sẽ viết các yếu tố của another_array quy định tại array? Điều này được gọi là mảng chỉ số. Tôi đã không thử nghiệm này và tôi đang đi ra ngoài bây giờ như vậy sẽ không.