还剩7页未读,继续阅读
文本内容:
Fortran语言程序设计Fortran Programming
一、课程基本情况课程类别公共基础课课程学分4学分课程总学时64学时,其中讲课48学时,实验(含上机)16学时课程性质必修开课学期第2学期先修课程计算机基础II适用专业非计算机专业(理工类)教材FORTRAN语言程序设计,气象出版社,薛胜军,耿焕同,郑玉等,2009,第1版开课单位计算机与软件学院
二、课程性质、教学目标和任务(Fortran程序设计》是我校大气科学、大气物理、大气探测、海洋科学、应用气象、环境科学等专业的公共基础必修课程由于Fortran语言被广泛应用于数值分析、工程设计和科学计算等领域,并且目前主流的气象预报模式WRF和MM5等都是用Fortran语言编写的,因此该课程是气象类相关专业培养方案中的主要课程该课程在学习程序设计相关理论的同时,注重对学生程序设计能力的培养该课程教学的基本任务及应达到的主要教学目的是:通过教学,使学生了解FORTRAN语言的特点,掌握FORTRAN语言的基本组成部份及使用方法,能够熟练阅读程序和具备初步编程的能力;通过进行算法的初步训练,能够掌握最基本算法的设计和实现方法;熟悉结构化程序设计方法,能设计出良好风格的程序;具有调试应用程序的基本能力该课程的主要学习内容包括通过该课程的学习,学生在已有的大气科学、大气物理等理论的基础上,了解并掌握Fortran程序设计在大气科学上应用的基本方法和步骤,熟悉Fortran语言的软件开发环境,能够全面、系统地掌握Fortran语言程序设计的基础知识,熟练掌握程序设计的基本算法通过课堂理论学习和实验环节,学生应该具备以下的实践动手能力熟悉Fortran语言的编程开发环境,能够熟练编写常用的基本算法、熟练掌握程序调试的方法和步骤、能熟练运用FORTRAN语言设计和编写比较复杂的FORTRAN程序,有效解决本专业中遇到的一些疑难问题,使学生计算机应用能力得到显著提高,为专业应用和发展奠定基础
三、教学内容和要求
1、Fortran语言程序设计在数值分析中的应用(6学时)
1.1预备知识1认知并了解数据处理与分析的基本概念,了解如何使用FORTRAN语言来完成常用的数据分析程序2理解数理统计基本概念I.随机变量;随机变量共有两种情况连续随机变量与离散随机变量连续随机变量是一种概念上可以取其自然领域中任何一个值的随机变量,比如气象中的某地某时的气温、气压和风向量等离散随机变量是一种其可能值可以与自然数集合或子集建立起一一对应的随机变量,因此它可能只取有限个值,也可能取到无穷多个值,视变量的实际情况而定例如雷达回波图中回波聚类的个数,雨量的等级等n.总体和样本将来自某总体的随机观察值所服从的分布函数或分布密度函数称为总体用某种手段从总体中获取的观察值就是样本如果作为样本的这些观察值是按照相互独立原则抽取,并被保证总体中每一个体取样的可能性是相同的,那么它们称之为随机样本m.数学期望和平均值数学期望通常简称为期望Expectation或均值Mean,它是数字特征中最重要的一个,其它数字特征大都是通过数学期望来定义的与数学期望相对应,统计量平均值是用表征某一要素样本中数据分布的特点平均值是一个常用的统计量气象上的月平均气温、年平均气温及某气象要素多年平均值等就是这种统计量IV.距平和距平序列距平是气象上常用的一个统计量,也就是通常所说的异常,即对平均值的正常情况的偏差资料中某一个资料数值与平均值之差就是距平V.标准差与方差VI.协方差和相关系数L2一元线性回归分析1了解什么是一元回归分析;2理解一元线性回归分析建立模型的基本步骤;3了解采用Fortran语言实现的一元线性回归分析程序设计方法;4掌握Fortran程序的基本架构;5了解Fortran对数据文件的输入与输出方式;L3多元线性回归分析1了解什么是多元回归分析;2理解多元线性回归分析建立模型的基本步骤;3了解采用Fortran语言实现的多元线性回归分析程序设计方法;L4逐步回归分析1了解什么是逐步回归分析;2理解逐步回归分析建立模型的基本步骤;3了解采用Fortran语言实现的逐步回归分析程序设计方法;L5主成分分析1了解什么是主成分分析;2理解主成分分析建立模型的基本步骤;3了解采用Fortran语言实现的主成分分析程序设计方法;重点数据处理与分析的概念、一元线性、多元线性、逐步回归分析以及主成分分析等方法的概念与建模,Fortran程序设计的架构和对文件的读写操作;难点一元线性、多元线性、逐步回归分析以及主成分分析等方法的概念与建模
2、文件2学时21FORTRAN90/95文件概述1了解什么是文件,文件与记录、文件的存取方式、文件的结构有格式存储、无格式存储、二进制存储以及文件的定位等概念
2.2文件操作语句1了解并掌握OPEN语句各个参数的含义及用法;2理解文件的读取方式方法;3熟练掌握打开文件的OPEN语句的格式、用法;熟练掌握文件输入输出READ/WRITE语句,能熟练编写读写文件的程序;
2.3其它文件操作1理解文件状态查询语句INQUIRE及其参数、反绕文件指针语句REWIND及其参数、文件指针回退语句BACKSPACE及其参数、文件结束语句ENDFILE及其参数、EOF函数及其参数的用法
2.4文件的使用1理解文件的访问方式和记录的存储格式;2熟练掌握有格式顺序文件、无格式顺序文件、有格式直接文件、无格式直接文件、二进制顺序文件和二进制直接文件数据的输入输出重点文件的存取方式,文件的组织结构,文件的操作;难点文件的读写
3、Fortran语言基础6学时
3.1字符集与保留字1了解Fortran允许使用的字符集;2理解保留字的概念和作用;3掌握常用的保留字
3.2基本数据类型1了解Fortran语言提供的五类九种数据类型;2理解Fortran语言提供的五种内部基本数据类型的作用和性质;
3.3常量1了解Fortran语言提供的五种内部基本数据类型的常量的概念;2理解五种内部基本数据类型的常量分类;符号常量的含义;3掌握数值型常量整型常量、实型常量、复型常量的表示、所占字节空间及其值域范围;掌握字符型常量、逻辑型常量的表示方法;掌握如何定义符号常量
3.4变量1了解Fortran语言变量的概念;2理解内存的概念以及变量所占内存空间的概念;理解隐含的「N规则;3熟练掌握标识符的命名规则、各种基本数据类型的声明方式及其关键字、KIND值的用法和作用;并掌握与字符串处理相关的六个函数的作用与使用方法;熟练掌握各种基本数据类型的变量初始化的方式;
3.5运算符与表达式1了解什么是运算符和表达式;2理解运算符的优先运算级别;3掌握Fortran允许使用的算数运算符、字符运算符、关系运算符、逻辑运算符;熟练掌握各种运算表达式;熟练掌握复杂表达式的计算过程、不同数据类型操作数如何进行类型转换以及各个运算符的优先级别
3.6语句11了解Fortran语言提供的两类语句执行语句和非执行语句;2理解GOTO语句的作用23熟练掌握算术赋值语句、字符赋值语句、逻辑赋值语句和DATA赋初值语句;熟练掌握程序控制语句PROGRAM、END、STOP语句、PAUSE语句;
3.7系统内部函数1了解内部函数的概念;2掌握常用的内部函数的名称和使用方法;重点Fortran语言提供的五类九种数据类型的作用和性质、数值型常量整型常量、实型常量、复型常量的表示、所占字节空间及其值域范围、各种基本数据类型的声明方式及其关键字、KIND值的用法和作用、复杂表达式的计算过程、不同数据类型操作数如何进行类型转换以及各个运算符的优先级别难点各种基本数据类型的声明方式及其关键字、KIND值的用法和作用、复杂表达式的计算过程、不同数据类型操作数如何进行类型转换以及各个运算符的优先级别
4、顺序结构程序设计6学时
4.1表控输入、输出语句
(1)了解输入输出语句的作用;
(2)理解表控输入输出的含义;
(3)掌握表控格式输入、输出语句用法及保留字;
4.2可控格式输入、输出语句
(1)了解可控格式输入输出强大而灵活的输入输出格式功能;
1.)熟练掌握可控格式的输出语句PRINT语句和WRITE语句;熟练掌握可控格式输入语句READ语句的3中形式;熟练掌握各种类型的格式控制符;掌握FORMAT格式说明语句
4.3程序举例
(1)了解可控格式输入输出语句的用法;
(2)理解并掌握强大而灵活的格式说明功能,从而实现数据的按格式输入输出任务重点可控格式输入、输出语句用法、格式控制符的含义及作用;难点可控格式输入、输出语句用法
5、选择结构程序设计(2学时)
5.1IF语句
(1)了解Fortran语言中3种经典的块IF结构;
(2)理解各种IF结构的控制流程;
(3)熟练掌握单分支块IF结构、双分支块IF结构、多分支块IF结构、逻辑IF语句的相关概念、表示和用法
5.2SELECT CASE语句
(1)了解IF语句块的执行效率,降低程序的可读性;
(2)理解2种不同的多分支选择结构;理解嵌套选择的概念;
(3)熟练掌握SELECT CASE结构的使用方式;
5.3选择语句的嵌套
(1)了解嵌套的含义;
(2)掌握嵌套选择语句的书写格式;
5.4程序举例
(1)熟练掌握基本的判断闰年的方法;熟练掌握IF语句和SELECT CASE语句的用法重点关系表达式与逻辑表达式的正确书写;IF语句与SELECT CASE语句的用法,浮点数及字符的逻辑运算;难点IF语句的嵌套,浮点数的逻辑判断,字符的逻辑判断
6、循环结构程序设计(4学时)
6.1DO语句
(1)了解循环的概念;2理解并掌握带循环变量的DO循环的执行过程、循环自变量的变化过程;3掌握带循环变量的DO循环格式;掌握有关DO循环的四个基本规定;并通过实例学习,熟练掌握基本的求阶乘的算法
7.2DO WHILE语句1了解处理事先不知道循环次数的循环处理方式;2理解DO WHILE语句的用途和用法;3熟练掌握DO WHILE语句循环的书写格式、执行过程;熟练掌握使用辗转相除法求解两整数的最大公约数;熟练掌握求素数的方法;
6.3循环流程控制语句1熟练掌握EXIT语句和CYCLE语句的用法;
6.4无循环变量的DO语句1掌握无循环变量的DO语句格式;掌握无循环变量的DO语句的执行过程;
1.5循环语句的嵌套1掌握嵌套DO循环的执行过程;理解并掌握嵌套DO循环的有关规定;
1.6几种循环形式的比较和关系1理解几种不同形式的循环相同和不同之处及其各自的作用;
6.7程序举例1熟练掌握各种循环语句的格式和用法;熟练掌握求解斐波那契数列的算法;熟练掌握根据矩形或梯形求解定积分的算法;重点DO语句,DO While语句,exit+DO语句;难点循环条件的设置,循环的嵌套
7、数组8学时
6.1概述1了解数组的作用及由来;
6.2数组的定义与引用2熟练掌握用类型说明语句定义数组;掌握利用DIMENSION语句说明数组;掌握用类型说明语句和DIMENSION语句定义数组;熟练掌握数组元素的引用方式下标法、数组片段法;熟练掌握数组名的特殊作用;
6.3数组的逻辑结构与存储结构1了解二维数组的存储结构和逻辑结构的不同;2理解二维数组存储结构按列存储的概念;3熟练掌握一维数组、二维数组的逻辑结构及存储结构;
6.4数组的输入输出1掌握使用DO循环输入输出数组元素;熟练掌握使用数组名或数组片段对数组进行输入和输出;熟练掌握隐含DO循环的作用以及利用隐含DO循环对数组进行输入和输出;
7.5给数组赋值1熟练掌握使用DATA语句赋初值;使用数组赋值符赋初值;
7.6动态数组1了解动态数组的由来;2熟练掌握动态数组的定义、内存分配和释放
7.7数组常用算法举例1了解二维数组与矩阵的对应关系;2理解2种不同的查找方法以及2种不同的排序方法;3熟练掌握求解数组元素累加和、求数组的最大最小值及位置、二分法查找、排序选择排序和冒泡排序、有序数组的插入和删除算法,能够熟练编写相应程序;重点数组的定义、初始化、数组元素的引用、二维数组的存储结构、数组程序设计方法;难点数组的定义、二维数组的I/O、二分查找法、选择法排序算法、冒泡法排序算法
8、子程序6学时
8.1基本概念1了解子程序、实参、虚参等基本概念
8.2外部子程序1理解函数子程序和子例行子程序的不同点;2熟练掌握外部函数子程序、外部子例行子程序的定义、调用方式以及各自的适用范围;
8.3实参和虚参之间的数据传递1理解数据传递的方式地址传递和值传递;理解变量的作用域等概念;2熟练掌握变量为虚参、为数组非字符数组和字符数组、为子程序名、为“*”号时的各种虚实结合的数据传递方式;
8.4递归子程序1理解递归的概念;2掌握递归的算法;熟练掌握编写递归函数子程序和递归子例行子程序的方式方法;
8.5数据公用存储单元与数据块子程序1了解掌握数据传递和数据共享的另外一种方式开辟公用区;2理解开辟无名公用区和有名公用区的不同;3掌握如何给公用区中的元素赋初值;
8.6内部子程序1了解什么是内部子程序,它与外部子程序的区别;2掌握内部子程序的定义包括函数子程序和子例行子程序;掌握内部子程序的调用方式;
8.7子程序应用举例
(1)理解子程序的应用;
(2)能够熟练编写相应子程序重点函数子程序、子例行程序的定义和调用方法难点虚实结合的两种方式,公用区变量的使用
9、结构体与指针(2学时)
(1)了解Fortran95程序中自定义数据类型概念;
(2)理解自定义数据类型和结构体的概念;
(3)掌握自定义数据类型的定义方法,能够熟练正确地书写结构体数组的定义和使用方法;能运用结构体编制程序重点结构体(自定义数据类型)的定义与属性的引用,结构体数组的定义、使用(排序);难点结构体成员的引用,结构体编程,结构体数组的排序
10、用Fortran语言实现正压原始数值预报模式(6学时)
10.1预备知识了解并理解正压原始预报方程组、资料初始化概念和初始化条件、水平侧边界条件以及时间积分方案等;
10.2计算步骤掌握基本的正压原始方程模式计算步骤;
10.3程序的组织与实现掌握编制较为复杂类型程序的组织方法、逻辑次序,数据的输入输出;
10.4采用GrADS绘图掌握采用GrADS软件进行绘图的步骤和方法;重点掌握编写正压原始方程模式计算的Fortran程序的方法和步骤;掌握采用GrADS软件进行绘图的步骤和方法;难点采用GrADS软件进行绘图的步骤和方法
四、课程考核
(1)作业+实验报告;
(2)考勤;
(3)考核方式(闭卷考试)期中+期末;
(4)总评成绩计算方式(平时成绩、实验成绩、期中考试成绩和期末考试成绩等综合计算)
五、参考书目
1.Fortran95程序设计,中国电力出版社,彭国伦,
2007.6,第1版;
2.新编Fortran90程序设计教程,北京交通大学出版社,白云,
2009.2,第1版;
3.Fortran90程序设计,武汉大学出版社,汪同庆,
2004.8,第3版;
4.Fortran95/2003程序设计(第3版),中国电力出版社,刘瑾,
2011.8,第1版;。