fortran循环结构及基本语句..

合集下载

fortran教程

fortran教程

fortran教程Fortran是一种编程语言,用于科学和工程计算。

它具有高性能和可靠性,适用于大规模的数值计算和数据处理。

Fortran的基本语法是由一系列语句组成的程序。

每个语句都以一个数字标签开头,可用于控制程序的执行顺序。

以下是Fortran的一些基本语法和常用功能。

1. 变量和数据类型Fortran支持多种数据类型,包括整数(Integer)、实数(Real)和字符(Character)。

变量声明可以在程序的开头部分完成,例如:```fortranINTEGER :: iREAL :: xCHARACTER(len=10) :: name```注意,每个变量声明必须以两个冒号(::)开头。

2. 数学运算Fortran提供了一系列的数学运算符,用于执行基本的算术和逻辑运算,例如加法(+)、减法(-)、乘法(*)、除法(/)和求余(MOD)。

运算符的使用与其他编程语言相似。

3. 控制结构Fortran支持常用的控制结构,例如条件语句(IF-ELSE)和循环语句(DO LOOP)。

条件语句可以根据条件来执行不同的代码块,例如:```fortranIF (i > 0) THENPRINT*, 'i is positive'ELSEPRINT*, 'i is non-positive'END IF```循环语句可以根据条件重复执行一部分代码,例如:```fortranDO i = 1, 10PRINT*, iEND DO```上述代码将打印出1到10的数字。

4. 数组和矩阵运算Fortran支持多维数组和矩阵运算。

声明数组时可以指定维度和元素类型,例如:```fortranREAL, DIMENSION(3,3) :: matrix```然后,可以使用多个索引访问数组元素,例如:```fortranmatrix(1,2) = 3.14```这将给数组中的第1行第2列的元素赋值为3.14。

fortran中do循环用法

fortran中do循环用法

fortran中do循环用法Fortran中的do循环是一种非常常见的循环结构,用于重复执行一段代码块。

do循环有多种用法,下面将详细介绍。

1. 基本用法do循环最基本的用法是指定一个循环变量和一个循环范围,例如:```do i = 1, 10! 待执行的代码块end do```上述代码表示从1到10依次对i进行赋值,并执行待执行的代码块。

在每次循环中,i的值都会自动递增1。

2. 指定步长有时候需要指定循环变量每次递增或递减的步长,可以使用step参数实现,例如:```do i = 1, 10, 2! 待执行的代码块end do```上述代码表示从1到10以步长2依次对i进行赋值,并执行待执行的代码块。

在每次循环中,i的值都会自动递增2。

3. 循环嵌套在实际应用中,经常需要在一个循环内部再嵌套另一个循环来完成更复杂的任务。

例如:```do i = 1, 10do j = 1, 5! 待执行的代码块end doend do```上述代码表示先对i进行循环,每次循环内部再对j进行循环,执行待执行的代码块。

在每次循环中,i和j的值都会自动递增1。

4. 循环控制有时候需要在循环内部根据一些条件来控制循环的执行。

Fortran提供了break和cycle语句来实现。

break语句用于跳出当前循环,例如:```do i = 1, 10if (i == 5) thenexit ! 跳出当前循环end if! 待执行的代码块end do```上述代码表示当i等于5时跳出当前循环。

cycle语句用于跳过当前迭代,直接进入下一次迭代,例如:```do i = 1, 10if (mod(i,2) == 0) thencycle ! 跳过偶数迭代end if! 待执行的代码块end do```上述代码表示当i为偶数时跳过当前迭代,直接进入下一次迭代。

以上就是Fortran中do循环的详细用法介绍。

通过合理使用do循环和相关语句可以使程序更加简洁高效。

fortran教程[技巧]

fortran教程[技巧]

前言FORTRAN90的新特性1、淘汰了所有转移语句,增加了新的控制结构,使程序结构化。

增加了结构块,模块及过程的调用灵活形式。

2、加强数组的算法功能。

提出超载概念与实现方法。

提高了文字处理功能。

3、更接近自然语言与公式演算。

允许在字符数据用选取不同种别。

特别:语句书写对列的要求放宽:一般一行写一条语句(也可也多个语句,用“;”分隔),没有标号区、续行区、正文区的区别。

一行最多为132列,可以在任何列处中断语句,中断处写一个“&”,随后在下一行任意列处继续。

一个语句最长不能超过2640个字符。

语句结尾不可有标号、符号。

注释以“!”开始,可以位于任何位置。

***以下只讨论与FORTRAN77不相同处。

第一章FORTRAN90的基本语句第一节类型说明语句1、变量名全长不得超过31个字符。

2、变量类型定义:INTEGER::X,YREAL::ACOMPLEX::B,C,D3、建议淘汰隐式说明,在程序说明部分一开始就写:IMPLICIT NONE向系统声明不使用隐式说明。

4、可以在变量说明时就置初值。

如:REAL::X=1.1,Y,Z=2.25、种别——决定变量的精度和所占内存单元数。

a.如:REAL(KIND=2)::X 说明变量X为REAL型,种别为2。

KIND是种别说明关键字。

如没有种别说明,则采用系统省缺值。

b.有关函数:KIND(X) 返回X的种别参数。

当X取常数0时,返回省缺种别参数。

如KI ND(0)、KIND(0.0)、KIND(.FALSE.)、KIND('A')分别返回整型、实型、逻辑型、字符型的省缺种别参数。

SELECTED_REAL_KIND(N,M) 返回种别参数,使之满足十进制有效位为N, 值范围在10**(-M)和10**M之间的实数。

SELECTED_INT_KIND(N,M) 与上类似,选择整型类别。

c.常数类别表示对数值型常数、逻辑型常数用后缀法,即在常数后加一下划线,再跟种别参数。

fortran循环结构及基本语句

fortran循环结构及基本语句

fortran循环结构及基本语句Fortran中的循环结构包括DO循环和DO WHILE循环。

基本语句包括赋值语句、条件语句和IO语句。

1.DO循环结构:DO循环结构用于重复执行一段代码块,语法如下:DO variable = start, end, step!代码块ENDDO在循环开始前,将变量初始化为start的值,然后执行代码块。

然后将变量增加step的值,并检查是否达到end的值,如果没有达到则继续执行代码块,直到达到end的值为止。

2.DOWHILE循环结构:DOWHILE循环结构用于在满足条件时重复执行一段代码块,语法如下:DO WHILE (condition)!代码块ENDDO在每次循环开始前,检查condition是否为真,如果为真则执行代码块,然后再次检查condition。

只有当condition为假时,循环才会结束。

3.赋值语句:赋值语句用于将一个值赋给一个变量,语法如下:variable = expression可以使用算术运算符和函数来计算expression的值,并将结果赋给变量。

4.条件语句:条件语句用于根据条件选择执行不同的代码块,常用的条件语句有IF语句和SELECTCASE语句。

-IF语句的语法如下:IF (condition) THEN!代码块1ELSE IF (condition) THEN!代码块2ELSE!代码块3ENDIF根据condition的值选择执行代码块1、代码块2或代码块3-SELECTCASE语句的语法如下:SELECT CASE (expression)CASE (value1)!代码块1CASE (value2)!代码块2CASEDEFAULT!代码块3ENDSELECT根据expression的值选择执行相应的代码块,如果没有匹配的值,则执行默认的代码块。

5.IO语句:IO语句用于输入和输出数据,常用的IO语句有WRITE和READ语句。

Fortran PPT课件1 (9)DO循环结构

Fortran PPT课件1 (9)DO循环结构

3.2 DO循环结构
DO循环结构的一般形式为
[name:] do [label[,]] [loop_control] block [label] term_stmt [name]
name为循环的名字,可省略; Label为循环终端语句的标号,可省略, 如果使用,则do后面的标号必须和循环 终端语句的标号一致; loop_control循环的控制部分,有三种选 择,(1) i=e1,e2[,e3],(2) while(e), (3)省略
3.2 DO循环结构
FORTRAN 77经常用CONTINUEounter=2, limit, 2 ans=ans+counter continue
3.2 DO循环结构
Do i=e1, e2 [, e3]
1) 计数增值e3可以为负数,则终值e2必须小于起始 值,才能循环。例: do i=10, 1, -1 write (*, *) I end do 作计数器的变量I, 在循环的程序模块中不能再使 用命令来改变它的数值, 不然在编译中会发生 错误 do i=1, 10 i=i+1 end do
3.2 DO循环结构
计数型DO循环
d o [la b e l,] i= e 1 ,e 2 [,e 3 ] 循环体 [lab el]term _ stm t
do count = 1, lines, 1 …… …… …… …… 循环计数器 end do
计数器增量
计数器终止值
3.2 DO循环结构
3.2 DO循环结构
program ex0601 implicit none integer counter integer, parameter :: lines=10 ! counter<=lines之前会一直重复循环 ! 每跑一次循环counter会累加1 do counter=1,lines,1 write(*,*) "Happy Birthday",counter end do stop end Counter=1 1

FORTRAN95第三章循环程序设计

FORTRAN95第三章循环程序设计

FORTRAN95第三章循环程序设计第三章的内容包括:1.DO循环:DO循环是FORTRAN中最基本的循环结构。

它允许我们指定循环变量的初始值、结束值和步长。

在每次循环迭代时,循环变量都会自动更新,并且在达到结束值时退出循环。

2.嵌套循环:FORTRAN也支持嵌套循环,这是在一个循环内部使用另一个循环。

嵌套循环使得我们能够处理更加复杂和具有分层结构的问题。

3.WHILE循环:FORTRAN还提供了类似于其他编程语言中的WHILE循环。

WHILE循环允许我们在循环前先检查一个条件,并且只要条件为真,就会继续执行循环体。

4.无限循环:有时候需要创建一个无限循环,即一个永远不会结束的循环。

在FORTRAN中,我们可以使用无条件的循环退出语句来跳出循环。

5.循环控制:在循环内部,我们可以使用控制语句来控制循环的执行方式。

这些控制语句包括CONTINUE、EXIT、CYCLE和END。

6.循环的应用:循环结构在许多数学和科学计算问题中都有广泛应用,如求和、求平均值、计算阶乘、寻找最大和最小值等。

循环程序设计是编程中非常重要的一部分,因为它可以帮助我们处理大数据集和执行复杂算法。

FORTRAN95提供了一系列强大的循环结构,使得我们能够更加灵活和高效地处理各种问题。

在循环程序设计中,重点应该放在优化循环的执行。

通过合理地选择循环变量的初始值、结束值和步长,以及使用合适的循环控制语句,可以使循环更加高效。

此外,避免在循环体内进行过多的计算和IO操作,可以减少循环的执行时间。

总之,循环程序设计是编程中一个基本但重要的概念。

FORTRAN95提供了丰富的循环结构和控制语句,使得我们能够更加高效地处理各种问题。

在实际应用中,我们应该根据具体问题的要求,合理选择和优化循环结构,以求得更好的性能和效果。

fortran中loop_time的使用方法 -回复

fortran中loop_time的使用方法 -回复

fortran中loop_time的使用方法-回复Fortran是一种古老且广泛使用的编程语言,特别适用于科学计算和数值分析。

在Fortran中,循环结构是编写程序时经常用到的一种重要工具。

循环可以让程序重复执行一段代码块,直到满足特定条件为止。

loop_time 是Fortran中循环结构的一个重要组成部分,它可以用来控制循环的次数。

本文将一步一步地解释loop_time在Fortran中的使用方法并提供一些示例。

首先,让我们了解一下Fortran中的循环结构。

循环结构通常使用do关键字来定义,其基本语法如下:Fortrando index = start, stop, step! 执行的代码块end do其中,index是用于迭代的循环变量,start是循环变量的初始值,stop 是循环变量的结束值,step是循环变量每次迭代的步长。

现在,让我们开始介绍loop_time的使用方法。

loop_time是一个整数变量,用于指定循环的次数。

在循环结构中,可以使用该变量来控制循环的次数。

要使用loop_time,首先需要在程序中声明并初始化该变量。

在Fortran 中,可以使用以下语句来声明和初始化变量:Fortraninteger :: loop_time = 10上述语句将声明一个名为loop_time的整数变量,并将其初始化为10。

接下来,在循环结构中使用loop_time来控制循环的次数。

例如,我们想要重复执行某个代码块10次,可以使用以下代码:Fortrando i = 1, loop_time! 执行的代码块end do在上述代码中,循环变量i的初始值为1,结束值为loop_time的值(即10),每次迭代的步长为1。

因此,代码块将会被执行10次。

需要注意的是,循环变量的类型必须与loop_time的类型相匹配。

在上述示例中,循环变量i被声明为整数类型,与loop_time的整数类型相匹配。

第5章 循环 fortran

第5章 循环 fortran

例5-2 使用循环来计算2+4+6+8+10 PROGRAM EX0502 IMPLICIT NONE INTEGER, PARAMETER :: LIMIT=10 ! 计数器的上限 INTEGER COUNTER ! 计数器 INTEGER :: ANS = 0 ! 拿来累加使用 DO COUNTER=2, LIMIT, 2 ANS = ANS + COUNTER END DO WRITE(*,*) ANS ! STOP END

1.确定性循环
(1)变量用来控制循环次数,一般称为循环变量; (2)表达式1 代表循环变量的初值; (3)表达式2 代表循环变量的终值; (4)表达式3 代表循环变量的步长,缺省步长为1。 (5)循环次数的计算按下面公式:
MAX ((表达式2 - 表达式1+ 表达式 3)/表达式3,0)

例5-3 DO 循环的嵌套使用
PROGRAM EX0503 IMPLICIT NONE INTEGER I, J DO I=1, 3 DO J=1, 3 WRITE ( *, "(I2, I2)" ) I, END DO WRITE (*,*) "ANOTHER CYCLE" END DO END 显式循环(DO END DO)

第三节 循环结构
署名的循环
例5-8
功能是循环时能明确地知道END DO这个描述的位置是否正确 。
PROGRAM EX0508 IMPLICIT NONE INTEGER :: I, J OUTER: DO I=1, 3 ! 循环取名为OUTTER INNER: DO J=1, 3 ! 循环取名为INNER WRITE ( *, " ('( ',I2,' ,' ,I2, ') ') " ) I,J END DO INNER ! 结束INNER这个循环 END DO OUTER ! 结束OUTTER这个循环 !STOP END

Fortran循环结构

Fortran循环结构
INTEGER :: X=0,Y=0 DO X=X+1 IF (MOD(X,2)==0) THEN CYCLE ELSE IF (X>100) THEN EXIT ELSE Y=Y+X END IF END DO PRINT *,Y END
4.2 DO WHILE语句(当型循环)
DO WHILE循环一般格式: DO WHILE (逻辑表达式) 循环体 END DO
程序2:用DO WHILE循环实现 IMPLICIT NONE INTEGER M, I(M)) DO WHILE(I<=J.AND.MOD(M, I)/=0) I=I+1 END DO IF (I>J.AND.M>1) THEN PRINT *,M,’ is a prime number’ ELSE PRINT *,m,’ is not prime number’ END IF END
3. 退出循环后循环变量的值与最后一次循环时 循环变量的值不同,前者比后者多一个步长。
P47 例: DO K=1, 10, 2 L=K END DO PRINT *, K, L END
执行结果: 11 9
P48 例4.1 求
x2 x3 xn y 1 x 2! 3! n!
累加和递推式为:Yi=Yi-1+Fi 累加项F的递推式为: Fi=Fi-1*X/I READ *, X, N F=1.0 Y=1.0 DO I=1, N F=F*X/I Y=Y+F END DO PRINT *, ’Y=’, Y END
4.3 几种循环组织方式的比较
P55 例4.11 输入一个整数m,判断是否素数。
程序1:用DO循环实现。 IMPLICIT NONE INTEGER M, I, J READ *, M J=SQRT(REAL(M)) DO I=2, J IF (MOD(M, I)==0) EXIT END DO IF (I>J.AND.M>1) THEN PRINT *, M, ’ is a prime number’ ELSE PRINT *, m, ’ is not prime number’ END IF END

fortran中loop_time的使用方法

fortran中loop_time的使用方法

fortran中loop_time的使用方法Fortran语言是一种广泛用于科学计算和工程计算的编程语言。

在Fortran中,loop_time(循环时间)是指在编写程序时,通过循环结构控制程序的执行次数和循环时间的参数。

使用循环结构可以使程序执行特定的任务多次,从而提高代码的重用性和效率。

本文将介绍Fortran中loop_time的使用方法,以帮助读者更好地理解和使用该语言特性。

在Fortran中,循环结构主要通过do循环语句来实现。

do循环语句有三种常见形式:do循环、do while循环和do until循环。

这些循环结构都可以用来控制loop_time,即循环执行的次数。

1. do循环do循环是Fortran中最常见的循环结构,用于指定循环次数。

其语法形式如下:```fortrando i = start, end, step! 循环执行的语句块end do```其中,start表示循环起始值,end表示循环结束值,step表示每次循环增加或减少的步长,默认为1。

在每次循环执行时,循环变量i会自动递增或递减,直到满足结束条件为止。

示例代码如下:```fortranprogram do_loop_exampleimplicit noneinteger :: ido i = 1, 10, 2print *, iend doend program do_loop_example```上述代码中,do循环从1到10,步长为2,输出结果为1,3,5,7,9。

通过修改start、end和step的值,可以灵活控制循环次数和输出结果。

2. do while循环do while循环是一种在未知循环次数的情况下使用的循环结构,只有在满足一定条件时才进行循环。

其语法形式如下:```fortrando while (condition)! 循环执行的语句块end do```在每次循环执行之前,先判断condition中的条件是否成立,如果成立则继续执行循环,否则立即结束循环。

fortran循环结构及基本语句..

fortran循环结构及基本语句..


循环体的循环次数事先不确定(如[例5.2]中循环结构),这类循环 结构称为非确定性循环,或称“条件型”循环,使用条件型循环语 句(如DO WHILE循环语句)实现这类循环结构。条件型循环又分 “当型”循环和“直到型”循环。
初值循环变量v v≤终值 真 v+步长v 假
判定条件 真 循环体
假 循环体
DO循环语句执行过程说明:下面DO循环语句的循环次数为5: M=1;N=5;L=1
DO I=M,N+5,L+1
write(*,*)I,M,N,L
!输出1、3、5、7、9
M=M+1;N=N*I;L=2*L+I ENDDO
程序运行后,输出结果为:
1 3 5 7 9 1 2 3 4 5 5 5 15 75 525 1 3 9 23 53 计算表达式e1,e2,e3 e1 v 计算循环次数r:MAX(INT((e2-e1)/e3+1),0)r r 0 假

判定条件 真
计数型
当型
直到型
[例5.1] 求S=1+2+3+…+N的值(N由键盘输入,N>2)。编写程序。 解:求解这一问题,将执行N-1次加法运算。 如果将等式写成S=0+1+2+…+N,则执行N次加法运算。 重复问题易采用循环结构实现。 用S保存和,用N保存最大求和值,用I作计数器。编写程序如下:
循环体dowhile循环语句在每次循环体执行前都要计算表示循环控制条件的逻辑表达式其计算结果决定循环体是否继续执行循环体的执行过程必须对循环控制条件产生影响
第五讲
循环结构及基本语句
5.1 循环结构概述
对于问题规模较大的重复问题适宜采用循环结构。

Fortran 和C++学习笔记

Fortran 和C++学习笔记

FORTRAN1. GOTO语句设计循环结构S1 IF(逻辑表达式)THEN循环体GOTO S1ENDIF例;PROGRAM MAINI=05 IF(I.LT.5)THENREAD *,H,W0W1=110-W0IF(ABS(W0-W1).LE.5)THENPRINT *,‘标准’ELSE IF(W0.GT.W1)THENPRINT *,‘过胖’ELSEPRINT *,‘过瘦’ENDIFI=I+1GOTO 5ENDIFEND例PROGRAM MAININTEGER FCHREAD *,M,NK=MIN(M,N)I=15 IF(I.LE.K)THENIF(MOD(M,I).EQ.0.AND.MOD(N,I).EQ.O)FCH=II=I+1GOTO 5ENDIFWRITE(*,100)M,‘和’,N,‘的最大公约数是:’,FCH100FORMAT(1X,I4,A,I4,A,I4)END此例中红色部分的“if”语句没有“then”和“endif”语句,且FCH = 1 直接接在“if”语句之后2逻辑IF语句与GOTO 语句设计的循环程序用逻辑IF语句与GOTO语句实现循环一般是针对“直到型”循环,一般格式是:S1 循环体IF(逻辑表达式) GOTO S1例PROGRAM MAINI=05READ *,H,W0W1=110-W0IF(ABS(W0-W1).LE.5)THENPRINT *,‘标准’ELSE IF(W0.GT.W1)THENPRINT *,‘过胖’ELSEPRINT *,‘过瘦’ENDIFI=I+1IF(I.LT.5)GOTO 5END2 DO-WHILE 循环DO 标号[,] WHILE(逻辑表达式)循环体标号终端语句或者:DO WHILE(逻辑表达式)循环体ENDDO例DO 10 WHILE(I.LE.20)K=I*IPRINT*,I,KI=1+110 CONTINUE当WHILE(I.LE.20)的条件I.LE.20为假时,循环结束,跳到标号为“10”的语句。

fortran基础知识1----循环

fortran基础知识1----循环

fortran基础知识1----循环do循环结构使得⼀个语句或⼀系列语句,以进⾏迭代,当⼀个给定的条件为真。

语法do循环的⼀般形式是:do var = start, stop [,step]! statement(s)…end do这⾥,循环变量var应该是⼀个整数start 是初始值stop 是最终值步骤step是递增,如果此被省略,则变量var以单位增加跳出循环Fortran中跳出循环的两个命令为exit和cycle,exit表⽰跳出离命令最近的循环,cycle表⽰结束此次循环并开始下⼀次循环。

pause:程序执⾏到pause 时,会暂停执⾏,直到⽤户按下Enter键才会继续执⾏。

continue这个命令没有实际的⽤途,它的功能就是继续向下执⾏程序,相当于python中的pass。

stop⽤来结束程序执⾏。

cycle命令可由略过循环的程序模块中,相当于python和C中的continue,直接跳过后⾯的所有代码,然后开始下⼀次循环。

exit的功能是可以直接跳出⼀个正在进⾏的循环,不论是do 循环还是do while 循环,相当于python和C中的break。

1 program sime23implicit none4 integer :: tn56 tn=27 print_tn : do8 print *, tn9 tn = tn+210if (tn>=200) exit print_tn11 end do print_tn12 pause1314 end1 program odd_num23implicit none4 integer :: num,num_odd5 print *, 'Input data number:'6 read *,num78 num_odd = 0910do11 num = num - 11213if (num<0) then14 exit15 elseif (mod(num,2)==0) then16 cycle17else18 num_odd = num_odd + 119 endif202122 print *, num23 enddo2425 print *, 'The number of odd number is',num_odd 2627 pause2829 end如果输⼊20,输出结果为:。

fortran基本语法

fortran基本语法

fortran基本语法Fortran是一种高级编程语言,它的全称是Formula Translation,最初是为数学和科学工作者设计的。

它的语法简单易学,特别适合数值计算、科学计算、工程计算和数据处理等领域。

本文将介绍Fortran的基本语法。

1.程序结构Fortran程序由一系列语句组成,每个语句占一行。

程序的执行顺序是从上到下、从左到右。

程序中可以包含注释,注释以“!”开始,直到行末为止。

Fortran程序通常由三个部分组成:程序头、主程序和子程序。

程序头包含程序的名称、作者、日期等信息。

主程序是Fortran程序的核心,它包含了程序的主要计算过程。

子程序是主程序的辅助程序,在主程序中可以调用子程序完成某些计算任务。

2.变量和常量Fortran中的变量是用来保存数据的,变量的类型可以是整数、实数、字符、逻辑等。

变量名必须以字母开头,长度不超过31个字符。

变量的赋值使用符号“=”,例如:a = 10b = 3.14c = 'Hello, World!'Fortran中的常量是指在程序执行期间不会改变的值,常量可以是整数、实数、字符、逻辑等。

Fortran中的常量可以使用以下符号表示:整数常量:例如5,-10等。

实数常量:例如3.14159,-2.5E-3等。

字符常量:例如'Hello, World!','A'等。

逻辑常量:例如.TRUE.,.FALSE.等。

3.运算符Fortran中的运算符包括算术运算符、逻辑运算符和关系运算符。

算术运算符:加:+减:-乘:*除:/幂:**逻辑运算符:非:.NOT.与:.AND.或:.OR.关系运算符:等于:==不等于:/=大于:>小于:<大于等于:>=小于等于:<=4.控制结构Fortran中的控制结构包括分支结构和循环结构。

分支结构:IF语句:根据条件执行不同的语句。

IF (a > b) THENPRINT *, 'a is greater than b'ELSEPRINT *, 'b is greater than a'END IFSELECT CASE语句:根据表达式的值执行不同的语句。

fortran第5章(循环)

fortran第5章(循环)

x0
x6
x9
x
S=S+SI(累加面积)
X=X+H (下一个矩形底的起点) F0=X*X+X+1 (下一个矩形的高)
打印面积
第15页
源程序: READ(*,*)N,A,B X=A H=(B-A)/N F0=X*X+X+1.0 S=0.0 DO I=1,N SI=F0*H S=S+SI X=X+H F0=X*X+X+1 END DO WRITE(*,*)N,A,B,S END
停止放映
改用整型循环变量时,则循环改写为:
D0 I=0,500; X=I/10。
第5页
DO循环的执行过程为:
(1)计算表达式E1,E2,E3的值,并将它们转换 成循环变量的类型。 (2)循环变量的初值取E1的值。
计算E1,E2,E3 的值
E1=>循环变量
(3)循环次数 r=INT(E2-E1+E3)/E3).
第13页
数值积分
求一个函数f(x)在[a,b]上的定积 分 a f(X )dx.
y
f (x)
f (b)

f (a)
b
其几何意义是求曲边梯形面积。
a
(1)矩形法
上一页+ih b
x
近似求小曲边梯形面积常用方法:
(2)梯形法 (3)辛普生法(用一条小抛物线代替f(x),求小曲边梯形 面积)
这种表示方式可用循环实现。设t代表每项值的变量,i是循环控 制变量,则下面的语句中,for语句的每一次循环都产生ex展开式 中前n项的t值(除开始一项以外): 上一页 t=1.0 下一页 停止放映 DO I=1,N t=t*x/i 第18页

naj_Fortran3-循环

naj_Fortran3-循环

简介
1. 2. 3. 4. 5. Do循环 Do循环 Do while循环 while循环 Exit语句 Exit语句 Cycle语句 Cycle语句 循环的嵌套
2
计算机学院 宁爱军
Tianjin University of Science & Technology
Fortran Fortran语言程序设计
10
计算机学院 宁爱军
Tianjin University of Science & Technology
Fortran Fortran语言程序设计
Exit语句
1. Exit语句迫使循环理解终止,跳出循环继续执行后循 Exit语句迫使循环理解终止,跳出循环继续执行后循 环后边的语句 program eg0401 real r,area do r=1,10 area=3.14*r*r if (area>100) then exit end if print *,area end do print *,r,area 11 计算机学院njin University of Science & Technology
Fortran Fortran语言程序设计
1. 算法的加速
program eg0401 integer n,I,k do n=100,1000 k=sqrt(real(n)) do i=2,k,1 if (mod(n,i)==0) then exit end if end do if (i==k+1) then print *,n,"是素数 !" else print *,n,"不是是素 数!" 14 end if 计算机学院 宁爱军 end do

fortran循环结构及基本语句

fortran循环结构及基本语句
!示例程序一:输出奇数1,3,5,7,9 DO I=1,100,2
IF (I>=9) EXIT ENDDO END
!示例程序二:输出奇数1,3,5,7,9 I=1 DO WHILE (I<=100)
write(*,*)I IF (I>=9) EXIT I=I+2 ENDDO END
!示例程序三:输出奇数1,3,5,7,9 I=1 DO
100 R3=MOD(R1,R2) !求R1除以R2的余数 R1=R2;R2=R3 IF (R2/=0) GOTO 100
!或 IF (R2==0)THEN ! ELSE ! GOTO 100 ! ENDIF
gcd=R1;lcm=M*N/gcd WRITE(*,"(1X,I3,'和',I3,'的最大公约数为:',I3)")M,N,gcd WRITE(*,"(1X,I3,'和',I3,'的最小公倍数为:',I3)")M,N,lcm END
执行过程:
(1)按顺序依次执行循环体语句。
(2)循环执行过程中,若满足循环结束条件,则执行EXIT语句退出循环。
(3)无条件转(1)。
<特殊DO循环语句>→[<名字>:] DO
<语句1>
<语句2> 循环体
……
<语句n>
ENDDO [<名字>] 说PI明rNoT:gErGaEmR M,N,R1,R2,R3,gcd,lcm ①Wr特it殊e(D*O,循*)环'输语入句两必个须自与然EX数IT:语'句配合使用。 ②R使EA用D(特*,殊*)DMO,循N 环语句可使循环变得短小、简洁、清晰。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


判定条件 真
计数型ห้องสมุดไป่ตู้
当型
直到型
[例5.1] 求S=1+2+3+…+N的值(N由键盘输入,N>2)。编写程序。 解:求解这一问题,将执行N-1次加法运算。 如果将等式写成S=0+1+2+…+N,则执行N次加法运算。 重复问题易采用循环结构实现。 用S保存和,用N保存最大求和值,用I作计数器。编写程序如下:

执行循环体 v+e3 v r-1 r DO循环语句下面一条语句
5.3 使用DO WHILE循环语句实现循环
<DO循环语句>→[<名字>:] DO WHILE (<循环条件>) <语句1>
<语句2>
…… <语句n> ENDDO [<名字>] 说明:
循环体
① 循环条件可以是关系表达式,也可以是逻辑表达式,但不能是算术 表达式或字符表达式。 ②使用DO WHILE语句时要特别注意死循环的产生,要保证循环体中至少 有一条对循环控制条件有影响的语句,否则将产生死循环。
<DO循环语句>→[<名字>:] DO <v>=<e1>,<e2>[,<e3>]
<语句1> <语句2> ……
<语句n>
ENDDO [<名字>] 说明: ①v为循环变量,一般为整型变量,用来控制循环次数。e1、e2和e3为表达式, 其类型与循环变量类型相同。e1代表循环变量v的初值,e2代表循环变量v的 终值,e3代表循环变量v的步长,e3可缺省,e3缺省指e3为1。 ②循环次数计算公式是:MAX((e2-e1)/e3 + 1 ,0)。 ③如果e3>0,则一般要求e1≤e2,否则循环次数为0,即循环体一次也不执行。 ④如果e3<0,则一般要求e1≥e2,否则循环次数为0,即循环体一次也不执行。 ⑤在循环体中可引用循环变量v的值,但不能赋值,即修改它的值。
DO WHILE循环语句在每次循环体执行前都要计算表示循环控 制条件的逻辑表达式,其计算结果决定循环体是否继续执行,循环 体的执行过程必须对循环控制条件产生影响。
PROGRAM cycle2
sum=0
计算表示循环控制条件的逻辑表达式 READ(*,*)x 结果赋予log log=.TRUE. 真 执行循环体 循环语句下面一条语句 假
Program ex3
INTEGER REAL av sum=0 sum,n,x
n=0
READ(*,*)x DO WHILE (x/=-1) n=n+1 sum=sum+x READ(*,*)x ENDDO av=sum/n WRITE(*,*) '平均成绩为:',av END
5.2 使用DO循环语句实现计数型循环
DO循环语句执行过程说明:下面DO循环语句的循环次数为5: M=1;N=5;L=1
DO I=M,N+5,L+1
write(*,*)I,M,N,L
!输出1、3、5、7、9
M=M+1;N=N*I;L=2*L+I ENDDO
程序运行后,输出结果为:
1 3 5 7 9 1 2 3 4 5 5 5 15 75 525 1 3 9 23 53 计算表达式e1,e2,e3 e1 v 计算循环次数r:MAX(INT((e2-e1)/e3+1),0)r r 0 假
sum=0.0
DO I=1,50,1 READ(*,*) x sum=sum+x ENDDO WRITE(*,*)'sum=', sum END
(5)I+1I。
(6)转步骤(3)。 (7)输出结果sum。 (8)结束。
对于上述算法和程序,不管程序规模多大,长度不变。
循环结构分为两类:

循环体的循环次数事先确定(如[例5.1]中循环结构),这类循环结 构称为确定性循环,或称“计数型”循环,使用计数型循环语句 (如DO循环语句)实现这类循环结构。循环次数为:MAX((终值初值)/步长+1,0)。
DO WHILE (0<=x .AND. x<=100) sum=sum+x READ(*,*) x ENDDO Write(*,*)'sum=',sum END
5.4 使用IF和GOTO语句实现循环
用IF语句实现选择结构,用GOTO语句实现无条件控制转移,两者结合可实现循 环结构,特别是“直到型”循环结构。IF语句给出循环条件,GOTO语句控制循 环转移。由于GOTO语句易造成程序错误,故现代程序设计方法不提倡使用此法 实现循环。 Program INTEGER M,N,R1,R2,R3,gcd,lcm read(*,*)'输入两个自然数:' read(*,*)M,N R1=M;R2=N 100 R3=MOD(R1,R2) !求R1除以R2的余数 R1=R2;R2=R3 IF (R2/=0) GOTO 100 !或 IF (R2==0)THEN ! ELSE ! GOTO 100 ! ENDIF gcd=R1;lcm=M*N/gcd WRITE(*,"(1X,I3,'和',I3,'的最大公约数为:',I3)")M,N,gcd WRITE(*,"(1X,I3,'和',I3,'的最小公倍数为:',I3)")M,N,lcm END
第五讲
循环结构及基本语句
5.1 循环结构概述
对于问题规模较大的重复问题适宜采用循环结构。
如:从键盘输入50个数,求50个数之和,并输出。 求解算法: (1)初始化:0.0sum。 (2)1I。 (3)如果I>50,则执行步骤(7)。 (4)输入一个数x,并累加到sum中。 求解程序: Program ex1

循环体的循环次数事先不确定(如[例5.2]中循环结构),这类循环 结构称为非确定性循环,或称“条件型”循环,使用条件型循环语 句(如DO WHILE循环语句)实现这类循环结构。条件型循环又分 “当型”循环和“直到型”循环。
初值循环变量v v≤终值 真 v+步长v 假
判定条件 真 循环体
假 循环体
Program ex2
INTEGER S,N,I
READ(*,*)N
S=0
DO I=1,N,1 S=S+I EDNDO WRITE(*,*) 'S=',S END
[例5.2] 读入某班级考试成绩(人数不定),计算其平均成绩,并输出。
解:由于学生人数不定,所以输入的学生成绩个数不确定,以输入-1作 为结束标志(因为成绩不可能为负数),从而动态确定学生人数n。 平均成绩计算公式是:av=(x1+x2+…+xn)/n
相关文档
最新文档