게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
저 포트란 관련해서 질문이 있는데요
게시물ID : programmer_8941짧은주소 복사하기
작성자 : 밝은달사랑
추천 : 0
조회수 : 434회
댓글수 : 3개
등록시간 : 2015/03/27 17:22:01
옵션
  • 본인삭제금지
이번에 포트란77을 배우고 있는데 어째 제가 생각한 것과 출력이 다른데
제가 뭘 잘못생각하고 있는 건지 알려주세요.(공부에 도움이 되는 정도만요 답을 알려주지 마시구요.)

제가 하려는건 두행렬을 곱한 행렬을 구하는건데요.
중간에 if 조건으로 A의 행 크기와 B의 열 크기 같지 않으면 못 곱해가 출력되고 같으면 곱셈으로 진행되는건데
왜 때문인지 두 행렬의 크기를 2x2로 집어 넣었는데 못곱한다고 끝납니다.


      program arr1
     
      integer ia, ja, ib, jb, n, m
      real a(10, 10), b(10,10), C(10,10) ,adat, bdat
      n=0
      m=0
      open(100,file='output.dat')
     
      write(*,*) 'Array i and j maximum is 10'
      write(*,*) 'Array A is i size, ia ='
      read (*,*) ia
      write(*,*) 'Array A is j size, ja ='
      read (*,*) ia

      write(*,*) 'Array B is i size, ib ='
      read (*,*) ib
      write(*,*) 'Array B is j size, jb ='
      read (*,*) ib
     
      if(ia.EQ.jb) then

      do 10 n = 1,ja,1
        do 20 m = i,ia,1
            write(*,*) 'Array A(i,j) adat' 
            read(*,*) adat
            a(n,m) = adat
   20   continue
   10 continue
 
      n=0
      m=0
 
      do 30 n = 1,jb,1
        do 40 m = i,ib,1
            write(*,*) 'Array B(i,j) bdat'
            read(*,*) bdat
            a(n,m) = bdat
  40    continue
  30  continue 
 
      n=0
      m=0
      n1=0
      m2=0
 
      do 50 n = 1,ja,1
        do 60 m = 1,ia,1
            do 70 m1 = 1,ib,1
                do 80 n1 = 1,jb,1
                   c(n,m)=a(n,m)*b(n1,m1)
 80             continue
 70         continue
 60     continue
 50   continue
 
      write(100,*) 'Array C is =', c


      else
        write(*,*) 'Array A and B is not multiply'
      endif
 
      stop
      end
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호