FUNCTION K(N) RESULT(RES) INTEGER::N,RES IF(MOD(N,2)==0)THEN RES=N+2 ELSE RES=N-2 ENDIF END FUNCTION END PROGRAM EX2
3. 程序设计
⑴ 编写函数子程序ADD_FUN用来进行两个整数相加运算,结果也是整数。
⑵ 用牛顿迭代法编写一个通用函数求方程的一个根。并求以下函数的根:
x2?4x?1?0x?4x?5x?3?043
四、实验说明
1. 子程序是为完成特定的功能而设计的,应尽量使其具有良好的通用性,为此,通常的数据输入、输出尽可能安排在主程序中进行。
2. FORTRAN 90的过程分为内部过程和外部过程两种,对于各题分别采用这两种过程编程实现,以比较他们的异同点。
3. 虚实结合是主程序、子程序接口进行数据传递的重要方法和手段。虚参的INTENT属性用来说明该虚参是从主调程序中传入值,还是向主调程序传出值,或者是既传入又传出值。设计时应根据需要设置合理的INTENT属性。 五、思考题
1. 编写一外部函数子程序,输入一整型数,判断其是否为素数,若是素数则返回逻辑“真”值,否则返回“假”值。调用这个子程序,求200~300之间素数的个数。
2. 编写一个函数子程序IFAC用来求N!,要求函数值为实型。函数中应对自变量进行检查,对不合理的变量给出错误信息。然后求下式(R和K的值由键盘输入):
C?R!
K!(R?K)!3. 编写一个计算三角形面积和重心的程序。由键盘输入三个角点坐标。
2.6 数组及应用
一、实验目的
1. 理解数组的概念,掌握数组的定义、数组元素的使用。 2.理解和掌握动态数组的概念、使用及数组在过程中的应用。 3. 理解数组在程序设计中的重要作用,学会用数组的方法编写一些简单程序。
4. 熟练掌握数组的矩阵运算、排序查找、数据统计及杨辉三角
等问题的算法。 二、实验要求
1. 认真复习教材第6章的内容。
2. 按照题目的要求设计各题的算法,并写出程序。
3. 上机调试各程序。调试程序时,要充分注意和利用编译、连接和运行时计算机给出的信息,要求能够根据这些信息,较熟练地判断出程序的语法错误和一般的逻辑错误。
4. 选择一些有代表性的数据作为输入数据,运行程序。 5. 详细记录数据的输入、输出信息,并对结果进行分析。 三、实验内容
1. 下面程序是用折半查找法在给定的一维有序(假设是从小到大)整型数组中查找给定的元素K。若找到,则返回该元素在数组中的下标,若数组中没有该元素,则返回“NO FOUND”。请在下划线处填上适当的内容,以完成题目的要求。 PROGRAM EXAM IMPLICIT NONE
INTEGER, DIMENSION(10)::X INTEGER ::K,LOW,HIGH,MID
READ *,X; PRINT *,'请输入要查找的K:' ; READ*,K LOW=1;HIGH=10 DO WHILE(LOW<=HIGH) MID=(LOW+HIGH)/2
IF(______ ) EXIT
IF(X(MID)>K) THEN HIGH=MID-1 ELSE
____ END IF
END DO
IF(_____ ___) THEN PRINT *,\
ELSE
PRINT *,MID
END IF
END PROGRAM EXAM
2. 程序设计
⑴ 输入10个整型数据,使用冒泡法或者选择法进行排序。 ⑵ 从一组无序的数据中查找某一给定的数,查找到这个数,返回这个数在这组数中的下标,否则返回“NO FOUND”。 ⑶ 编写一个程序,打印杨辉三角形的前10行。
⑷ 已知A(5,5)是一个整型数组,编程求两条对角线上的最大元素及所在的位置。 四、实验说明
1. 折半查找只能对有序数组进行,首先将待查找的数据与数组中间位置上的元素进行比较,然后判定在数组的上半部分或者下半部分继续查找,依此类推。
2. FORTRAN90中多维数组元素的存储顺序是按列存放的,因此在对多维数组进行输入输出时,要注意元素的输入输出次序。 3. 杨辉三角形计算公式为:Y(I,J)=Y(I-1,J)+Y(I-1,J-1),其中I>=3,2<=J
1. 将一整型数插入到一有序的整型数组中。 2. 将一数组中的元素逆序存放,并输出。 3. 将二维数组A(3,4)行列转置。
2.7 字符型数据的处理及应用
一、实验目的
1. 理解字符串和字符子串的概念,能够用数组的方法处理字符串。
2. 掌握字符型数据的处理的一般方法和程序设计的一般方法。 3. 熟练掌握字符子串在图形处理程序设计方面的应用。 二、实验要求
1. 认真复习教材第7章的内容。
1. 按照题目的要求设计各题的算法,编写出相应的程序,并仔细进行逻辑结构和语法的检查。