实验六 排序程序设计

时间:2025-07-09

实验六排序程序设计

一、实验目的

1. 掌握分支、循环、子程序调用等基本的程序结构。 2. 学习综合程序的设计、编制及调用。 二、实验设备

TDS-MD微机一台 三、实验内容及步骤

1、在数据区中存放着一组数,数据的个数就是数据缓冲区的长度,要求用

气泡法,对该数据区中用数据按递增关系排序 设计思想:

(1) 从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,

即第N个数与第N-1个数比较,第N-1个数与第N-2个数比较等等;若第N-1个数大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。此时,N个数中的最小数将被排在N个数的最前列。

(2) 对剩下的N-1个数重复第(1)步,找到N-1个数中最小数。 (3) 重复第(2)步,直到N个数全部排序好为止。 算法的参考流程图及参考程序如图6-1所示。(规定N=10,数据区首址为3000H)。 实验步骤:

(1) 分析参考程序并将其输入,检查无误。 (2) 在数据区输入如下数据:

10 12 14 15 35 6 9 21 23 41

(3) 调通程序,并检查最后的运行结果。

>G=2000 >D3000

>0000:3000 06 09 10 12 14 15 21 23 >0000:3008 35 41 CC CCCCCCCCCC

(4) 反复修改数据区中的数,运行程序并观察结果,以验证程序的正确性。

结论:经过多次运行和观察,程序符合要求。

地址(H)助记符注释 2000 MOV CX,000A 2003 MOV SI,300A

2006 MOV BL,FF ;初始化 2008 CMP BL,FF

200B JNZ 202A ;BL不为FF则转 200D MOV BL,00

200F DEC CX ;外循环修正CX 2010 JZ 202A 2012 PUSH SI 2013 PUSH CX 2014 DEC SI

2015 MOV AL,B[SI] 2017 DEC SI

2018 CMP AL,B[SI] 201A JA 2023

201C XCHG AL,B[SI] 201E MOV B[SI+01],AL 2021 MOV BL,FF 2023 INC SI

2024 LOOP 2014 2026 POP CX 2027 POP SI 2028 JMP 2008 202A INT

图6-1 排序程序

2.学生成绩名次表

将成绩分数为1~100之间的30个成绩存入首地址为3000H的单元中,3000H+i表示学号为i的学生成绩。编写程序能在3100H开始的区域排出名次表,3100H+i为学号i的学生的名次。

程序流程图及参考程序如图6-2所示。

Y

N

实验步骤

(1) 按流程图编制相应的程序。 (2) 在数据区输入如下数据:

51 62 73 84 95 65 67 88 99 89 91 87 64 62 72 74 76 82 84 86 89 91 92 94 86 85 73 69 66 60 (3) 调通程序,并检查最后的运行结果。

>G=2000 >D3100

>0000:3100 CC 1E 1B 0B 0E 02 19 17 >0000:3108 09 01 07 05 0A 1A 1C 15 >0000:3110 12 11 10 0F 0B 08 06 04 >0000:3118 0B 0C 0D 14 16 18 1D CC

(4) 结论:所设计程序可以实现题目要求的功能,符合要求。

实验六 排序程序设计.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219