实验4 顺序与分支结构
- 格式:doc
- 大小:286.50 KB
- 文档页数:9
实验四分支结构程序设计实验实验四分支结构程序设计实验一、实验目的1.掌握分支结构程序设计的基本设计方法;2.掌握条件转移指令和无条件转移指令的使用方法;3.掌握指令对标志寄存器中各标志位的影响情况;4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。
二、实验要求1.学会使用DEBUG的T命令,跟踪检查指令对标志位的影响情况;2.学会使用DEBUG中的P命令,对INT指令的跟踪方法;3.学会利用设置断点调试程序的方法;4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。
三、实验举例【例3.4】编写程序,从键盘上输入三个一位十进制数据,找出其中大于平均值的数据,并在屏幕上显示出来。
【解题思路】首先将三个数累加求和,再除3求出平均值,然后将三个数据分别与平均值进行比较。
三个已知数据的输入利用INT 21H的1号功能,大于平均值的数据利用INT 21H 的2号功能输出。
【步骤一】启动EDIT编辑器,编辑源程序。
程序清单如下:CSEG SEGMENTASSUME CS:CSEGSTART: XOR BX,BXMOV AH,01INT 21HMOV CH,AL ;第一个数据暂存CH中SUB AL,30HADD BL,AL ;累加求和MOV AH,01INT 21HMOV CL,AL ;第二个数据暂存CL中SUB AL,30HADD BL,AL ;累加求和MOV AH,01INT 21HMOV DH,AL ;第三个数据暂存DH中SUB AL,30HADD AL,BL ;累加求和XOR AH,AHMOV BH,3DIV BH ;求平均值ADD AL,30HMOV BL,AL ;平均值暂存BL中CMP BL,CH ;与第一个数比较JAE NEXT1MOV DL,CHMOV AH,02INT 21HNEXT1: CMP BL,CL ;与第二个数比较JAE NEXT2MOV DL,CLMOV AH,02INT 21HNEXT2: CMP BL,DH ;与第三个数比较JAE DONEMOV DL,DHMOV AH,02INT 21HDONE: MOV AH,4CHINT 21HCSEG ENDSEND源程序输入完成后,以EXAM4.ASM为文件名存入磁盘,进行下一步操作。
实验四顺序结构程序设计及运算符首先根据“新建文件夹操作提示”操作提示,在自己对应的计算机上建立一个文件夹,即文件夹的名字为“XX106X学号的后两位姓名”,如“水养106302匡珍春”,然后在新建好的文件夹里面再建一个文件夹,文件夹名字为“第4次”,而后依次按下面要求完成作业,同时将要存盘的作业按规定的文件名保存在刚才新建好的文件夹里。
提示:因为新建的文件夹名中包含有中文字,所以存盘时建议先保存在k:盘中,然后再将相应的.c程序从k:盘复制到刚才新建好的文件夹里。
实验目的:(1)掌握++、--运算符作为前缀与后缀的区别,掌握复合赋值运算符以及不同运算符的优先级别;(2)加深对运算符/和%的理解;(3)掌握C语言中printf()和scanf()函数的使用;(4)提高修改错误程序的能力。
实验内容:实例分析1 分析以下程序的运行结果。
重新输入、运行下面的程序并验证结果。
分析++、––运算符前缀和后缀运算的区别。
分析不同运算符的优先级别。
(无需存盘)#include "stdio.h"void main(){ int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("i=%d, j=%d, m=%d, n=%d\n", i, j, m, n);}(1)运行程序,注意 i、j、m、n 各变量的值,分别作以下改动并运行。
(2)将第6、7行改为:m=i++;n=–++j;再运行,分析比较运行结果。
(3) 将程序改为:#include "stdio.h"void main(){ int i,j,m,n;i = 8;j = 10;m = ++i;n = –j++; /*此例主要说明运算符的结合方向*/printf("i=%d, j=%d, m=%d, n=%d\n", i, j, m, n);}(4) 将程序改为:#include "stdio.h"void main(){ int i,j,m,n;i = 8;j = 10;m = ++i;n = –++j;printf("i=%d, j=%d, m=%d, n=%d\n", i, j, m, n);}(5)在(4)的基础上,将printf 语句改为:printf("%d,%d", ++i, ++j);(6)再将printf 语句改为:printf("%d,%d,%d,%d", i, j, i++, j++);(7) 将程序改为:#include <stdio.h>void main(){ int i, j, m=0, n=0;i = 8;j = 10;m+= i++;n–= ––j;printf("i=%d,j=%d,m=%d,n=%d", i, j, m, n);}实例分析2 分析每个输出语句的输出结果,输入以下程序验证分析结果。
《系统分析与设计》实验报告
实验四顺序图
【实验名称】顺序图
【实验目的】
1.理解动态交互模型的建模技术。
2.掌握顺序图的描述方法。
【实验器材】
1.计算机一台。
2.Rational Rose 工具软件。
【实验内容】
在前面的类图分析、设计中,我们已经确定了类的属性,类之间的关系,现在我们要考虑类的方法。
寻找类的操作的有效方法之一是绘制交互图。
交互图体现了如何为对象分配职责。
当一个对象接收了某条消息,就表明该对象具有处理该条消息的职责。
针对特定场景中各个系统事件单独绘制交互图,用以说明系统接收到该事件后,由哪些对象互相协作、来共同完成对事件的处理,从而抽象出对象以及对象的职责。
顺序图用来描述对象间的交互行为。
【实验结果】
将各自负责的子系统的顺序图复制,有几个就复制几个。
实验四顺序与分支结构一、实验目的1.熟练掌握赋值语句。
2.熟练掌握分支结构程序设计方法,灵活使用有关语句。
二、实验内容1.实验准备在练习文件夹中建立vb4-1、vb4-2、vb4-3、vb4-4、vb4-5、vb4-6、vb4-7文件夹。
2.赋值实验赋值语句的作用是把表达式的值赋给变量,变量可以是内部变量,也可以是对象的属性。
例1:给内部变量赋值设计一个简单的VB程序,在窗体上放置一个命令按钮Command1,编写按钮的单击事件过程,观察给变量赋值的情况。
(1)创建工程。
(2)建立用户界面在窗体下方画1个命令按钮,名称为Command1。
(3)编写命令按钮的事件代码。
双击“Command1”按钮,进入代码编写窗口,编写如下代码:(5)调试运行程序。
单击Command1按钮,观察各个变量的输出结果,进一步理解赋值语句的作用和用法。
(6)保存结果到练习文件夹中的vb4-1文件夹。
例2:为对象设置属性值对象的大部分属性值都可以在设计阶段设置,也可以在运行时设置。
运行时可以用赋值语句为对象的属性设置属性值,赋值格式为:对象.属性= 属性值设计一个工程,用户可在两个文本框内输入字体和字号,以控制文本的显示格式,当用户单击命令按钮后,两个文本框内的文字改用新的字体、字号显示。
设计一个简单的VB程序,界面如下:图4.1为对象设置属性值实验窗体界面设计(1)创建工程。
(2)建立用户界面。
各控件主要属性的设置参见表4.1。
表4.1 属性设置(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:(4)调试运行程序。
启动工程,在文本框Text1中输入字体名称,在文本框Text2中输入字号值,单击显示按钮,可见在两个文本框中显示文字的字体变化和大小变化,如图4.2所示。
图4.2 为对象设置属性值实验窗体运行情况(5)保存结果到练习文件夹中的vb4-2文件夹。
注意:所输入的字体必须是你的计算机中已经安装过的,如图4.3所示,是在Word字体列表框中列出的字体,不同的电脑所装字体不同。
实验四分支和循环程序设计实验(设计性实验)一、实验要求和目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言分支程序基本指令的使用方法;3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法;4.了解汇编语言循环程序设计的基本流程;5.熟悉汇编语言循环基本指令的使用方法;6.掌握利用汇编语言的循环指令完成循环程序设计方法。
二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识在实际应用中,经常根据一些条件来选择一条分支执行。
汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。
1.无条件转移指令JMP无条件转移指令JMP 是使程序无条件转移至目标处,又分为段内转移、段间转移。
2.条件转移指令JXX条件转移指令可分为三大类:1).简单条件转移指令指令。
根据单个标志位的状态判断转移条件。
标志位指令转移条件意义JC CF=1 有进位/借位CFJNC CF=0 无进位/借位JE/JZ ZF=1 相等/等于0ZFJNE/JNZ ZF=0 不相等/不等于0JS SF=1 是负数SFJNS SF=0 是正数JO OF=1 有溢出OFJNO OF=0 无溢出JP/JPE PF=1 有偶数个1PFJNP/JPO PF=0 有奇数个12).无符号数条件转移指令。
假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是A-B,其转移指令如下:指令转移条件意义JA/JNBE CF=0 AND ZF=0 A>BJAE/JNB CF=0 OR ZF=1 A>=BJB/JNAE CF=1 AND ZF=0 A<BJBE/JNA CF=1 OR ZF=1 A<=B3).带符号数条件转移指令。
指令转移条件意义JG/JNLE SF=OF AND ZF=0 A>BJGE/JNL SF=OF OR ZF=1 A>=BJL/JNGE SF OF AND ZF=0 A<BJLE/JNG SF OF OR ZF=1 A<=B在汇编程序设计中,要熟练使用循环指令和跳转等指令来实现循环,理解循环体结构中的初始化部分、循环体、结束部分,并且要结合前面分支结构相关的知识点,加深对循环结构的理解和掌握。
实验四分支结构程序设计实验一、实验目的1.掌握分支结构程序设计的基本设计方法;2.掌握条件转移指令和无条件转移指令的使用方法; 3.掌握指令对标志寄存器中各标志位的影响情况;4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。
二、实验要求1.学会使用DEBUG 的T 命令,跟踪检查指令对标志位的影响情况; 2.学会使用DEBUG 中的P 命令,对INT 指令的跟踪方法; 3.学会利用设置断点调试程序的方法;4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。
三、实验内容1.编写程序,已知在DATA 开始的内存单元中,连续存放着三个一位十六进制数,找出其中最大数及最小数,存放在指定的内存单元中。
2.编写程序,从键盘输入若干个任意字符,如果是小写字母a ~z 之间的字符,请将它们转换成相应的大写字母,若为其它字符,则保持不变,将转换后的新字符保存在指定的存储单元中。
四、解题思路1.先对DATA 内存单元连续存放三个一位十六进制数。
先对DATA 内存单元里的前两个数据比较,较大的数据再和第三个数据比较,从而得到最大数据存到MAX 内存单元里。
把两次比较得到的两个较小的数据进行比较,从而得到最小数据存到MIN 内存单元里。
两个无符号数据比较后,用JA/JNBE、JAE/JNB/JNC/、JB/JNAE/JC和JBE/JNA来判别两数的大小关系,这些条件转移指令是把进位标志CF 和零标志位ZF 结合起来判别的。
2.先开辟20个字节的内存单元DATA 用来存储输进来字符串和修改后的字符串。
对字符串的输入是以‘#’为结束字符的,当字符的个数少于20时,只要输入的字符串是以‘#’结尾,就代表字符串输入结束(其中结束字符‘#’也是字符串中的一个字符存储到内存单元里)。
每次输入一个字符,就对其进行判别。
若输入的字符在字符‘a ’到‘z ’之间,那么就对其进行转换成对应的大写字母(方法把小写字母的值减去32即可),然后再存到指定的内存单元中;否则,直接把输入的字符存到指定的内存单元中去。
实验四 分支程序与循环程序一、实验目的1、熟悉转移指令的功能与使用;2、掌握偏移量的计算方法;3、熟悉分支程序设计和调试方法;4、进一步掌握堆栈指令的使用;5、熟悉循环程序设计和调试方法。
二、实验仪器1、DVCC-598JH 单片开发机一台;2、WD-5型直流稳压源一台。
三、实验预习1、认真阅读实验指导书有关内容,明确实验目的、内容和操作步骤;2、对实验中的程序和指令进行手工汇编;3、复习实验中相关指令的功能;4、复习偏移量的计算及OFST 键的操作方法。
四、实验内容 1、分支程序设计分支程序是根据不同的条件,执行不同的程序段,也称条件分支程序。
程序一:比较片内RAM 40H 和41H 单元中的两个无符号数,将较大数存入40H 单元,较小数存入41H 单元。
)0()0(∠≥⎩⎨⎧+-=a a ba b a y参考程序:ORG1000HSTART : MOV A ,40H CLRCSUBB A ,41HJNCW AITMOV A,40HXCH A,41HMOV 40H,AW AIT:SJMP $END程序二:设a数存放在累加器A中,b数存放在寄存器B中,求下列算式的y值,并将结果存入累加器A中。
参考程序:ORG 1000HJB ACC.7,NUSCLR CSUBB A,BSJMP DONENUS:ADD A,BDONE:SJMP DONEEND2、循环程序设计在实际应用中,往往需要多次反复执行某种相同的操作,而只是参与操作的操作数不同,这时就可以采用循环程序结构。
它可以缩短指令数,减少程序所占的内存空间。
程序三:数据块传送将片外RAM中地址为4500H~450FH中的数据块传送到4700H~470FH单元中。
参考程序:地址目的程序源程序ORG 1000H1000 7A00 MOV R2,#00H1002 7B45 MOV R3,#45H1004 904700 MOV DPTR,#4700H1007 C083 LOOP:PUSH DPH1009 C082 PUSH DPL100B 8A82 MOV DPL,R2100D 8B83 MOV DPH,R3100F E0 MOVX A,@DPTR1010 D082 POP DPL1012 D083 POP DPH1014 F0 MOVX @DPTR,A1015 A3 INCDPTR1016 0A INCR21017 BA10ED CJNE R2,#10H,LOOP101A 80FE SJMP $END五、实验步骤1、认真阅读实验参考程序并分析程序运行后的理论结果;2、输入程序并检查输入是否正确;3、根据已知条件输入程序执行前的原始数据;4、执行程序,检查并记录结果;六、练习1、将ASCII码转化为十六进制数。
实验4分支结构程序设计分支结构是程序设计中常用的一种控制结构,通过判断条件的真假来选择不同的执行路径。
在实验4中,我们将学习如何使用分支结构来设计程序。
一、分支结构的基本语法在分支结构中,根据条件的真假执行不同的代码,主要有以下几种语法结构:1. if语句: if语句是最基本的分支结构,用于根据条件执行不同的代码块。
语法如下:if (条件)//条件为真时执行的代码} else//条件为假时执行的代码其中,条件是一个表达式,如果表达式的值为真,则执行if语句块中的代码;否则执行else语句块中的代码。
2. if-else if-else语句:用于根据多个条件选择执行不同的代码。
语法如下:if (条件1)//条件1为真时执行的代码} else if (条件2)//条件1为假,条件2为真时执行的代码} else//条件1和条件2都为假时执行的代码在这种结构中,多个条件会按照顺序依次被检查,一旦一些条件为真,相应的代码块即被执行,后续的条件判断将被略过。
3. switch语句:用于根据不同的表达式值选择执行不同的代码块。
语法如下:switch (表达式)case 值1://表达式的值与值1相等时执行的代码break;case 值2://表达式的值与值2相等时执行的代码break;...default://表达式的值与之前的值都不相等时执行的代码break;在switch语句中,表达式的值将与每个case后的值进行比较,如果相等,相应的代码块将被执行,使用break语句可以使程序跳出switch 语句。
二、分支结构的应用在实验4中,我们可以结合具体问题来设计分支结构程序。
以下是一个示例:问题:根据学生的成绩判断其等级并输出。
解决方法:1.输入学生的成绩。
2. 使用if-else if-else语句判断成绩所属的等级,并输出。
具体实现如下:#include <iostream>int mai//输入学生的成绩int score;std::cout << "请输入学生的成绩:";std::cin >> score;//判断成绩所属等级并输出if (score >= 90)std::cout << "成绩等级为A" << std::endl;} else if (score >= 80)std::cout << "成绩等级为B" << std::endl;} else if (score >= 70)std::cout << "成绩等级为C" << std::endl;} else if (score >= 60)std::cout << "成绩等级为D" << std::endl;} elsestd::cout << "成绩等级为E" << std::endl;}return 0;在上述代码中,我们通过if-else if-else语句根据学生的成绩判断其等级,并输出相应的结果。
Python程序设计程序的分支结构实验报告======================一、实验目的------通过本次实验,我们旨在学习和掌握Python程序设计中的分支结构,包括if语句、if-else语句以及if-elif-else语句。
通过实例代码,我们将了解这些分支结构的基本语法和用法,并练习使用它们来解决实际问题。
同时,我们也将了解在实习过程中如何运用所学知识,提高解决问题的能力。
二、实习岗位的认识和见解---------在实习过程中,我深刻认识到Python程序设计的重要性以及它在现实世界中的应用广泛性。
作为一名实习生,我明白了在工作中如何运用所学知识,如何与同事合作,如何解决问题。
此外,我也了解了公司的开发流程和标准,以及如何编写高质量的代码。
三、实习过程中发现的问题和解决问题的方法-----------------在实习过程中,我遇到了一些问题。
例如,在处理某些复杂的逻辑时,我曾经感到困惑。
我发现自己有时候会混淆if和elif语句的用法,或者在嵌套的if语句中迷失。
为了解决这些问题,我开始仔细阅读代码,并向同事请教。
我明白了if语句用于测试单个条件,而elif 语句则用于测试多个条件。
同时,我还学习了如何避免在嵌套的if语句中迷失,例如使用更多的变量来存储状态,或者重构代码以使其更易于理解。
四、对实习过程的总结和收获--------------通过这次实习,我学到了很多关于Python程序设计的分支结构的知识。
我掌握了if、if-else以及if-elif-else语句的用法,并能够在实践中应用它们。
同时,我也学会了如何与同事合作解决问题,如何使用版本控制系统来管理代码,以及如何编写高质量的代码。
此外,我还深刻认识到在实习过程中保持积极态度的重要性。
尽管有时候会遇到困难和挑战,但只要我们保持积极的态度并不断努力,我们就能克服困难并取得进步。
五、对实习过程中的不足之处的建议-----------------在实习过程中,我觉得有一些方面可以改进。
C语言程序设计实验教案一、实验目的1. 掌握C语言的基本语法和编程技巧。
2. 培养学生的逻辑思维能力和问题解决能力。
3. 熟悉开发环境,学会调试和运行C程序。
二、实验内容1. C语言基本数据类型和运算符。
2. 顺序结构程序设计。
3. 分支结构程序设计。
4. 循环结构程序设计。
5. 函数的定义和调用。
三、实验要求1. 每个实验项目都需要编写相应的C程序。
2. 每个程序都需要包含注释,说明程序的功能和关键代码。
3. 每个程序都需要经过调试,确保程序的正确性。
4. 提交实验报告,包括程序代码、运行结果和实验心得。
四、实验步骤1. 打开开发环境,新建C语言文件。
2. 根据实验内容,编写相应的C程序。
3. 进行代码调试,找出并修正错误。
4. 运行程序,观察并分析运行结果。
五、实验时长1. 实验一:C语言基本数据类型和运算符(1学时)2. 实验二:顺序结构程序设计(1学时)3. 实验三:分支结构程序设计(1学时)4. 实验四:循环结构程序设计(1学时)5. 实验五:函数的定义和调用(1学时)六、实验六:数组和字符串操作1. 目的:掌握一维和多维数组的声明、初始化和使用。
学习字符串的基本操作和处理。
2. 内容:数组的声明和访问。
二维数组的操作。
字符串的复制、连接和长度计算。
3. 要求:编写程序实现数组的排序(例如冒泡排序)。
编写程序实现字符串的逆序。
4. 步骤:设计数组排序的算法,并编写相应程序。
设计字符串逆序的算法,并编写相应程序。
调试程序,确保功能正确。
5. 时长:1学时七、实验七:指针理解指针的概念和作用。
掌握指针的基本操作,如赋值、解引用和指针算术。
2. 内容:指针的声明和初始化。
指针与数组。
指针与函数。
3. 要求:编写程序利用指针操作数组元素。
编写程序实现指针作为函数参数传递。
4. 步骤:编写程序演示指针与数组的操作。
编写程序演示指针作为函数参数的使用。
调试程序,确保指针的使用正确无误。
5. 时长:1学时八、实验八:结构体和文件操作1. 目的:学习结构体的定义和使用。
实验名称:程序分支结构实验实验目的:1. 理解程序分支结构的基本概念和作用。
2. 掌握条件语句的使用,实现程序根据不同条件执行不同的代码块。
3. 通过实验加深对逻辑判断和程序流程控制的理解。
实验环境:1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm实验内容:本次实验主要围绕程序分支结构展开,通过编写Python程序,实现以下功能:1. 输入两个整数,判断它们是否相等。
2. 输入一个整数,判断它是奇数还是偶数。
3. 输入一个学生的成绩,根据成绩判断其等级。
实验步骤:1. 编写代码实现第一个功能:判断两个整数是否相等。
```python# 输入两个整数num1 = int(input("请输入第一个整数:"))num2 = int(input("请输入第二个整数:"))# 判断两个整数是否相等if num1 == num2:print("两个整数相等。
")else:print("两个整数不相等。
")```2. 编写代码实现第二个功能:判断一个整数是奇数还是偶数。
```python# 输入一个整数num = int(input("请输入一个整数:"))# 判断奇数还是偶数if num % 2 == 0:print("该整数是偶数。
")else:print("该整数是奇数。
")```3. 编写代码实现第三个功能:根据学生的成绩判断其等级。
```python# 输入学生的成绩score = float(input("请输入学生的成绩:"))# 判断等级if score >= 90:print("等级:A")elif score >= 80:print("等级:B")elif score >= 70:print("等级:C")elif score >= 60:print("等级:D")else:print("等级:E")```实验结果:1. 输入两个整数,程序能够正确判断它们是否相等。
实验四——多分⽀结构及本章总结1. 本次课学习到的知识:(1):分⽀结构分为⼆分⽀或多分⽀结构,⼆分⽀有两种,⽇⽤基本的if语句实现,即if-else语句和省略else的if语句。
⽽都分⽀简单理解是第⼀个表达式为真则执⾏它然后结束整个if语句,然后以此理推。
(2):字符型数据:字符型变量类型名char及字符型变量op和字符型常量。
(3):switch语句和if-else语句都可以实现多分⽀结构,不过switch可读性较⾼。
(4):逻辑运算符::逻辑⾮!、逻辑与&&、逻辑或||2. 实验过程中遇到的问题及解决⽅法:(1):试验中的问题最简单的也往往被忽视的就是粗⼼好⼏次实验都是如此因为⼀个⼩细节⽽找了好久浪费了许多时间。
(2):这种循环的格式有时候写着写着会乱了。
(3):课上有些地⽅没注意,然后课下就很懊恼,通过⽹上查阅解决。
3. 实验⼼得体会及本章学习总结:这个篇章是关于逻辑运算什么的还有⼀些语句的运⽤如switch,上课听的基本上都能懂,因为内容也并不是很多,可课下⾃⼰操作的时候就有点累,因为需要记住的运算类型和符号越来越多。
只好回过头翻书去做,不过还好可以完成。
4. 学习C语⾔程序设计⼀个⽉以来的收获和总结:上了⼀个⽉c语可了不可能⼀点收获没有,相⽐刚接触这个那是的我来说已静变化不⼩了,这⼀个⽉从认识,到能靠⾃⼰打出来感觉⽐较满意。
但是每当我对着电脑打这些东西时感觉特别空洞,也许是知道的太少早以后的学习中我会努⼒的。
5. ⼩练习:写出下列条件的C语⾔表达式:(1)(ch==' ')||(ch=='\n')(2)(ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')(3) (number>='0')&&(number<='9')(4)(chinese>=80)&&(math>=80)&&(english>=80)(5) (chinese>=80)||(math>=80)||(english>=80)(6)(a>c)&&(b>c)(7) (a<b)||(a<c)(8) (n%3==0)||(n%5==0)(9)(score>=70)&&(score<=80)(10)number%2==06. 预习循环结构中while和do-while ,写出这两者循环结构有什么区别,并与for循环有什么区别:(1)while⽤于实现循环,它的适⽤⾯⽐for语句更⼴,⼀般形式为:while(表达式)循环体语句(2)do-while:do{循环体语句}while表达式(3)与for区别:while,for先判断条件,条件满⾜后进⼊循环:do-while先执⾏循环体,后判断循环条件**附加题#include<stdio.h>int main(void){int choice,i;double price;for (i=1;i<=5;i++) {printf ("[1]Select crisps \n"); printf ("[2]Select popcorn \n"); printf ("[3]Select chocolate \n"); printf ("[4]Select cola \n"); printf ("[0]exit \n");printf ("Enter choice:");scanf ("%d",&choice);if (choice==0)break;switch (choice) {case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5,break;case5:price=0.0;break;}printf ("price=%0.1f \n",price); }printf ("Thanks \n");return 0;。
实验四顺序与分支结构
一、实验目的
1.熟练掌握赋值语句。
2.熟练掌握分支结构程序设计方法,灵活使用有关语句。
二、实验内容
1.实验准备
在练习文件夹中建立vb4-1、vb4-2、vb4-3、vb4-4、vb4-5、vb4-6、vb4-7文件夹。
2.赋值实验
赋值语句的作用是把表达式的值赋给变量,变量可以是内部变量,也可以是对象的属性。
例1:给内部变量赋值
设计一个简单的VB程序,在窗体上放置一个命令按钮Command1,编写按钮的单击事件过程,观察给变量赋值的情况。
(1)创建工程。
(2)建立用户界面在窗体下方画1个命令按钮,名称为Command1。
(3)编写命令按钮的事件代码。
双击“Command1”按钮,进入代码编写窗口,编写如下代码:
(5)调试运行程序。
单击Command1按钮,观察各个变量的输出结果,进一步理解赋值语句的作用和用法。
(6)保存结果到练习文件夹中的vb4-1文件夹。
例2:为对象设置属性值
对象的大部分属性值都可以在设计阶段设置,也可以在运行时设置。
运行时可以用赋值
语句为对象的属性设置属性值,赋值格式为:
对象.属性= 属性值
设计一个工程,用户可在两个文本框内输入字体和字号,以控制文本的显示格式,当用户单击命令按钮后,两个文本框内的文字改用新的字体、字号显示。
设计一个简单的VB程序,界面如下:
图4.1为对象设置属性值实验窗体界面设计
(1)创建工程。
(2)建立用户界面。
各控件主要属性的设置参见表4.1。
表4.1 属性设置
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:
(4)调试运行程序。
启动工程,在文本框Text1中输入字体名称,在文本框Text2中输入字号值,单击显示按钮,可见在两个文本框中显示文字的字体变化和大小变化,如图4.2所示。
图4.2 为对象设置属性值实验窗体运行情况
(5)保存结果到练习文件夹中的vb4-2文件夹。
注意:所输入的字体必须是你的计算机中已经安装过的,如图4.3所示,是在Word字体列表框中列出的字体,不同的电脑所装字体不同。
输入列表框中存在的字体名,则程序会正常运行。
否则,系统弹出出错信息,如图4.4所示,此时可单击“结束”按钮,重新启动程序。
因此,上机实验时应该注意自己的电脑安装了什么字体。
图4.3 Word字体列表框中列出的字体图4.4 输入错误字体后的出错信息
输入的字号必须是正数,可以带小数,如果输入的字号值小于或等于零,系统也会弹出如图4.4所示的出错信息。
3.单分支实验
单分支结构是条件是真时执行某语句块,条件为假时不执行语句块。
例3:设计一个简单的VB程序,要求在三个文本框内任意输入三个数,设计一个求其最大值的程序。
界面如下:
图4.5求三个数的最大值窗体界面设计
(1)创建工程。
(2)建立用户界面。
各控件主要属性的设置参见表4.2。
表4.2 属性设置
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:
(4)调试运行程序。
在文本中输入数据,单击命令按钮,结果显示在标签中,如图4.6所示。
图4.6 求三个数的最大值执行情况 图4.7 三个数排序执行情况
(5)保存结果到练习文件夹中的vb4-3文件夹。
以下代码自己阅读理解,不需保存成工程。
已知三个数,将它们按从小到大的顺序显示。
要求从上例中添加一个按钮Command2,单击Command2后,取文本框中的三个数排序,排序后的数显示在标签内,如图4.7所示。
程序代码如下:
4.双分支实验
例4:设计一个简单的VB 程序。
要求:计算分段函数⎩⎨
⎧=+≠-=0
2
30
52x x x x y ,程序运行效果如图4.9所示。
(1)创建工程。
图4.8 求分段函数值的窗体界面设计图 4.9 分段函数求值运行效果
(2)建立用户界面。
各控件主要属性的设置参见表4.3。
表4.3 属性设置
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:
(4)调试运行程序。
在文本框Text1中输入自变量的值,再单击命令按钮,应该在按钮上方的文本框内显示函数值,如图4.9所示。
(5)保存结果到练习文件夹中的vb4-4文件夹。
4.多分支实验
例5:设计一个简单的VB程序。
界面如下:
要求:当输入正数时输出“x>0”,输入零时输出“x=0”,
输入负数时输出“x<0”。
(1)创建工程,建立用户界面,如右图所示。
图4.10设计界面
(2)双击按钮控件,切换到代码设计窗口,在过程Command1_Click() 中添加程序代码如下:
(4)调试运行程序。
(5)保存结果到练习文件夹中的vb4-5文件夹。
三、思考题
1.设计一个程序。
要求:用输入对话框输入x ,根据下式计算对应的y ,并在窗体上输出y 的值 x
1/2+sinx
x>10
y= 0 x=10
2x 3+6
x<10
注:程序写在命令按钮Command1的Click 事件中。
设计提示:
(1)在窗体上添加一个按钮控件,双击按钮,在
Private Sub Command1_Click( )
……
End Sub
中书写程序;
(2)使用InputBox 函数输入x 的值; (3)用 If … Then
……
ElseIf … Then
……
Else
……
End If
结构来书写程序;
(4)使用Print 语句输出计算结果;
(5)运行程序;
(6)保存结果到练习文件夹中的vb4-6文件夹。
2.设计一个程序。
要求:求解形如ax2 + bx + c = 0的任意方程的解。
设Delt = b 2 - 4ac ,编程时要考虑以下4种情况: (1) a = 0时,提示:这不是一个二次方程; (2) a <> 0、Delt > 0时,方程有两个不等的实根; (3) a <> 0、Delt = 0时,方程有两个相等的实根; (4) a <> 0、Delt < 0时,方程有两个共轭复根。
程序运行后,针对任意输入的一组系数,可能产生四种不同的结果,如图4.11所示。
保存结果到练习文件夹中的vb4-7文件夹。
图4.11 练习2运行后产生一元二次方程三种不同类型的根。