²é¿´: 549  |  »Ø¸´: 4

zyj8119

ľ³æ (ÖøÃûдÊÖ)

[½»Á÷] ¡¾ÇóÖú¡¿Ò»¸ö³ÌÐòÔËÐв»³öÀ´£¬Çë½Ì¡£¡£¡£¡£¡¾ÒÑÍê½á¡¿

CODE:
PROGRAM main
IMPLICIT NONE
INTERFACE OPERATOR(-)
FUNCTION oct_minus(a,b) RESULT(c)
INTEGER,INTENT(in)::a,b
INTEGER::c
END FUNCTION oct_minus
END INTERFACE
INTEGER::octa,octb,octc
OPEN(1,FILE='MYF1.OUT')
octa=2557;octb=2446;octc=octa-octb
WRITE(1,*)octa,octb,octc
octa=7654321;octb=1234567;octc=octa-octb
WRITE(1,*)octa,octb,octc
END PROGRAM main
!
FUNCTION oct_minus(a,b) RESULT(c)
INTEGER,DIMENSION(1:10)::work1,work2,work3
INTEGER::a,b,c,i,k,temp,octcarry
octcarry=0;work1=separate(a);work2=separate(b)
DO i=10,1,-1
IF(work(i)   work1(i)=8+work1(i);work1(i-1)=work1(i-1)-1
END IF
temp=work1(i)-work2(i)+octcarry
work3(i)=MOD(temp,8);octcarry=temp/8
END DO
DO i=1,10
IF(work3(i)/=0)THEN
  k=i;EXIT
END IF
END DO
c=0
DO i=k,10
c=c*10+work3(i)
END DO
CONTAINS
FUNCTION separate(a) RESULT(work)
INTEGER::a,k,tmp,work(10)
work=0;tmp=a;k=10
DO WHILE(tmp/=0)
  work(k)=MOD(tmp,10);tmp=tmp/10;k=k-1
END DO
END FUNCTION separate
END FUNCTION oct_minus

[ Last edited by nono2009 on 2010-9-30 at 08:25 ]
»Ø¸´´ËÂ¥
ºÃºÃѧϰ£¬ÌìÌìÏòÉÏ¡£
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zyj8119

ľ³æ (ÖøÃûдÊÖ)

ÒýÓûØÌû:
Originally posted by zyj8119 at 2010-09-24 15:56:32:
[code]PROGRAM main
IMPLICIT NONE
INTERFACE OPERATOR(-)
FUNCTION oct_minus(a,b) RESULT(c)
INTEGER,INTENT(in)::a,b
INTEGER::c
END FUNCTION oct_minus
END INTERFACE
INTEGER:cta,octb,octc
...

--------------------Configuration: rrr - Win32 Debug--------------------
Compiling Fortran...
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\My Projects\rrr.f90
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\My Projects\rrr.f90(4) : Error: The type/rank for the arguments of this specific function for a defined OPERATOR redefines intrinsic expression operations.   [OCT_MINUS]
FUNCTION oct_minus(a,b) RESULT(c)
----------^
Error executing df.exe.

rrr.obj - 1 error(s), 0 warning(s)
ºÃºÃѧϰ£¬ÌìÌìÏòÉÏ¡£
2Â¥2010-09-24 15:59:39
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

hakekill

ľ³æ (СÓÐÃûÆø)

¡ï
nono2009(½ð±Ò+1):¹ÄÀø½»Á÷ 2010-09-30 08:24:40
rrr.f90ÀïÃæÄãÖØÐ¶¨ÒåÁËÄÚ²¿ÔËËã·û¡£

ÎÒ¸öÈ˾õµÃÄã²»ÐèÒªÖØÐ¶¨Òå¼õºÅÔËËã·û£¬Ö±½Óoct_minus¾ÍÐÐÁË£¬±Ï¾¹Äã²»ÊÇÕë¶Ô×Ô¶¨ÒåÀàÐÍÀ´×ö¼õ·¨¡£
3Â¥2010-09-25 14:26:37
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
ÓàÔó³É:Çë²»ÒªÔÚרҵ°æÓô¿±í»Ø¸´£¬Ï²»ÎªÀý£¡ 2010-09-25 23:08:40
4Â¥2010-09-25 14:30:46
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zyj8119

ľ³æ (ÖøÃûдÊÖ)

nono2009:»¶Ó­·ÖÏí½â¾ö·½°¸¡£ 2010-09-30 08:24:55
´ËÎÊÌâ½â¾ö£¬½áÌù¡£
ºÃºÃѧϰ£¬ÌìÌìÏòÉÏ¡£
5Â¥2010-09-28 08:41:26
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ zyj8119 µÄÖ÷Ìâ¸üÐÂ
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û