Fortran第5单元.pptVIP

  • 5
  • 0
  • 约1.25万字
  • 约 72页
  • 2018-08-10 发布于未知
  • 举报
…… Read*,x I=1 Bmax=x;Imax=I Read*,x Do while (x/=0) I=I+1 If(xBmax)then Bmax=x;Imax=I Endif Read*,x Enddo Print*,Bmax,Imax …… 数据的输入格式: 2 8 3 10 6 0 错误的输入格式: 2,8,3,10,6,0 阅读程序 验证 If(xBmax)Bmax=x Imax=I 错误 应用:拆数(分离数据) 例5-18 键盘输入一正整数N,编程,判断数N中是否有数字M。若有,输出“YES”,否则输出“NO”。 分析:重复 求余数(取右边数据) 判断是否有数字M 求商(取左边数据, 为下一次求余数准备——变化的语句) 停止条件 当商为0或有M数字 …… READ*,N,M DO WHILE(N0) IF(MOD(N,10)==M)EXIT N=N/10 ENDDO IF(N0)THEN PRINT*,YES ELSE PRINT*, NO ENDIF …… 隐含DO循环的形式为: (循环体,v=u1,u2,u3) 类似于: DO V=u1,u2,u3 循环体 enddo 隐去DO关键字的 DO语句 区别? READ *,(x,y,I=1,5) PRINT ‘(5I5)’,(I,I=1,5) 补充: 隐含DO循环 1、输入、输出数据格式的区别: 隐DO、显DO的区别 PRINT *,(I,I=1,3) DO I=1,3 PRINT*,I ENDDO PRINT*,1,2,3 输出一行 PRINT*,1 PRINT*,2 PRINT*,3 输出三 行 READ ’(6I3) ’ ,(x,y,I=1,3) 如输入 1 2 3 4 5 6 X,Y的值为 。 练习: DO I=1,3 READ’(2I3)’,X,Y ENDDO 必须输入三 行 1 2 3 4 5 6 2、隐含do循环只能用于输入、输出语句和数组构造器中 错例 S=0 S=S+(I,I=1,3) 几种常见的隐含DO循环的形式 1.按指定步长读写。例如 PRINT *,(J,J=1,7,2) 2.隐含DO循环与普通变量混合使用。例如 PRINT *,A,B,(I ,I=1,3),C 3.用于输出一些特殊符号。例如 PRINT *,(’-’,I=1,3) 4.隐含DO循环可以并列出现。例如 print *,(I ,I=1,2),(J,J=1,2) 5.隐含DO循环可以嵌套使用。例如 PRINT *,((’a’,J=1,2),I,I=1,2) 外循环DO语句 外循环循环体 外循环DO语句 即 PRINT*, (’a’,J=1,2),1, (’a’,J=1,2),2 输出结果:a a 1 a a 2 1、三种循环结构的适用范围和写法 2、三种循环结构的执行过程 3、循环结构的编程步骤、调试方法 4、三种循环结构循环体的区别 5、常见算法的理解和实现 编程技巧 6、隐DO的写法、适用范围、执行过程 与显DO的区别 小结 integer :: n, k,m read *,n if(n=1)then print*,数据输入不正确! else m=n-1 !sqrt(real(n))或n/2 do k=2, m if (mod(n, k)= =0) exit enddo if ( km) then print*,n,’是素数’ else print *,n,’不是素数’ Endif endif end program exam9 implicit none integer::n,k,f=1 read*,n if(n=1)then print*,数据输入不正确! else do k=2,n/2 if(mod(n,k)==0)f=0 enddo if(f==0)then print(I5,不是素数!),n else print(I5,是素数),n endif endif end 第86页例5-9:采用标记变量F,F=1是素数,F=0不是素数。 用梯形法计算定积分 分析:等分、以直代曲、求和 六、梯形法 Real::a,b,g

文档评论(0)

1亿VIP精品文档

相关文档