《学生名次表实验》指导书
一、实验目的
1、 掌握多重循环程序的设计要点
2、 提高程序设计能力
二、设计内容与要求
以grade为首地址的10个字的数组中保存了学生的成绩,其中grade+i 保存学号为i+1的学生的成绩。要求建立一个10个字的rank数组,并根据grade中的学生成绩将学生名次填入rank数组中,其中rank+i的内容是学号为i+1学生的名次(提示:一个学生的名次等于成绩高于该学生的人数加1)
三、可提供的仪器
1、 计算机一台
2、 Microsoft的汇编程序编译软件包Masm 5.0
3、 文本编辑器EDIT
四、分析与设计提示
本题可以采用两重循环来实现,内层对应于每个学生的名次计算,外层则解决所有学生的名次计算。由于数组的长度是确定的,因此内、外层均可用计数值来控制循环的结束。在设计多重循环时,必须注意内层循环结束后的重新初始化的问题。
假设我们有5个学生的成绩,在程序运行结束后,应该如下图所示:
运行状态 | 数组名 | 数组数据元素 | ||||
运行前 | grade | 88 | 75 | 汇编语言清华大学出版社95 | 63 | 90 |
rank(待定) | ? | ? | ? | ? | ? | |
运行后 | grade | 88 | 75 | 95 | 63 | 90 |
rank | 3 | 4 | 1 | 5 | 2 | |
在程序设计中可以定义这样一个数据段如下:
data segment
grade dw 88,77,98, 56, 75, 60,90,65,72,94
rank dw 10 dup(?)
data ends
五、参考资料
[1] 沈美明 温冬婵编著,IBM-PC汇编语言程序设计,北京:清华大学出版社,2001
[2] 沈美明 温冬婵 张赤红 编著 IBM-PC汇编语言程序设计实验教程,北京:清华大学出版社,2003
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论