linux fortran 结构体,Fortran结构体PPT课件

1 第九章结构体 9 1派生类数据类型 格式 TYPE ACCESS 派生类型名字分量表ENDTYPE 派生类名 ACCESS 访问方式 PRIVATE 私有的 PUBLIC 公共的 默认方式为PUBLIC 分量表 该类型中的成员项 每项要有类型说明 2 P177例 TYPESTUDENTCHARACTER 15 NAMEINTEGERNUMLOGICALSEXCHARACTER 30 ADDRESSENDTYPE 9 2结构体变量的定义与引用 一 结构体类型变量的定义 格式 TYPE 派生类型名 结构体变量名 例 TYPE STUDENT S1 S2 3 结构体类型可以嵌套定义 即结构体类型的成员也可以是另一个结构体类型的变量 P177例 TYPESTUDENTRECORDCHARACTER 15 NAMEINTEGERNUMLOGICALSEXCHARACTER 30 ADDRESSENDTYPETYPESTUDENTTOGETHERTYPE STUDENTRECORD STUDENTREALMATHREALENGLISHREALCHINESEENDTYPE 4 若定义STUDENTTOGETHER结构体变量S TYPE STUDENTTOGETHER S则结构体变量S包含 三个实型变量MATH ENGLISH CHINESE和一个结构体变量STUDENT 而STUDENT又包含NAME NUM SEX ADDRESS四个成员 二 结构体成员的引用 结构体名 成员名结构体名 成员名 如 S1 NAME S1 NUMS2 NAME S2 NUMS STUDENT NUM 5 9 3结构体变量的赋值 一 用赋值语句给结构体成员赋值 P178例9 1职工工资表包含的数据有 姓名 性别 家庭住址 工资等 现计算三个职工工资的平均值 TYPECLERKCHARACTER 15 NAMELOGICALSEXCHARACTER 30 ADDRESSINTEGERSALENDTYPETYPE CLERK S1 S2 S3S1 SAL 800 也可用输入语句READ S1 SALS2 SAL 900S3 SAL 700AVER S1 SAL S2 SAL S3 SAL 3PRINT 三个职工的平均工资为 AVEREND 6 二 定义变量的同时赋值 格式 TYPE 派生数据类型名 结构体变量名 派生数据类型名 成员初值表 例如 TYPETEACHERCHARACTER 12 NAMELOGICALSEXENDTYPE TYPE TEACHER S1 TEACHER WU TRUE S2 S3 赋值时 所给的值类型和个数应与结构体变量定义中各成员的类型与个数保持一致 可以将一个结构体变量的值直接赋给另外一个结构体变量 7 P180例 INTEGERSTYPESTUDENTRECORDCHARACTER 15 NAMEINTEGERNUMLOGICALSEXCHARACTER 30 ADDRESSENDTYPETYPE STUDENTRECORD S1 S2S1 STUDENTRECORD ABCD 20 TRUE CHANGSHA S2 S1S S2 NUM S1 NUMPRINT SEND 8 9 4结构体数组 一般格式 TYPE 派生类型名 DIMENSION 维数说明符 结构体数组名 例 TYPE STUDENT DIMENSION 100 STU 9 P183例 职工信息 职工号 职工姓名 年龄 工资 职工150人 存储信息后统计工资低于500元的职工数 并输出相关信息 programclerkrecordimplicitnoneinteger k itypeclerk 定义结构体类型integernumcharacter 15 namerealsalendtypeclerktype clerk dimension 150 cl 定义结构体数组k 0Print 输入职工号num doi 1 150read cl i numenddo 10 print 输入职工姓名name doi 1 150read cl i nameenddoprint 输入职工工资sal doi 1 150read cl i salenddodoi 1 150if cl i sal 500 then 打印工资 500的职工信息及计数k k 1print cl i num cl i name cl i salendifenddoPrint kend 11 排序算法SUBROUTINESORT STRE N 可调数组TYPESTUDENTCHARACTER 15 NAMEINTEGERMARKINTEGERGRADEENDTYPESTUDENTTYPE STUDENT DIMENSION N STRETYPE STUDENT TEMPINTEGERI J NDOI 1 N 1DOJ I 1 NIF STRE I MARK STRE J MARK THENTEMP STRE I STRE I STRE J STRE J TEMPENDIFENDDOENDDOEND 12 插入算法SUBROUTINESORT INSERT STRE NEW N type studentcharacter 15 nameinteger MARKinteger gradeendtypestudenttype student stre N 1 说明数组 N 1 11type student newIntegeri n ji 1dowhile stre i MARK new MARK and i N i i 1enddodoj N i 1stre j 1 stre j enddostre i newend 13 顺序查找SUBROUTINESORT SEARCH STRE N KEY TYPESTUDENTCHARACTER 15 NAMEINTEGERMARKINTEGERGRADEENDTYPESTUDENTTYPE STUDENT STRE N INTEGERI N KEYI 1DOWHILE STRE I MARK NE KEY AND I LE N I I 1ENDDOIF I N THENPRINT 找到 姓名 STRE I NAME 成绩 STRE I GRADEELSEPRINT 查无此人 ENDIFEND 14 删除算法SUBROUTINEDEL STRE DEKEY N TYPESTUDENTCHARACTER 15 NAMEINTEGERMARKINTEGERGRADEENDTYPESTUDENTTYPE STUDENT DIMENSION N STRETYPE STUDENT TEMPINTEGERI N J DEKEYI 1DOWHILE STRE I MARK NE DEKEY AND I LE N I I 1ENDDOIF I GT N THENPRINT 学生记录没找到 无法删除 ELSETEMP STRE I TEMP为一个临时记录 用于存放待删记录DOJ I N 1STRE J STRE J 1 ENDDOPRINT 删除的记录为 TEMP NAME TEMP MARK TEMP GRADEENDIFEND 15 PROGRAMSTUDENT RECORDS 主程序TYPESTUDENTCHARACTER 15 NAMEINTEGERMARKINTEGERGRADEENDTYPESTUDENTINTEGER PARAMETER STNUM 5 代表要处理的学生数TYPE STUDENT DIMENSION STNUM 1 STRETYPE STUDENT NEW1PRINT 请输入学生有关的信息 DOI 1 STNUMREAD STRE I NAME STRE I MARK STRE I GRADEENDDOCALLSORT STRE stnum PRINT 排序后的结果信息 DOI 1 STNUMprint NAME MARK GRADE print STRE I NAME STRE I MARK STRE I GRADEENDDOPRINT 请输入待处理的学生有关的信息 READ CALL END

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值