24小时热门版块排行榜    

查看: 1018  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zyj8119

木虫 (著名写手)

[交流] 【求助】此FORTRAN90程序没有错误,但是运行不出来。

CODE:
MODULE convexity
  TYPE point
    COMPLEX::z
  END TYPE point
CONTAINS
  FUNCTION orientation(p,i) RESULT(orient)
  TYPE(point),DIMENSION(:),INTENT(in)::p
  INTEGER::i,n
  REAL::orient,f
  COMPLEX::z1,z2,z3
  f(z1,z2,z3)=REAL(z2-z1)*AIMAG(z3-z2)-REAL(z3-z2)*AIMAG(z2-z1)
  n=SIZE(p)
  IF(i==n-1)THEN
     orient=f(p(n-1).z,p(n).z,p(1).z)
  ELSE IF(i==n)THEN
     orient=f(p(n).z,p(1).z,p(2).z)
  ELSE
     orient=f(p(i).z,p(i+1).z,p(i+2).z)
  END IF
  END FUNCTION orientation
  !
   SUBROUTINE convex_polygon(p,convex)
   LOGICAL::convex
   TYPE(point),DIMENSION(:),INTENT(in)::p
   INTEGER::i,n,anticlockwise
   convex=.TRUE.;n=SIZE(P)
   IF(orientation(p,1)>0)THEN
      anticlockwise=1
   ELSE
      anticlocakwise=-1
   END IF
   DO i=2,n
       IF(anticlockwise*orientation(p,i)<0)THEN
           convex=.FALSE.;EXIT
           END IF
           END DO
           END SUBROUTINE convex_polygon
   END MODULE convexity
!
   PROGRAM test
   USE convexity
   INTEGER,parameter::n=6
   TYPE(point),DIMENSION(1:n)::polygon
   LOGICAL::convex
   INTEGER::i
   OPEN(1,FILE='convex')
   DO I=1,2
    READ(1,*)polygon
        CALL convex_polygon(polygon,convex)
        IF(convex==.TRUE.)PRINT*,'polygon is convex'
        IF(convex/=.TRUE.)PRINT*,'polygon is not convex'
   END DO
   END PROGRAM test

回复此楼

» 猜你喜欢

好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by janecool at 2010-08-29 10:03:47:
问题可能出自第一个DO循环里面,里面的N应该是一个已知量

什么意思?
好好学习,天天向上。
3楼2010-08-29 10:09:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

janecool

铁杆木虫 (著名写手)


zyj8119(金币+1):谢谢参与
问题可能出自第一个DO循环里面,里面的N应该是一个已知量
相信会有属于你的精彩
2楼2010-08-29 10:03:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

janecool

铁杆木虫 (著名写手)


zyj8119(金币+4):先尝试下看看。 2010-08-29 15:16:16
resonant(金币+1):感谢参与应助:-) 2010-08-29 19:54:03
引用回帖:
Originally posted by zyj8119 at 2010-08-29 10:09:13:

什么意思?

你可以先在do循环前给N赋予一个数值,看程序是否能运行,如果还不能,我现在也不知道是为什么。
相信会有属于你的精彩
4楼2010-08-29 10:15:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ifmc1234

木虫 (著名写手)

★ ★
zyj8119(金币+1):谢谢参与
nono2009(金币+1):鼓励应助。 2010-09-09 08:02:23
引用回帖:
Originally posted by zyj8119 at 2010-08-29 10:09:13:

什么意思?

你没把n定义为全局变量。所以在子模块里n值是0
5楼2010-09-08 18:48:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见