FORTRAN语言第七章(共8章).ppt
文本预览下载声明
FOTRAN77/90程序设计 土木工程学院 2008.11 使用隐含DO循环输入输出数组 38 49 65 76 27 13 97 49 例 1 38 49 65 76 27 13 97 49 例 1 38 49 65 76 27 13 49 97 例 1 38 49 65 76 27 13 49 97 例 1 DO j=1, n-1 if (a(j)a(j+1)) then 交换 a(j),a(j+1) end if ENDDO 38 49 65 76 27 13 49 97 38 49 65 76 27 13 49 例 1 38 49 65 76 27 13 49 97 38 49 65 76 27 13 49 例 1 38 49 65 76 27 13 49 97 38 49 65 76 27 13 49 例 1 38 49 65 76 27 13 49 97 38 49 65 76 27 13 49 例 1 REAL A(0:9,0:9) DO I=0,9 DO J=0,9 A(i,j)=SQRT(10.*I+J) ENDDO ENDDO WRITE(*,10)(I,I=0,9) 10 FORMAT(7X,10(I1,6x)) DO I=0,9 WRITE(*,20)I,(A(I,J),J=0,9) 20 FORMAT(1X,I1,2X,10(F5.3,2X)) ENDDO END 按如下格式打印100以内整数的平方根表。 [例]计算N个测试数据的平均值和标准偏差。测试数据个数不定。 解:已知:N个测试数据data为:X1,X2,X3,…,Xn。从键盘输入。实型。 求:平均值Xa和标准偏差Xs。实型。 平均值计算公式为: Xa=(X1+X2+X3+…+Xn)/N 标准偏差计算公式为:Xs= 测试数据用一个一维数组X表示,平均值用变量Xa表示,标准偏差用变量Xs表示。测试数据个数不确定,假设最大个数max为50,实际个数为N。从键盘输入数据,数据以非数值字符为结束标志。 输入数据:25.32,18.35,44.78,57.39,85.2,A 输出结果:测试数据: 25.32 18.35 44.78 57.39 85.20 平均值 : 46.21 标准偏差: 26.74 PROGRAM array881 !说明变量和数组 PARAMETER(max=50) INTEGER :: N=0 REAL :: X(max),Xa,Xs,sum=0.0,data !从键盘输入数据并求和 DO WHILE (.TRUE.) READ(*,*,IOSTAT=io) data IF (io0) EXIT N=N+1 X(N)=data sum=sum+data ENDDO Xa=sum/N sum=0.0 DO i=1,N sum=sum+(X(i)-Xa)**2 ENDDO Xs=SQRT(sum/(N-1)) WRITE(*,(1X,测试数据:,NF10.2)) (X(i),i=1,N) WRITE(*,(1X,平均值:,F10.2)) Xa WRITE(*,(1X,标准偏差:,F10.2)) Xs END [例]已知8个无序整数,将这组整数由小到大(或由大到小)排序。 解:已知:无序整数A,数组,用DATA语句赋初值。数据个数为N,假定N=8。 求:将一组无序整数A从小到大排序。 采用选择法排序。基本思想:从第1个数据起在N个待排序数据中选择一个最小数,将最小数与第1个数据交换,称该步为第1趟排序;在从第2个数据起在剩余的N-1个数据中选择一个次最小数,将次最小数与第2个数据交换,称该步为第2趟排序;依次类推,直到在从第N-1个数据起在剩余的2个数据中选择一个较小数,将较小数与第N-1个数据交换,称该步为第N-1趟排序,直至排序任务完成,得到一组有序数据。 排序前数据: 51 34 37 54 72 12 58 40 排序后数据: 12 34 37 40 51 54 58 72 排序过程示意如图所示。 i=2 p=2 A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) 12 34 37 54 72 51 58 40 i=8 第2趟排序 A(2)与A(2)交换 A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) 51 34 37 54 72 12 58 4
显示全部