第10章 循环结构程序设计

合集下载

《C语言程序设计》实验指导

《C语言程序设计》实验指导

实验1、C语言编程环境和运行C程序的方法一、实验目的1、熟悉Visual C++6.0集成开发环境的使用方法;2、熟悉C语言程序从编辑、编译、连接到最后运行得到结果的全过程及每一步骤的作用;3、了解C语言程序的结构特征与书写规则,能够编写简单的C程序;4、初步理解程序调试的思想,能找出并改正C程序中的典型语法错误。

二、实验内容1、熟悉上机环境⑴参照教材附录A(P370~376)或实验指导书前言中的内容,熟悉VC++6.0集成环境,重点是其中常用菜单、工具按钮的功能;⑵在D盘建立一个自己的工作文件夹,文件夹以班名+学号后两位+姓名来命名(例如:动漫班75号张三的工作文件夹命名为dm75zhangsan 注意:文件夹及文件的命名尽量不要用汉字!);⑶参照教材第1章中的3个例题的源代码,在自己的工作文件夹中分别创建并运行三个C源程序,初步熟悉C 程序的结构特点和运行方式。

注意:①每个例题对应一个C源程序(新建C源文件时,文件时务必要加扩展名.c);②一个源程序成功运行后,要关闭工作区后再新建下一个例题的源程序(否则会出错);2、编程参照教材例题1.1编写一个程序实现分两行输出自己的姓名及联系电话。

3、程序改错调试以下给定程序的功能是在屏幕上显示“Welcome to Y ou!”,其中存在3处语法错误,请根据编译给出的出错提示,依次指出错误所在行并进行修改,调试程序使其能运行得到正确结果。

#include<stdio.h>mian() //1{printf(Welcome to You!\n") //2}三、实验要求1、将每次实验所编辑的C 源程序调试通过后分别保存在D 盘上自己的文件夹中(备查!)及自己的U 盘中;2、对调试过程中出现的问题和解决方法进行必要的记录,并予以简要分析四、实验小结1、结合本次实验,简述C 程序从编写到最终运行的一般过程,并简要说明其中每个步骤的作用及其生成的文件类型。

高中信息技术算法与程序设计教案粤教版选修

高中信息技术算法与程序设计教案粤教版选修

高中信息技术算法与程序设计教案粤教版选修一、第一章:算法与程序设计概述1. 教学目标了解算法的概念、特性以及算法与程序的关系。

掌握算法描述的方法,如伪代码和流程图。

理解程序设计的基本概念,如编程语言、编译器和解释器。

2. 教学内容算法定义及特性算法描述方法:伪代码和流程图程序设计基本概念3. 教学方法采用案例分析法,以具体的编程语言为例,让学生理解算法与程序设计的关系。

采用任务驱动法,让学生通过实际编写代码,体验算法实现的过程。

4. 教学步骤介绍算法的概念和特性,结合实例进行分析。

讲解伪代码和流程图的表示方法,引导学生学会使用这两种工具描述算法。

讲解程序设计的基本概念,如编程语言、编译器和解释器。

5. 课后作业结合本章内容,让学生编写一个简单的程序,实现一个基本的算法。

二、第二章:顺序结构程序设计1. 教学目标掌握顺序结构程序设计的基本语法和技巧。

理解顺序结构程序设计的原则,能够编写清晰、高效的程序。

2. 教学内容顺序结构程序设计的基本语法顺序结构程序设计的原则3. 教学方法采用案例分析法,通过分析具体的程序案例,让学生理解顺序结构程序设计的方法。

采用任务驱动法,让学生通过实际编写代码,掌握顺序结构程序设计技巧。

4. 教学步骤讲解顺序结构程序设计的基本语法,如变量声明、数据类型、输出语句等。

讲解顺序结构程序设计的原则,如代码清晰、可读性强、模块化等。

5. 课后作业结合本章内容,让学生编写一个简单的顺序结构程序,实现特定的功能。

三、第三章:分支结构程序设计1. 教学目标掌握分支结构程序设计的基本语法和技巧。

理解分支结构程序设计的原则,能够编写清晰、高效的程序。

2. 教学内容分支结构程序设计的基本语法分支结构程序设计的原则3. 教学方法采用案例分析法,通过分析具体的程序案例,让学生理解分支结构程序设计的方法。

采用任务驱动法,让学生通过实际编写代码,掌握分支结构程序设计技巧。

4. 教学步骤讲解分支结构程序设计的基本语法,如条件语句、循环语句等。

《谭浩强《C程序设计》(第4版)笔记和课后习题详解》读书笔记模板

《谭浩强《C程序设计》(第4版)笔记和课后习题详解》读书笔记模板

第11章常见错误分 析
1.1复习笔记 1.2课后习题详解
2.1复习笔记 2.2课后习题详解
3.1复习笔记 3.2课后习题详解
4.1复习笔记 4.2课后习题详解
5.1复习笔记 5.2课后习题详解
6.1复习笔记 6.2课后习题详解
7.1复习笔记 7.2课后习题详解
8.1复习笔记 8.2课后习题详解
作者介绍
这是《谭浩强《C程序设计》(第4版)笔记和课后习题详解》的读书笔记模板,暂无该书作者的介绍。
谢谢观看
目录分析
第2章算法——程 序的灵魂
第1章程序设计和C 语言
第3章最简单的C程 序设计——顺序程
序设计
1
第4章选择结构 程序设计
2
第5章循环结构 程序设计
3
第6章利用数组 处理批量数据
4 第7章用函数实
现模块化程序 设计
5
第8章善于利用 指针
第10章对文件的输 入输出
第9章用户自己建 立数据类型
9.1复习笔记 9.2课后习题详解
10.1复习笔记 10.2课后习题详解
11.1复习笔记 11.2课后习题详解
读书笔记
这是《谭浩强《C程序设计》(第4版)笔记和课后习题详解》的读书笔记模板,可以替换为自己的心得。
精彩摘录
这是《谭浩强《C程序设计》(第4版)笔记和课后习题详解》的读书笔记模板,可以替换为自己的精彩内容 摘录。
谭浩强《C程序设计》(第4版)笔记 和课后习题详解
读书笔记模板
01 思维导图
03 目录分析 05 精彩摘录
目录
02 内容摘要 04 读书笔记 06 作者介绍
思维导图
本书关键字分析思维导图
习题

实验三循环结构程序设计

实验三循环结构程序设计

实验三循环结构程序设计实验三的主题是循环结构程序设计。

循环结构是程序设计中的重要概念,它使程序能够重复执行一段代码,直到满足一些条件后停止。

在本实验中,我们将学习循环结构的基本用法,并通过一些示例程序来掌握循环结构的运用。

一、循环结构的基本概念循环结构是程序设计中的一种重要结构,它允许程序重复执行一段代码。

循环结构包括两种基本类型:条件循环和计数循环。

条件循环是指只要满足一些条件就一直执行循环体中的代码,直到条件不满足时停止循环。

条件循环结构一般使用while语句或do-while语句来实现。

例如,在一些游戏中,只要玩家的生命值不为0,就可以一直进行游戏。

计数循环是指循环体中的代码按照事先确定的次数执行,即通过计数器来控制循环的执行次数。

计数循环结构一般使用for语句来实现。

例如,在一些音乐播放器中,可以设置循环播放歌曲的次数。

二、循环结构的语法在编程语言中,循环结构的语法一般如下:1. while循环语句的语法:while(条件表达式)循环体2. do-while循环语句的语法:do循环体} while(条件表达式);3. for循环语句的语法:for(初始化表达式; 条件表达式; 更新表达式)循环体三、示例程序1. 使用while循环计算1到100的和:```c++#include <iostream>using namespace std;int maiint sum = 0;int i = 1;while (i <= 100)sum += i;i++;}cout << "1到100的和为:" << sum << endl;return 0;```2. 使用do-while循环计算用户输入数字的累加和,直到用户输入0为止:```c++#include <iostream>using namespace std;int maiint sum = 0;int num;docout << "请输入一个整数(输入0停止):" << endl;cin >> num;sum += num;} while (num != 0);cout << "累加和为:" << sum << endl;return 0;```3. 使用for循环计算1到10的乘积:```c++#include <iostream>using namespace std;int maiint product = 1;for (int i = 1; i <= 10; i++)product *= i;}cout << "1到10的乘积为:" << product << endl;return 0;```以上示例程序演示了使用循环结构来解决问题的方法。

C语言程序设计循环结构之“四要素学习法”

C语言程序设计循环结构之“四要素学习法”

C语言程序设计循环结构之“四要素学习法”作者:***来源:《电脑知识与技术》2020年第29期摘要:C语言程序设计中循环结构是顺序、选择、循环三大基本结构之一,功能强大,使用灵活方便,但是学生学习难度比较大。

该文以累加和为切入点深入分析循环结构特点,总结出循环结构“四要素学习法”,用for、while、do-while等循环语句分别实现其循环算法,并举例加以深入解读,使循环结构学习思路清晰,重点突出,对于学生掌握并灵活使用循环结构非常有帮助。

关键词:C语言程序设计;循环结构;四要素学习法中图分类号:TP311 文献标识码:A文章编号:1009-3044(2020)29-0121-031 背景C语言是面向过程的高级程序设计语言之一,它具有数据类型丰富、灵活高效和结构化等特征[1]。

C语言程序设计是自动化等工科专业非常重要的专业课程,尤其后期学习单片机时进行编程也是使用C语言。

循环指事物周而复始地运动或变化。

在计算机程序设计中,“循环”这一术语指的是一种专门的控制结构。

特征是重复执行循环体中的语句,比一般情况下的顺序执行复杂一些,需要跳转命令和条件判断组合实现[2]。

循环结构是C语言程序设计中三大基本结构之一[3],也是最为重要、使用频率较高的结构,其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。

循环结构一直是学生学习程序设计的一个难点,下面笔者就以循环结构中的累加和问题S= 1+2+3+…+100为切人点,谈一下自己的授课经验。

累加和的实现有2种方案。

解决方案1:考虑顺序结构来完成,虽然可以实现,但是比较烦琐,费工,计算机智能化快速化优势并没有体现出来,同时顺序结构算法的通用性太差,题目稍有变化如从1加到1000等,就不能解决了。

也就是说,顺序结构来解决重复才做问题,只能具体问题具体分析,不能解决此类问题。

解决方案2:使用循环结构实现,程序代码简单,逻辑清晰,而且通用性强,可以推广到类似的其他问题。

C语言基础 五、循环

C语言基础 五、循环

五、循环结构程序设计本章概述:以笔试和上机两种形式考核。

笔试中,多出现在选择题第20-23题。

填空题第8、9题。

分值约占12%。

上机中,三种题型中均有体现,抽中几率约为37%。

考生要熟练掌握。

大纲要求:1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

重点难点:1.for循环结构。

2.continue语句和break语句。

3.循环的嵌套。

考点分析:while 语句while 语句一般形式:while (条件表达式){循环体}while 语句执行过程:先判断条件是否成立,只要条件成立则一直执行循环体语句,直到条件不成立则结束循环,结束while语句。

说明:(1)while语句的特点是先判断,再执行。

因此,若条件表达式的值一开始就为“假”,那么循环体一次也不执行。

(2)当循环体为多个语句组成,必须用{}括起来,形成复合语句。

(3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。

试题解析1.要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是(A)A)while((ch=getchar())!=′N′)printf("%c",ch);B)while(ch=getchar()!=′N′)printf("%c",ch);C)while(ch=getchar()==′N′)printf("%c",ch);D)while((ch=getchar())==′N′)printf("%c",ch);解析:while语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。

直到表达式的值为假时,结束循环。

ch=getchar()应加一个括号,表示输入字符的函数。

循环结构

循环结构

[作业] 1、下列程序段是计算_______ 公式的。 S:=0; t:=1; for i:=1 to 10 do Begin t:=t*I; s:=s+t end; (A) s=1+2+3+4+…+10 (B) s=1*2*3*4*…*10 (C)s=1!+2!+3!+…+10! (D) s=1+2*3+3*4+4*5+…+9*10 注:N!表示1*2*3*…*N ,如3!=1*2*3 本题的循环体不止一句,是一个复合语句,用begin 和 end 圈起来了。 2、var x1,x2,I,x:integer; 该题采用列表法,将变量的值分步写出来。 begin x1:=3; i x x2 x1 x2:=8; 0 8 3 for i:=1 to 5 do 1 begin x:=(x1+x2)*2; 2 x1:=x2; x2:=x; 3 end; 4 writeln(‘x=’,x); 5 end. 运行结果:

[例2]求1+2+3+4+……+N的 和小于等于10000的最小的N。
程序如下: var n,s:integer; begin n:=0; s:=0; while s<10000 do begin n:=n+1; s:=s+n; end; writeln(‘N=’,n) end.
[注意]其中的 n和s必须在循环 语句之前赋初值。
[例1]体育彩票。体育彩票的号码由7位数字组成,现 用电脑帮你编一程序产生随机数。
重复7次,可以使用循环语句来实现。 Var a, I :integer; Begin randomize; {启动程序的随机数开关} For i:=1 to 7 do Begin a:=random(10); {a取一个小于10的整数,但不取负数,可以取0} write (a); end; end.

《MATLAB程序设计》实验指导书

《MATLAB程序设计》实验指导书

三、
实验仪器和设备
1、 计算机一台。 2、 MATLAB7.0 以上集成环境。
四、
预习要求
2
《MATLAB 程序设计》实验指导书
1、 复习 MATLAB 的启动与Байду номын сангаас出,熟悉 MATLAB 运行环境。 2、 复习 MATLAB 中矩阵的生成以及矩阵运算的基本原理。
五、
实验内容及步骤
实验内容:
1、 求下列表达式的值 1) z1
5
《MATLAB 程序设计》实验指导书
2) 函数调用 函数文件编制好后,就可调用函数进行计算了。函数调用的一般格式为 [输出实参表]=函数名(输入实参表) 注意:函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个 数一致,否则会出错。函数调用时,实参先传递给形参,然后再执行函数功能。 5、 选择结构 1) if 语句 a) 单分支 if 语句 if 条件 语句块 end b) 双分支 if 语句 if 条件 语句块 1 else 语句块 2 end c) 多分支 if 语句 if 条件 1 语句块 1 elseif 条件 2 语句块 2 …… elseif 条件 n 语句块 n else 语句块 n+1 end 2) switch 语句 switch 表达式 case 结果表 1 语句块 1 case 结果表 2 语句块 2 ……
二、
实验原理
1、 M 文件 用 MATLAB 语言编写的程序,称为 M 文件,它们的扩展名均为.m。M 文件根据 调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file) 。 2、 建立新的 M 文件 启动 MATLAB 文本编辑器有 3 种方法: 1) 单击工具栏上的“New M-File”命令按钮。 2) 从 MATLAB 主窗口的“File”菜单中选择“New”菜单项,再选择“M-file”命令。 3) 在 MATLAB 命令窗口输入命令“edit”。 3、 打开已有的 M 文件 1) 在当前目录窗口选中要打开的 M 文件,双击鼠标左键。 2) 单击 MATLAB 主窗口工具栏上的“Open File”命令按钮,再从弹出的对话框中 选择所需打开的 M 文件。 3) 从 MATLAB 主窗口的“File”菜单中选择“Open”命令,在“Open”对话框中选中 所需打开的文件。 4) 在 MATLAB 命令窗口输入命令“edit 文件名” 。 4、 函数文件 1) 函数文件的基本结构 函数文件由 function 语句引导,其基本结构为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意:函数名的命名规则与变量名相同。当输出形参多于一个时,应用方括号 括起来。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


图10-1(a)所示的循环结构执行时,循环体至少要执行 一次后,才判别循环是否结束,所以这种循环结构称为“不允 许零次循环结构”,即不论循环条件是否满足,至少要执行一 次循环体,故称之为“先执行,后判断”的循环结构。 图10-1(b)所示的循环结构执行时,由于先进入循环的控制 部分,即先判断循环的条件是否满足,所以有可能循环体一次 也不执行。我们把这种循环结构称为“允许零次循环结构”。 又可称为“先判断,后执行”的循环结构。 10.2 循环结构程序设计 本节用几个实例来阐明组织循环结构的必要性。 【例10-2】 编程计算Y= 。已知a1~a20依次存放 在以BUF为首地址的字存储单元中,设存放和的变量SUM也是 字单元(设和还是字数据)。 本例题先以顺序结构的方法来编程,其程序结构如下:
【例10—4】 从字节变量X单元开始,连续存放有100个无符号数,从中找出最 大者送入MAX字节单元中。 分析:可把第一个数先送到AL中,将AL中的数与后面的99个数逐个进行比较, 如果AL中的数大于或等于与之相比较的数,则转下一个数进行比较;若AL中的数 小于相比较的数,则把相比较的数送入AL中,保证AL中的数始终处于较大的数。 比较99次之后最大数必定在AL中,最后把AL中的数送入MAX单元。本例的特点: 循环次数已知,因此可以用计数器来控制循环的执行,程序流程图如图10—2所示。 程序编写如下: DATA SEGMENT X DB 106,135,101,210,┉; 共100个 MAX DB ? DATA ENDS STAK SEGMENT STACK DW 20H DUP(?) STAK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA BX,X MOV AL,[BX] MOV CX,99
方法二:用寄存器相对寻址方式编写循环程序。 方法二 DATA SEGMENT STR1 DB ‘AB*$D….’ ; 共100个字符 STR2 DB 100 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS :CODE,DS :DATA START:MOV AX,DATA MOV DS,AX MOV SI,0 MOV CX,100 LOP: MOV AL,[SI+STR1] MOV [SI+STR2],AL INC SI LOOP LOP MOV AH,4CH INT 21H CODE ENDS END START 在有多个数组,长度相等且为同步变化的情况下,采用变址寻址,即寄存器相 对寻址就显得方便、简洁,可以节省寄存器。
DATA BUF SUM DATA STAK
SEGMENT DW a1,a2,a3,… ,a20 DW ? ENDS SEGMENT STACK DW 10H DUP(?) STAK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,BUF MOV AX,0 ;累加寄存器清0 ADD AX,[BX] ; 完成 AX←0+a1 INC BX INC BX ADD AX,[BX] ; 完成AX←a1+a2 INC BX INC BX ADD AX,[BX] ; 完成AX←a1+a2+a3 INC BX INC BX ┇
ADD AX,[BX] ;完成AX←a1+a2+a3+┅+a19 INC BX INC BX ADD AX, [BX] ;共重复20次,才完成求和 MOV SUM, AX ;存和 MOV AH,4CH INT 21H CODE ENDS END START 从本例可知,加法运算及其后的修改地址这几条指令重复20次,若按顺序结 构编程,书写麻烦,占用大量的存储空间,所以使用循环结构就呈现其独到之处。 现以循环结构编程如下: DATA SEGMENT BUF DW a1,a2,a3,…,a20 SUM DW ? DATA ENDS STAK SEGMENT STACK DW 10H DUP(?) STAK ENDS
LOP:
INC BX ADD AX,BX CMP AX,1000 JB LOP MOV N,BX MOV SUM,AX MOV AH,4CH INT 21H CODE ENDS END START
方法三 :采用基址变址寻址方式编写循环程序。 DATA SEGMENT STR1 DB ‘AB*$D┉’ ; 共100个字符 STR2 DB 100 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV BX,OFFSET STR1 LEA BP,STR2 MOV SI,0 MOV CX,100 LOP: MOV AL,[BX +SI] MOV DS:[BP+SI],AL ;段超越指向数据段 INC SI LOOP LOP MOV AH,4CH INT 21H CODE ENDS END START 使用BP的基址变址寻址,要加段超越前缀DS:才能在数据段中访问存储单元。
方法四:采用串传送指令编写循环程序。(数据段定义如方法三,此处略) 方法四 ……… CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX ; 附加段的段首址与数据段重叠 LEA SI,STR1 ; 取原串首址 LEA DI,STR2 ; 取目的串首址 MOV CX,100 ; 取字符长度 CLD ; 增址方问 REP MOVSB MOV AH, 4CH INT 21H CODE ENDS END START 由本例分析可知,对于某些带有重复操作的顺序程序结构,只要经过适当调整 安排,用循环结构来编写程序,从而避免操作指令书写冗长,占用时间,浪费空间 的缺点,这就是用循环结构来代替顺序结构的程序设计的指导思想。IMB-PC机提供 了专门用于构成循环结构的重复控制指令(LOOP等),利用这些指令可方便地由软 件实现程序的循环操作。同时系统还提供了串操作指令并可借助于重复前缀,由硬 件配合,实现基本数据串指令的重复操作。因此掌握好上述指令的用法是进行循环 结构程序设计的基础。
【例10—3】从STR1为起始地址的100个字符,依次传送到以STR2为起始地址的连 续字节存储单元中。(设两个数组不发生重叠)试用不同寻址方式编写循环程序。 方法一:采用寄存器间接寻址方式编写循环程序。 方法一 DATA SEGMENT STR1 DB ‘AB*$D┉’ ; 共100个字符 STR2 DB 100 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA BX,STR1 ; 取源数组首址 LEA SI, STR2 ;取目标数组首址 MOV CX,100 ;置循环次数 LOP: MOV AL,[BX] ; MOV [SI],AL ; 完成字符传送 INC BX ; 修改地址指针 INC SI ; LOOP LOP MOV AH,4CH INT 21H CODE ENDS END START
LOP: INT BX CMP AL,[BX] JAE L1 MOV AL,[BX] L1 : LOOP LOP MOV MAX,AL MOV AH,4CH INT 21H CODE ENDS END START 有了这个程序模块,就很容易实现在一个带符号的数组 中寻找最大数,只需要把以上程序中的JAE L1改成JGE L1 就可以;同样,还是这个程序模块,要求寻找无符号数组中 最小的数,也只需要把JAE L1改成JBE L1就可以。所以说, 我们平时多掌握一些典型的程序模块,要实现相类似功能的 程序,只需要修改个别语句即可实现程序的移植,省去什么 都要自己编写程序的时间。
3.修改部分。 当然,这部分也可以算在循环体中。修改部分主要是为了保证每次循环时,相 关信息能发出有规律的变化,为下一次循环作好准备。如计数器的值,操作数的地 址修改等内容。 4.循环控制部分。 循环控制部分用于控制重复执行的次数。一般是检测循环结束条件。当循环结 束条件不满足时,返回去继续重复执行循环体;当循环结束条件满足时,退出循环 执行循环结构的后续语句。 循环控制是循环程序设பைடு நூலகம்的关键。每个循环程序必须选择一个恰当的循环控制 条件来控制循环的运行和结束。如果循环不能正常运行,则不能完成特定功能,如 果循环不能结束,则将陷入“无限循环”。因此,合理地选择循环条件就成为循环 程序设计的关键问题。有时循环次数是已知的,可使用循环次数计数器来控制;有 时循环次数是未知的,那就应该根据具体情况设置控制循环结束的条件,称为终止 标志。 循环控制部分主要由条件转移指令,控制循环指令以及系统所提供的串操作指 令和重复前缀来实现。如例10-1所示 【例10-1】 ① 用条件转移指令控制循环 ┇ MOV CX,N ;N事先要用EQU定义 ┇ LOP:……… ┇
【例10—5】 从自然数1开始累加,直到累加和大于等于1000为止,统
计被累加的自然数个数存入字单元N中,累加和送入字单元SUM中。流程 图如图10—3所示。 分析:被累加的自然数个数事先是末知的,也就是说,循环的次数是末知 的,因此不能用计数方法来控制循环。选择BX寄存器统计自然数的个数, 而BX也是用来存放每次取得的自然数,用AX寄存器存放累加和,和 ≧1000是供判断的结束标志。源程序编写如下: DATA SEGMENT N DW ? SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA : MOV DS,AX MOV BX,0 MOV AX,0 ;累加reg
CODE SEGMENT ASSUME CS:CODE,DS:DATA START : MOV AX,DATA MOV DS,AX LEA BX,BUF ; 循环初始化部分:取数组首地址的偏移量 MOV AX,0 ;累加寄存器清0 MOV CX,20 ;相加数据个数 LOP : ADD AX,[BX] ; 循环体 INC BX INC BX LOOP LOP MOV SUM,AX MOV AH,4CH INT 21H CODE ENDS END START 循环结构克服了用顺序结构所产生的烦琐、冗长。在循环结构的编程中,可根 据不同的寻址方式编写完成相同功能的循环程序,见【例10—3】所示。
相关文档
最新文档