资源描述:
《Fortran上机作业(六)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、工程分析程序设计上机作业(六)数组(2)上机目的:练习数组的声明、存储、操作,以及数组参数、动态数组、数组函数的使用。1、从键盘上输入10个整数,然后逆序打印出来。programarrayimplicitnoneinteger,parameter::n=10integerirealA(n),tempread*,ADOi=1,n/2temp=A(i)A(i)=A(n+1-i)A(n+1-i)=tempendDOprint*,Aendprogram2、输入任意n个数存放在数组中(如5个数1、2、8、2、10),请在屏幕上
2、打印如下方阵128210101282210128821012282101programarrayimplicitnoneinteger,parameter::n=5integeri,jrealA(n),tempprint*,'input',n,'numbers'read*,Aprint*,'outputthearray'print*,ADOi=1,n-1temp=A(n)DOj=n,2,-1A(j)=A(j-1)endDoA(1)=tempprint*,AendDOendprogram1、用选择法进行排序:假定A数组
3、中有n个数,设定两个变量P和J,J按顺序从数组开头指向数组的各个位置(也就是应该存放数据的位置),P则指向剩余的数据中最小的数。然后把J指向的元素和P指向的元素进行比较大小,若P指向的元素更小,则把二者对换。如此把J从1号位向后移动至数组末尾,则完成了排序。例如第一步:1584101JPJ指向1号位,P指向2~5号位的最小值5号位的1,二者对换。第二步:1841015JPJ指向2号位,P指向3~5号位的最小值3号位的4,二者对换。第三步:1481015JPJ指向3号位,P指向4~5号位的最小值4号位的10,二者不对换
4、。第四步:1481015JPJ指向4号位,P指向5号位的最小值号位的15,二者不对换。根据以上四步,整个数组完成排序。要求在屏幕上显示排序法每步进行的情况。有兴趣的同学还可以比较选择法排序和“冒泡算法”进行排序的速度。!选择法programarrayimplicitnoneinteger,parameter::n=10!数列元素个数integeri,jrealA(n),tempprint*,'input',n,'numbers'read*,Aprint*,'outputthearray'DOi=1,nDOj=i+1,
5、nif(A(i)>A(j))thentemp=A(i)A(i)=A(j)A(j)=tempendifendDoenddoprint*,Aendprogram1、高斯消去法求解线性代数方程组:对于一般的n阶方程组,高斯消去法步骤如下:第一步:若,令,用乘第1个方程加到第i个方程上,得同解方程组其中第二步:若令,用乘第2个方程加到第i个方程上,则将消去。一般,设第k-1步后方程组化为如下的同解方程组则第k步:若若令,用乘第k个方程加到第i个方程上(),得到如下的同解方程组其中按上述做法,做完n-1步,原方程组化为同解的上
6、三角形方程组最后,设,逐步代回得原方程组的解此方程病态,提示:列主元消去法,第k步消去过程选取第k行绝对值最大元素akq,交换k和q列,然后继续消去过程注意:上述公式中的上标k,是用来区别消去过程中第k步利用的量。在用编程求解时,可把存在位置,存在位置。解方程组(1)(2)programGaussimplicitnoneinteger,parameter::n=3!数列每维元素个数integeri,j,k,freal::A(n,n+1),temp=0,X(n)!data((A(i,j),i=1,3),j=1,4)/5
7、,1,7,1,2,8,-3,3,11,-4,1,-3/print*,'input',n,'*',n+1,'数列,注意:按列输入'read*,ADOi=1,n-1DOj=i+1,nif(A(i,i)/=0)thenA(j,:)=-A(j,i)/A(i,i)*A(i,:)+A(j,:)!rightendifenddoenddoX(n)=A(n,n+1)/A(n,n)DOk=n-1,1,-1DOj=k+1,ntemp=temp+A(k,j)*x(j)enddoX(k)=(A(k,n+1)-temp)/A(k,k)temp=
8、0enddoDoi=1,nprint*,'X',i,'=',x(i)enddoendprogram