正在加载图片...
while(p) IF(P)THEN GOTO 100 END 后判断型循环语句 100 CONTINUE do S; while(p); D)GOTO 100 图41用 FORTRAN77语句实现基本控制结构 (2)程序设计自顶向下,逐步求精 在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法,把一个模块的功能逐步 分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。 例如,要求用筛选法求100以内的素数。所谓筛选法,就是从2到100中去掉2,3,…,9,10 的倍数,剩下的就是100以内的素数。为了解决这个问题,可先按程序功能写出一个框架 ImaIl (){ 建立2到100的数组A[],其中A[=i 建立2到10的素数表B],其中存放2到10以内的素数 若A=i是B]中任一数的倍数,则剔除A[ 输出A[]中所有没有被剔除的数 上述框架中每一个加工语句都可进一步细化成一个循环语句 main(t 建立2到100的数组A[],其中A[=* A[= /建立2到10的素数表B],其中存放2到10以内的素数喇 B[]=2:B12]=3:B[3]=5:B[4]=7 /若A[=i是BL]中任一数的倍数,则剔除A[ 检查A[j所有的数能否被B整除并将能被整除的数从A中剔除: -3.1 输出A[]中所有没有被剔除的数中- for(i=2:i<=100:i++) 若A[没有被剔除,则输出之 继续对3.1和4.1细化下去,直到最后每一个语句都能直接用程序设计语言来表示为止。 for(i=2;i<=100:计++)A=i B[]=2:B[2]=3:B[3]=5:B[4]=7 /若A[=i是B中任一数的倍数,则剔除A* *检查A[]所有的数能否被B整除并将能被整除的数从A[]中剔除* if (A[/BUBU==AO)A[=0 输出A中所有没有被剔除的数 for(i=2:i<=100:i++) 若A没有被剔除,则输出之2 while ( p ) S; IF ( p ) THEN S GOTO 100 ENDIF 后判断型循环语句 do S; while ( p ); 100 CONTINUE S IF ( p ) GOTO 100 图 4.1 用 FORTRAN77 语句实现基本控制结构 (2) 程序设计自顶向下,逐步求精 在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法,把一个模块的功能逐步 分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。 例如,要求用筛选法求 100 以内的素数。所谓筛选法,就是从 2 到 100 中去掉 2,3,…,9,10 的倍数,剩下的就是 100 以内的素数。为了解决这个问题,可先按程序功能写出一个框架。 main ( ) { 建立 2 到 100 的数组 A[ ],其中 A[i]=i; - - - - - - - - - - - - -- - - - - - - - - - - - 1 建立 2 到 10 的素数表 B[ ],其中存放 2 到 10 以内的素数;- - - - - - - - - - - - 2 若 A[i]=i 是 B[ ]中任一数的倍数,则剔除 A[i];- - - - - - - - - - - - - - - - - - - - 3 输出 A[ ]中所有没有被剔除的数;- - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - 4 } 上述框架中每一个加工语句都可进一步细化成一个循环语句。 main ( ) { /*建立 2 到 100 的数组 A[ ],其中 A[i]=i*/ - - - - - - - - - - - - - - - - - - - - - - - - 1 for (i = 2;i <= 100;i++)A[i] = i; /* 建立 2 到 10 的素数表 B[ ],其中存放 2 到 10 以内的素数*/ - - - - - - - - - - - 2 B[1] =2; B[2] = 3; B[3] = 5; B[4] = 7; /*若 A[i]=i 是 B[ ]中任一数的倍数,则剔除 A[i]*/ - - - - - - - - - - - - - - - - - - - - 3 for (j = 1; j <= 4; j++) 检查 A[ ]所有的数能否被 B[j]整除并将能被整除的数从 A[]中剔除;- - - - - - - - 3.1 /*输出 A[ ]中所有没有被剔除的数*/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4 for (i = 2; i <= 100; i++) 若 A[i]没有被剔除,则输出之;- - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - -4.1 } 继续对 3.1 和 4.1 细化下去,直到最后每一个语句都能直接用程序设计语言来表示为止。 main ( ) { for (i = 2;i <= 100;i++)A[i] = i; B[1] =2; B[2] = 3; B[3] = 5; B[4] = 7; /*若 A[i]=i 是 B[ ]中任一数的倍数,则剔除 A[i]*/ for (j = 1; j <= 4; j++) /*检查 A[ ]所有的数能否被 B[j]整除并将能被整除的数从 A[ ]中剔除*/ for (i = 2; i <= 100; i++) if (A[i]/B[j]*B[j] == A[i])A[i] = 0; /*输出 A[]中所有没有被剔除的数*/ for (i = 2; i <= 100; i++) /*若 A[i]没有被剔除,则输出之*/
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有