- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码有效,除非我尝试使用函数计算数组中一组值的平均值。我省略了程序的大部分,因为不执行这些步骤一切运行良好。谢谢!
在我的主程序中,我有
averagecalc=average(array(stepsize),stepsize)
WRITE(*,*) averagecalc
FUNCTION average(array(),stepsize)
REAL,INTENT(IN),DIMENSION(stepsize)::array
INTEGER,INTENT(IN)::stepsize
average=SUM(array(stepsize))/stepsize
END FUNCTION
PROGRAM subroutines
IMPLICIT NONE
!variables
INTEGER:: i,stepsize,j,counts
CHARACTER:: choice
REAL,EXTERNAL:: functions,average
REAL:: a,function1,function2,function3,x,upperbound,lowerbound,averages,sums,averagecalc
REAL,ALLOCATABLE::array(:)
!formats
101 FORMAT(A) !single text element only
102 FORMAT() ! <description>
!-------Variable Definitions-------!
! INTEGER:
! i: used as a counter
! stepsize: the number of steps the user inputs
! j: used as a counter
! counts: used to keep track of steps
!
! CHARACTER:
! choice:
! REAL,EXTERNAL:
! functions:
! average:
! REAL:
!
!
!
!
!
!
!
!
!
!
!----------------------------------!
!<Begin Coding Here>
!Taking in information on which equation and bounds and stepsize
CALL section1(lowerbound,upperbound,stepsize,choice)
!Calculating equations based on choices and allocating array,writing out array
ALLOCATE(array(stepsize))
x=lowerbound
counts=0
WRITE(*,101) ' |----------------------|'
WRITE(*,101) ' |Step | x | f(x)|'
WRITE(*,101) ' |----------------------|'
DO i=1,stepsize
IF(choice.EQ.'A') THEN
array(i)=function1(x)
ELSE IF(choice.EQ.'B') THEN
array(i)=function2(x)
ELSE IF(choice.EQ.'C') THEN
array(i)=function3(x)
END IF
counts=counts+1
WRITE(*,'(I10,F10.3,F10.3)') counts,x,array(i)
x=x+(upperbound-lowerbound)/stepsize
END DO
!Writing the averages
averagecalc=average(array(stepsize),stepsize)
WRITE(*,*) averagecalc
END PROGRAM subroutines
!------------------------------------------------SECTION 1-------------------------------------------------
SUBROUTINE section1(lowerbound,upperbound,stepsize,choice)
IMPLICIT NONE
REAL,INTENT(OUT)::lowerbound,upperbound
INTEGER,INTENT(OUT):: stepsize
CHARACTER,INTENT(OUT):: choice
101 FORMAT(A) !single text element only
102 FORMAT() ! <description>
WRITE(*,101) 'Please choose one of the following choices with a capital letter;'
WRITE(*,*)
WRITE(*,101) 'A) f(x)=x^2+2*x+4'
WRITE(*,*)
WRITE(*,101) 'B) f(x)=|x+4|'
WRITE(*,*)
WRITE(*,101) 'C) f(x)=sin(x)+42'
READ(*,*) choice
IF(choice.EQ.'A') THEN
WRITE(*,*)
ELSE IF(choice.EQ.'B') THEN
WRITE(*,*)
ELSE IF(choice.EQ.'C') THEN
WRITE(*,*)
ELSE
STOP 'Please enter either A, B, or C'
END IF
WRITE(*,101) 'Please enter a lower bound'
READ(*,*) lowerbound
WRITE(*,101) 'Please enter a upper bound'
READ(*,*) upperbound
WRITE(*,101) 'Please enter a step size'
READ(*,*) stepsize
END SUBROUTINE section1
!-------------------------------------------------------functions------------------------------------------
FUNCTION function1(x)
REAL,INTENT(IN)::x
function1=((x**2)+(2*x)+4)
END FUNCTION
FUNCTION function2(x)
REAL,INTENT(IN)::x
function2=ABS(x+4)
END FUNCTION
FUNCTION function3(x)
REAL,INTENT(IN)::x
function3=sin(x)+42
END FUNCTION
!---------------------------------------average value--------------------------
FUNCTION average(array(),stepsize)
REAL,INTENT(IN),DIMENSION(stepsize)::array
INTEGER,INTENT(IN)::stepsize
average=SUM(array(stepsize))/stepsize
END FUNCTION
最佳答案
在您的代码中至少有一个语法错误会阻止编译,在这一行
FUNCTION average(array(),stepsize)
array
后面的空括号不允许。我个人不会删除它们,我会重写函数有点像
real function average(array)
real, dimension(:), intent(in) :: average
average = sum(array)/size(array)
end function average
end program subroutines
到源文件的末尾;和 contains
stepsize
的变量。它的使用和描述清楚地表明这实际上是多个步骤。您甚至会提示用户输入步长,但将响应视为若干步。那是错误的。
subroutines
的程序.什么 ?!
关于function - FORTRAN 95 在使用函数和函数中的预期形式参数列表时出现主程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798707/
我有一个主程序X,它从我的网络摄像头获取数据。 我想在执行时实时配置 X。 我知道这样做的常见方法之一是使用IPC,如命名管道/Unix套接字/互联网套接字等。但我想避免每个调用者必须单独打开套接字/
信号可以在任何线程或主程序本身中接收。我从主程序创建了一个辅助线程。所以我的程序中有两个线程 1. 主线程(进程本身) 2. 辅助线程。我只希望每当信号到达我的辅助线程时,它应该向我的主线程(程序)发
我在 java 中有一个主类,它调用 JFrame Two。 但在调用 JFrame Two 之前,我的主要检查一个条件,如果为真,则调用 JFrame One。 所以,我的 main 不扩展 JFr
我正在尝试编译一个 C++ 程序,但它不起作用。首先,我应该说 c++ 不是我真正了解的语言,我使用 Fortran。无论如何,主要的 c++ 程序调用一个 fortran 子例程。我可以编译这个子例
我正在尝试将 Rust 绑定(bind)到 nbdkit,但运气不佳。我需要制作一个 .so 文件,这很简单。 .so 文件必须有一个名为 plugin_init 的公共(public)函数,这也很简
QT 似乎是最好的跨平台 GUI 工具包。不幸的是,它是在 C++ 中,它与许多有趣的语言(例如 *nix 上的 D、Rust、Julia 和 Mono)的绑定(bind)要么不可用,要么没有维护。
我有一个 Maven 项目,它在 src 文件夹中的一个包中有 2 个主程序(MyTestApp_A 和 MyTestApp_B)。 如果我打开它们并单击运行按钮,我可以在 Eclipse 中运行这些
我是一名优秀的程序员,十分优秀!