实验4-分支结构程序的设计说明

合集下载

《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 程序从编写到最终运行的一般过程,并简要说明其中每个步骤的作用及其生成的文件类型。

分支程序的设计实验报告

分支程序的设计实验报告

分支程序的设计实验报告实验目的本实验旨在通过设计一个分支程序来展示控制流程中的分支结构,加深对这一概念的理解,并通过实际编程提高对分支结构的应用能力。

实验原理分支程序是一种常见的控制流程结构,它根据条件的真假选择不同的执行路径。

在编程中,分支程序通常用于判断特定条件是否满足,并根据不同结果执行不同的操作。

常见的条件语句包括if 语句、switch 语句等。

在设计一个分支程序时,需要明确条件和执行路径,并根据不同情况进行相应处理。

分支程序的设计需要考虑条件的正确性和完备性,避免出现判断错误或遗漏情况。

实验过程本实验选择使用Python 语言来设计和实现一个简单的分支程序。

具体步骤如下:1. 首先,根据实际需求确定分支程序的目标和条件。

在本实验中,我们设计了一个分支程序来判断一个数字是否是奇数。

2. 接下来,根据选定条件,实现相应的判断逻辑。

我们使用if 语句来对给定数字进行判断。

如果数字对2 求余等于0,那么这个数字是偶数;否则,这个数字是奇数。

3. 在程序中加入输出语句,以便用户能够看到最终的判断结果。

4. 编译和运行程序,观察输出结果是否符合预期。

在实验过程中,我们还可以进行额外的调试和优化,并添加更多的分支条件来扩展程序功能。

例如,我们可以增加一个分支条件来判断数字是否为负数,或者根据数字的大小进行不同的处理等。

实验结果经过编写、编译和运行,我们得到了一个简单的分支程序。

该程序可以根据给定的数字判断其是否是奇数,并将结果输出给用户。

下面是程序的源代码:pythonn = int(input("请输入一个整数: "))if n % 2 == 0:print("这是一个偶数。

")else:print("这是一个奇数。

")以下是程序运行的示例结果:请输入一个整数: 5这是一个奇数。

请输入一个整数: 8这是一个偶数。

实验总结通过本次实验,我们深入学习了分支程序的设计原理和实现方法,并通过编写一个简单的示例程序加深了对分支结构的理解。

汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)一、实验目的1、掌握分支程序、循环程序的设计方法。

2、熟悉DEBUG程序的使用方法。

3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。

二、实验内容1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。

2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。

三、实验准备1、预习数据传送指令,熟悉分支和循环程序设计方法。

2、预习DEBUG调试程序的使用方法。

3、根据实验内容要求,编写好实验源程序。

四、实验步骤1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。

2、汇编、连接源程序,产生.EXE可执行文件。

3、运行程序。

(1) 进入DEBUG。

打入DEBUGT MYPROG.EXE。

MYPROG为所编程序的文件名。

(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。

如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。

(3) 检查程序。

在程序中设置若干断点,以便杳出错误所在。

(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。

五、实验报告要求1、列出程序清单,并给出程序流程图。

2、总结实现数据传送的几种方法,指出它们的区别。

开始3、分析实验中所遇到的一些问题,分析错误原因。

4、说明本实验中是如何使用DEBUG进行调试的。

CX、SI、DI置初值六、流程图勤开始设置增量方式CX、SI、DI置初值保存SI内容AL [SI] SI SI+源块长度[DI] AL N SI>DIYSI SI+1 恢复SI内容恢复SI内容DI DI+1CX CX-1 设置减量方式N CX=0, SI指向源块末尾DI指向目的块末尾Y结束 [DI] [SI]题一流程图 N 传完了吗, 书馆 Y结束题二流程图七、程序清单题一程序清单:STACK SEGMENT STACK ‘STACK’DB 100 DUP(0)STACK ENDSDATA SEGMENT PARA ‘DATA’SOUR DB 0、1、2、3、4、5、6、7、8、9 DEST DB 10 DUP(,)DB ‘$’DATA ENDSSEGMENT PARA‘CODE’ASSUME CS:CODEMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV CX,10MOV SI,offset SOURMOV DI, offset DESTAGAIN: MOV AL,[SI]MOV [DI],ALINC SIIN DILOOP AGAINMOV DX,offset DESTMOV AH,09HINT 21HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA ‘DATA’STRG DB ‘ABCDEFGHIJKLMNOP’STG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA ‘CODE’DB 100 DUP(0) STACK ENDSCODE SEGMENT PARA ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,STRSEMOV SI,OFFSET STG1MOV DI,OFFSET STG2CLDPUSH SIADD SI,STRSE-1CMP SI,DIPOP SIJL MOVESTDADD SI,STRSE-1ADD DI,STRSE-1 MOVE: REP MOVSB RETMAIN ENDPCODE ENDSEND START。

第四章-汇编语言程序的设计

第四章-汇编语言程序的设计

第四章汇编语言程序设计本章的汇编语言程序设计的主要容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。

(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。

在介绍之前,我们还是来学习汇编语言的一些基础知识)4.1 汇编语言程序设计概述1、计算机的汇编语言以助记符表示的指令,每一条指令就是汇编语言的一条语句。

(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。

汇编语言的语句有严格的格式要求)2、汇编语言的语句格式MCS-51汇编语言的语句格式表示如下:[<标号>]: <操作码> [<操作数>]; [<注释>]标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。

①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。

②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。

(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。

)操作码:规定语句执行的操作容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。

操作数:给指令的操作提供数据或地址。

注释:是对语句或程序段的解释说明。

(在单片机中,这四个部分怎么加以区分呢?使用分界符)分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。

冒号(:)用于标号之后空格()用于操作码和操作数之间逗号(,)用于操作数之间,分割两个以上的操作数分号(;)用于注释之前。

【实验指导书】实验3:分支结构程序设计

【实验指导书】实验3:分支结构程序设计

实验三:分支结构程序设计一、实验目的:1. 熟练掌握关系表达式和逻辑表达式的使用;2. 熟练掌握用嵌套的if语句和switch语句实现多分支结构程序设计;3. 熟练掌握switch语句中break语句的作用;4. 掌握简单的调试程序方法,包括:单步调试和运行到光标。

二、实验要求:1.编写程序,计算分支函数。

要求:输入为任意实数,输出结果保留小数点后2位。

输入输出示例:Enter x:227.00提示:实现x n可以标准库函数pow(x,n),此数学函数已在头文件math.h中说明。

2.编写程序。

根据一个年份,判断是否是闰年。

要求:输入为一个整数,表示一个年份;输出:如果是闰年,输出"Yes",否则输出"No"。

输出单独占一行。

输入输出示例:Enter year:2012Yes3. 编写程序。

给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。

要求:输入为三个正整数,中间有一个空格隔开;输出:如果能构成三角形,输出"Yes",否则输出"No"。

提示:在一个三角形中,任意两边之和大于第三边。

输入输出示例:3 4 5Yes4.输入五级制成绩(A~E),输出相应的百分制(0~100)区间。

要求用switch语句。

五级制对应的百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D((60~69))、E(0~59)。

输入输出示例:Input Grade:BB对应的百分制成绩区间是80~895.编写程序,输入月薪salary,输出应交的个人所得税tax(保留2位小数)。

按照2011年开始实行的新的个人所得税法,计算公式为:tax=rate*(salary - 3500)- deduction当salary ≤3500时,rate = 0、deduction = 0;当3500 <salary ≤5000时,rate = 3%、deduction = 0;当5000 <salary ≤8000时,rate = 10%、deduction = 105;当8000 <salary ≤12500时,rate = 20%、deduction = 555;当12500 <salary ≤38500时,rate = 25%、deduction = 1005;当38500 <salary ≤58500时,rate = 30%、deduction = 2755;当58500 <salary ≤83500时,rate = 35%、deduction = 5505;当83500 <salary时,rate = 45%、deduction = 13505。

实验4分支结构程序设计

实验4分支结构程序设计

实验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语句根据学生的成绩判断其等级,并输出相应的结果。

分支结构在程序设计的作用

分支结构在程序设计的作用

分支结构在程序设计中的作用主要体现在以下几个方面:
逻辑判断:分支结构可以根据不同的条件执行不同的代码块,从而实现程序的逻辑判断。

通过使用分支结构,程序能够根据不同的条件做出决策,从而改变程序的执行流程。

条件执行:在程序设计中,有时候需要根据不同的条件执行不同的操作。

分支结构允许程序员根据条件判断的结果来选择要执行的代码块,从而实现更加灵活的程序行为。

异常处理:分支结构可以用于实现异常处理。

当程序遇到错误或异常情况时,可以使用分支结构来处理这些情况,避免程序崩溃或出现不可预测的行为。

输入验证:在接收用户输入时,分支结构可以帮助验证输入的有效性。

根据输入的不同情况,分支结构可以执行不同的代码块,从而对无效的输入进行适当的处理。

多路选择:分支结构可以用于实现多路选择,即根据不同的条件执行不同的代码路径。

这对于需要处理多种可能情况或条件的程序来说非常有用。

总的来说,分支结构在程序设计中的作用是实现条件控制和多路选择,使得程序能够根据不同的情况做出决策,更加智能地处理问题,提高程序的灵活性和可维护性。

同时,正确使用分支结构也是保证程序逻辑正确、提高程序性能的重要手段。

分支结构程序设计实验报告

分支结构程序设计实验报告

分支结构程序设计实验报告实验目的本次实验旨在通过编写分支结构程序,加深对分支结构的理解,并提高编写程序的能力。

实验内容本次实验分为两个部分,分别为编写一个判断分数等级的程序和一个银行利率计算程序。

判断分数等级编写一个程序,根据输入的分数输出对应的等级。

等级规则如下:- 90分以上:优秀- 80-89分:良好- 70-79分:中等- 60-69分:及格- 60分以下:不及格银行利率计算编写一个程序,根据输入的存款金额和存款期限计算出存款到期后的本息合计。

假设银行利率为年利率,根据存款期限的不同,利率如下:- 存款期限小于等于1年:年利率为3%- 存款期限大于1年小于等于3年:年利率为4% - 存款期限大于3年:年利率为5%实验步骤判断分数等级程序思路1. 接收用户输入的分数。

2. 使用if-elif-else语句判断分数所处的等级范围。

3. 根据判断结果,输出对应的等级。

银行利率计算程序思路1. 接收用户输入的存款金额和存款期限。

2. 使用if-elif-else语句判断存款期限范围。

3. 根据判断结果,计算存款到期后的本息合计。

4. 输出存款到期后的本息合计。

实验代码判断分数等级程序代码pythonscore = float(input("请输入分数:"))if score >= 90:print("优秀")elif score >= 80:print("良好")elif score >= 70:print("中等")elif score >= 60:print("及格")else:print("不及格")银行利率计算程序代码pythonamount = float(input("请输入存款金额:")) period = float(input("请输入存款期限:"))if period <= 1:interest_rate = 0.03elif period <= 3:interest_rate = 0.04else:interest_rate = 0.05total_amount = amount * (1 + interest_rate)print("存款到期后的本息合计为:", total_amount)实验结果与分析判断分数等级程序当输入分数为85时,程序输出良好,符合预期。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.练习题一
编写程序,计算练习一分段函数的值。

(1)用scanf函数输入x的值。

(2)运行程序时,分别按x的值小于0、x的值在0-15之间、x的值大于15三种情况输入数据,检查输出的y值是否正确。

运行结果截图:
思考题及问题:
判断x的值在0-15之间可否使用表达式“0<=x<15”?为什么?正确的表示方法是什么?
答案:
不可。

因为一个条件判断表达式中最多只能有一个运算符。

正确的表示方法是x>=0&&x<15.
2.练习题二
输入3个数字,判断他们是否能构成三角形,如果不能,输出提示信息;否则判断它是直角、等边、等腰还是普通三角形。

# include <stdio.h>
int k=1;void test();
void main()
{
void test()
{ char c;
printf("Test again?y/n:");
if ((c=getchar())=='n'||c=='N')//只有当输入N或n时才终止程序
k=0;
}
运行结果截图:
思考题及问题:
判断三角形的类型时需要用到各种判断条件,入等边三角形的判断条件是3条边相等,该判断条件可否描述为“a=b=c”?为什么?
答案:
1.练习题三
编写一个程序,输出给定的某年某月的天数。

要求:
采用switch语句实现。

case 12:days=31;break;
case 4:
case 6:
case 9:
case 11:days=30;break;
case 2: if (year%4==0&&year%100!=0||year%400==0)
leap =1;
else
leap=0;
if (leap)
days=29;
else
days=28;
}
printf("%d年%d月的天数为%d天\n",year,mon,days); }
运行结果截图:
思考题及问题:
①本程序所给代码中的switch语句没有default语句可以吗?default语句应该在switch
语句的什么位置?
②本程序所给代码中的最后一个case语句中,没有break正确吗?请解释。

1.自测练习一
编写程序,计算逻辑表达式的值。

假设int a=0,b=1,c=1,d=3;
(1)表达式a*b&&c-d、c-d&&a*b是多少?为什么?
程序代码:
printf("%d,%d",a*b&&c-d,c-d&&a*b);
}
运行结果截图及原因:
a*b=0,逻辑假,由于与运算的短路性,&&右边的表达式不进行,直接为0;c-d=-2,逻辑真,为1,故第二个运算式为1&&0=0.
(2)表达式—a||++b&&--c的值是多少?变量a、b、c的值分别是多少?为什么?
程序代码:
# include <stdio.h>
void main()
{
int a=0,b=1,c=1,d=3;
printf("%d\n",-a||++b&&--c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
运行结果截图及原因:
++b即b的值为2,是真值1,--c值即c的值为0,假值0。

-a即a的值为0,假值0. 故结果为0||1&&0=1&&0=0,
程序代码:
# include <stdio.h>
void main()
{
int a=0,b=1,c=1,d=3;
printf("++b&&--c||--a=%d\n",++b&&--c||--a);
printf("a=%d,b=%d,c=%d",a,b,c);
}
运行结果截图及原因:
++b即b的值为2,是真值1,--c值即c的值为0,假值0。

--a即a的值为-1,真值1. 故结果为1&&0||1=1,
2.自测练习二
设整型变量a、b、c分别存放从键盘输入的3个整数。

编写C程序,按从大到小排列这3个数,使a成为最大值,c成为最小值,并且按序输出这3个数。

源程序代码:
运行结果截图:
3.自测练习三
从键盘输入一个小于六位的正整数,判断它是几位数,并按照相反的顺序输出各位上的数字,例如输入1234,输出为4321。

源程序代码:
# include <stdio.h>
# include <math.h>
void main()
{
int i=4,a[6]={0},k=0;
printf(“请输入一个小于六位的正整数:");
scanf("%d",&a[5]);
while (a[5]<(int)pow(10,i))//判断输入数据的位数
i--;
k=i+1;
printf("它是%d位数",k);
a[i+1]=a[5];
for (;i>=1;i--)
{
a[i]=a[i+1]%(int)pow(10,i);
a[i+1]=a[i+1]/(int)pow(10,i);
}
for (i=1;i<=k;i++)//倒序输出
printf("%d",a[i]);
printf("\n");
}
运行结果截图:
4.自测练习四
假设今天是星期日,编写一个程序,求n(n由键盘输入)天后是星期几。

源程序代码:
# include <stdio.h>
void main()
{
int n,t;
printf("假设今天是星期日,求n天后是星期几\n输入n=");
scanf("%d",&n);
t=n%7;
switch(t)
{
case 0:printf("n天后还是星期日\n");break;
case 1:printf("n天后是星期一\n");break;
case 2:printf("n天后是星期二\n");break;
case 3:printf("n天后是星期三\n");break;
case 4:printf("n天后是星期四\n");break;
case 5:printf("n天后是星期五\n");break;
case 6:printf("n天后是星期六\n");
}
}
运行结果截图:
5.自测练习五
假定向邮寄包裹的收费规则如下:首先,包裹重量向上取整到最近的15g的倍数,然后按书上表格收费,编写一个程序根据用户输入的包裹的重量和里程计算邮费。

包裹邮费计算表
源程序代码:
运行结果截图:。

相关文档
最新文档