(实验三)循环结构程序设计

合集下载

实验03 循环结构程序设计 ppt课件

实验03 循环结构程序设计 ppt课件
四、问题讨论 通过实验,你发现了什么问题?Do while循环中
为何不同的x值其迭代的次数明显不同?
2020/12/2
8
实验03 循环结构程序设计
一、实验目的 二、实验内容 三、注意事项 四、问题讨论
2020/12/2
1
一、实验目的
1、进一步掌握关系表达式和逻辑表达式; 2、掌握循环控制条件的描述;掌握三种循环结构的特征及
相互之间的等价转换;掌握DO、DO WHILE语句的语法规 则和使用要求; 3、掌握循环结构概念和循环结构程序设计方法。
2020/12/2
6
二、实验内容
2、在1500中,找出能同时满足用3除余2,用5除余3, 用7除余2的所有整数。编写程序实现之。(P194)
编程要求:利用DO循环语句和IF块语句实现。
2020/12/2
7
三、注意事项
(1)注意循环结构的特点,如DO循环、DO WHILE循环。 (2)注意循环结构与块IF语句混合使用的特点。
e e 要求输出 x 数值、 x 标准函数值EXP(x),以便对比
数据精度要求7位有效数字。
统计并输出do while循环中的迭代次数
(4)实验模型:
x = 0.8
n=5
x = -0.8
n=10
x = 50
n=100
(5)实验报告中只需画DO循环或do while循环中的一种流程图,
但2个源程序必须出现在报告中。
② 迭代种是根据级数第n项的绝对值小于事先给定的一个小正数eps(eps<=1E-7),迭
代就终止;(用Do While循环语句实现)
202一0/1种2/2是给定求和次数进行求和计算。(用DO循环语句实现)

实验三循环结构程序设计

实验三循环结构程序设计

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

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

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

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

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

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

条件循环结构一般使用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;```以上示例程序演示了使用循环结构来解决问题的方法。

微机原理实验三实验报告

微机原理实验三实验报告

实验3. 循环程序设计一、实验目的⒈掌握移位指令的使用方法。

⒉学会循环结构程序的编程方法。

⒊利用DEBUG调试程序查看循环程序循环过程中CS和IP的变化情况。

二、实验要求⒈编写程序并上机调试,记录运行结果。

⒉用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。

)⒊注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对循环程序的概念的理解。

三、实验内容⒉编写统计15个学生数学学习成绩程序。

要求:分别统计出低于60分,60-69分,70-79分,80-89分,90-100分的人数,并存放到S5,S6,S7,S8,S9,S10对应内存单元中。

源程序代码;DATA SEGMENTDATA1 DB 55,60,65,88,67,70,75,80,77,85,90,66,95,53,100DATA2 DB 5 DUP(?)DATA ENDS;CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,15LEA SI,DATA1LEA DI,DATA2AGAIN:MOV AL,[SI]CMP AL,90JB NEXT1INC BYTE PTR[DI]JMP NEXT0NEXT1:CMP AL,80JB NEXT2INC BYTE PTR[DI+1]JMP NEXT0NEXT2:CMP AL,70JB NEXT3INC BYTE PTR[DI+2]JMP NEXT0NEXT3:CMP AL,60JB NEXT4INC BYTE PTR[DI+3]JMP NEXT0NEXT4:INC BYTE PTR[DI+4]NEXT0:INC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START程序运行结果截图:四、实验总结本次实验掌握移位指令的使用方法。

实验三 参考答案

实验三  参考答案

实验三循环结构程序设计(参考答案)1、设计程序sy3-1.c,要求打印小学九九乘法表。

算法分析:根据九九乘法表可知,该表共有9行,第i行有i个表达式,而且表达式中的操作数和行、列数相关,因此可以用嵌套的双重循环来实现,外循环控制行数(循环变量从1到9),内循环控制每行的表达式个数(循环变量从1变到i)。

参考答案:# include <stdio.h>void main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%-5d",j,i,i*j);printf("\n");}}运行结果:2、设计程序sy3-2.c,要求编程计算x n,其中x和n均由键盘输入2。

算法分析:要计算x的n次方,即是n次x相乘,其中x可以是整型或实型,而n必须是整型;另外要考虑结果的类型,若x和n比较大,一般的int型容易产生溢出。

参考答案:# include <stdio.h>void main(){int i,n;float x,p=1; /*累乘器要赋初值1*/printf("Input x,n: ");scanf("%f,%d",&x,&n); /*以逗号分隔输入的已知数据x和n的值*/for(i=1;i<=n;i++)p=p*x;printf("%g^%d=%g\n",x,n,p);}运行结果:3、设计程序sy3-3.c,已知祖父年龄70岁,长孙20岁,次孙15岁,幼孙5岁,问要过多少年,三个孙子的年龄之和同祖父的年龄相等,试用单重循环结构编程实现。

算法分析:这个程序可以用穷举法来实现,1年、2年、3年……,每加一年都判断三个孙子的年龄之和是否同祖父的年龄相等,若相等则不加了,这个时候所加的年数为我们需要的结果。

程序设计基础(C语言)实验报告

程序设计基础(C语言)实验报告

程序设计基础(C语言)实验报告课程名称:程序设计基础(C语言)姓名:学号:年级:专业:指导教师:实验地点:目录实验一顺序结构程序设计实验二选择结构程序设计实验三循环结构程序设计实验四数组及其应用实验五函数及其应用实验六指针及其应用实验(一)顺序结构程序设计一、实验目的1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺次执行的特点。

2.掌握赋值语句的特点、功能。

3.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

4.掌握编写程序和调试程序的方法。

二、实验内容及要求1.用下面的scanf函数输入数据使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。

#include <stdio.h>int main(){int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%.1f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);return 0;}运行时分别按以下方式输入数据,观察输出结果,分析原因(□表示空格,↙表示回车)。

(1)a=3,b=7,x=8.5,y=71.82,A,a↙(2)a=3□b=7□x=8.5□y=71.82□A□a↙(3)a=3□b=7□8.5□71.82□A□a↙(4)a=3□b=7□8.5□71.82Aa↙(5)3□7□8.5□71.82Aa↙(6)a=3□b=7↙8.5□71.82↙A↙a↙(7)a=3□b=7↙8.5□71.82↙Aa↙(8)a=3□b=7↙8.5□71.82Aa↙通过此题,总结输入数据的规律和容易出错的地方。

实验结论循环结构程序设计

实验结论循环结构程序设计

实验结论循环结构程序设计一、引言二、实验目的三、实验原理1.循环结构的概念2.循环结构的分类3.循环结构程序设计的基本原则四、实验步骤1.确定循环次数和循环条件2.选择合适的循环结构语句3.编写循环体语句五、实验结果分析六、结论与讨论引言:编程是计算机科学中非常重要的一部分,而程序设计中常用到的循环结构也是非常重要的一种控制流程方式。

本文将介绍如何进行循环结构程序设计,并给出相应实验结果及分析。

实验目的:通过本次实验,我们将学会如何使用不同类型的循环结构来控制程序流程,并能够编写简单而有效的程序。

实验原理:1. 循环结构的概念:在程序运行过程中,为了重复执行某些操作或者根据特定条件反复执行某些操作,需要使用到循环结构。

2. 循环结构的分类:常见的有while循环、do-while循环和for循环。

3. 循环结构程序设计基本原则:确定好需要重复执行多少次或在什么情况下需要重复执行,选择合适的循环结构语句,编写循环体语句。

实验步骤:1. 确定循环次数和循环条件:在程序设计之前,需要明确需要重复执行多少次或在什么情况下需要重复执行。

2. 选择合适的循环结构语句:根据确定好的循环次数和循环条件,选择while、do-while或for等不同类型的循环结构语句。

3. 编写循环体语句:在循环结构中,需要编写具体的操作语句来实现所需功能。

实验结果分析:通过本次实验,我们可以发现,在程序设计中使用不同类型的循环结构可以有效地控制程序流程,并且能够编写出简单而有效的程序。

同时,在实际应用中也需要根据具体需求来选择合适的循环结构类型以及确定好相应的循环次数和条件。

结论与讨论:通过本次实验,我们深入了解了循环结构程序设计,并掌握了相应技能。

在今后的学习和工作中,我们将继续深入研究相关知识,并且不断提高自己在编程方面的能力。

C语言实验报告 实验三 参考答案

C语言实验报告 实验三  参考答案

实验三循环结构程序设计(参考答案)1、设计程序sy3-1.c,计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。

例如输入n 的值为20时,输出0.583333。

算法分析:穷举1~n(含n)之间的每一个整数,能否被5或者9整除。

如果能,则把它的倒数累加到累加器里去。

因为能被5整除的自然数,应该至少从5才可能,所以循环控制变量i可以5开始。

参考答案:#include<stdio.h>void main(){int n,i;double s=0; //累加器要赋初值为0,结果为小数,所以定义为实数类型printf("请输入n的值:");scanf("%d",&n);for(i=5;i<=n;i++) //穷举小于等于n的自然数if(i%5==0||i%9==0)s=s+1.0/i;// 因为i是整数类型,所以1/i的值为0printf("s=%f\n",s);}运行结果:2、设计程序sy3-2.c,计算并输出给定整数n的所有因子(不包括1与自身)之和。

例如,输入n的值是856时,应输出763。

算法分析:因子,就是能整除n的值。

所以从2到n-1穷举每个数是不是它的因子,是就累加到s中。

参考答案:#include<stdio.h>void main(){int s=0,n,i;printf("请输入n:");scanf("%d",&n);for(i=2;i<n;i++) //穷举所有可能为因子的整数if(n%i==0) //因子即是能整除n的数s=s+i;printf("%d的所有因子之和是:%d\n",n,s);}运行结果:3、设计程序sy3-3.c,输入一个整数,要求将该整数上各位数字是偶数的数取出,并按原来从高位到低位的顺序组成一个新数。

汇编语言程序设计上机实验报告(实验三)-循环程序设计

汇编语言程序设计上机实验报告(实验三)-循环程序设计

汇编语言程序设计上机实验报告(实验三)一、实验题目、内容及要求:一、实验题目、内容及要求:题目:循环程序设计内容:编写一程序,要求从键盘接收一个4位十六进制数,在终端上显示与它等值的二进制数。

二进制数。

要求:实验前要作好充分准备,包括程序清单、调试步骤、调试方法,对程序结果的分析等。

本实验要求在EDIT 下编写完整的汇编语言程并生成可执行文件运行。

下编写完整的汇编语言程并生成可执行文件运行。

二、实验时间及地点二、实验时间及地点日期:日期: 2011/11/21 节次:节次: 7.8 地点:地点:电子实验楼二楼电子机房电子实验楼二楼电子机房 三、实验目的三、实验目的通过本实验掌握DOS 系统功能调用功能,掌握循环程序设计的方法;学会编写循环结构程序。

构程序。

简述在实验过程中遇到的问题和解决的方法:简述在实验过程中遇到的问题和解决的方法:1、问题:遇到死循环解决方法:程序显示disp 中发现执行int int 21h 21h 会修改al 的值,避免这种情况的方法就是使用堆栈段。

2、问题:调试中出现no data segment 解决方法:start 开始时没有将数据段的IP 地址赋给dx 。

data segment 3、问题:可执行,结果为乱码解决方法:数据划分比较的粗,没有系统的将数据系统划分。

系统划分:<30h other 30h-39h num 39h-41h other 41h-46h big zi mu 46h-61h other 61h-67h small zi mu >67h other 运行结果:(要求用“抓图软件”抓程序的运行结果)(要求用“抓图软件”抓程序的运行结果)结果分析及实验体会:结果分析及实验体会:1、结果0001001000110100是十六进制数1234转化而来。

十六进制数通过ASCII码对照转换为二进制数。

A~F----- -57hA~ f----- -57h0~9 ------ -37h2、学习应用了循环指令并了解了其特点:A、循环指令不影响标志位B、其功能为使寄存器CX的值减1,如果结果不等于0,则循环至标号,否则顺序执行。

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

实验三循环结构程序设计
一、实验目的
●熟练掌握while语句及其嵌套形式的使用
●熟练掌握do-while语句及其嵌套形式的使用
●熟练掌握for语句及其嵌套形式的使用
●了解并掌握continue与break语句在循环结构中的作用
●熟悉循环结构程序段中语句的的执行过程
二、实验环境
●个人计算机一台,PIII500(或同等性能)以上CPU,128MB以上内存,500MB以
上硬盘剩余空间。

●Windows2000、Windows XP或Win 7操作系统
●Code::Blocks(版本12.11或近似版本,英文版)
三、实验内容
1. 数列求和
在花括号({})之间填写适当的语句,将程序补充完整实现下述功能,并上机运行验证。

程序的功能从键盘上输入一个整数n,并计算以下数列的前n项和:
例如,
输入:10
输出:s=14.266510
/*example-11.c*/
#include <stdio.h>
main()
{
int n, i;
float s;
scanf("%d", &n);
/*求前n项和,结果存放在s当中*/
/*可根据需要填入任意多条语句*/
printf("s=%f\n", s);
}
【解题提示】
使用for语句或while语句皆可。

注意运算对象的类型,“1/2”的值是0而不是0.5。

2. 素数
在花括号({})之间的横线中填写适当的语句,将程序补充完整实现下述功能,并上机运行验证。

程序的功能是从键盘上输入一个整数n,就n(包括n)以内的素数。

素数是指:只能被1和它本身整除的数(除了1以外,1不是素数)。

例如,
输入:50
输出:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
/*example-12.c*/
#include <stdio.h>
main()
{
int n, i, j;
printf("Input n:");
scanf("%d", &n);
printf("以下是小于%d的素数:\n", n);
/*列举2~n之间的所有数*/
for(i=2; ; i++)
{
/*下面这个循环判断i是否是素数*/
for(j = 2; ; j++)
{
/*如果i能够被j整除,就意味着i不是素数,循环可以提前终止*/
if(i % j == 0)
}
/*满足括号中的条件意味着n是素数,则输出*/
if( ) printf("%d ", i);
}
printf("\n");
}
【解题提示】
我们可以有以下思路用于判断某一个整数是否为素数:
给定一个整数n,我们可以从2开始至n-1逐一检查在这范围之内的整数是否可以被n 整除。

如果可以,则说明整数n不是素数。

如果从2开始至n-1范围之内的所有整数都不可以被n整除,那说明整数n符合素数的定义,所以整数n是一个素数。

判断整数n能否被整数m整除的方法是:n%m==0。

如果n对m取余等于0,那么n 能够被m整除;反之,n不能被m整除。

3. 水仙花数
在花括号({})之间填写适当的语句,将程序补充完整实现下述功能,并上机运行验证。

程序的功能是求出所有的“水仙花数”。

所谓的“水仙花数”是指这样的一个三位数:其各位数字的立方和等于该数本身。

例如:153是一个水仙花数,因为153=13+53+33。

/*example-13.c*/
#include <stdio.h>
main()
{
}
【解题提示】
(1)“水仙花数”是三位数,因此只能是100~999之间的数。

(2)列举100到999之间的每个数字,判断它是否是水仙花数,如果是就输出,不是就不输出。

(3)“水仙花数”各位数字的立方和等于该数本身,因此判断一个数n是不是“水仙花数”,要获得它各个位上的数字,然后求立方和,看立方和是否等于n。

四、总结与思考
循环结构是程序设计的三大基本控制结构之一,C语言中用于实现选择结构的语句有:
●while语句
●do-while语句
●for语句
此外,还要注意continue语句和break语句在循环结构中的作用。

编程时,可以不使用continue语句和break语句,但笔试中一定会考查到。

在完成以上实验的基础上,有兴趣的同学可以在课后思考以下问题:
思考题:打印等腰三角形
在花括号({})之间填写适当的语句,将程序补充完整实现下述功能,并上机运行验证。

程序的功能是从键盘上输入一个整数n,然后打印出n层有高的等腰三角形(由“*”组成)。

例如,当n为5时,如图1所示。

图1 5层高的等边三角形
/*think-3.c*/
#include <stdio.h>
main()
{
}
【解题提示】
实际上,这个等腰三角形是由“*”和空格两种符号构成。

我们要做的,就是判断出每层要输出多少个“*”和空格。

无论多高的等腰三角形,第一层都是1个“*”,第二层是3个“*”,第三层是5个“*”…………最后一层都是“*”。

很明显,这是一个公差为2的等差数列。

等差数列的第n项是:
S n = S1+ (n-1) * d(d为公差)
因此,n层高的等腰三角形,在第n层就要打印出1+(n-1)*2个“*”,这是打印“*”号最多的一层。

那么,在第x层(x<n),就要打印出1+(x-1)*2个“*”,剩下的部分就用空格填充。

因此在第x层,共要打印(1+(n-1)*2) – (1+(x-1)*2)个空格,其中一半的空格在最前方,另一半空格在最后端。

因此,我们可以按如下步骤打印等腰三角形的第x层进行:(1)求出该成要打印的星号数量:1+(x-1)*2
(2)求出该成要打印的空格数量:y = 1+(n-1)*2) – (1+(x-1)*2
(3)先打印出一半(y/2个)的空格
(4)接着打印出1+(x-1)*2个星号
(5)最后再打印出另一个(y/2个)的空格
(6)最后再打印一个回车换行符(\n)
由于第(5)步打印出的空格不可见,所以可以省略。

相关文档
最新文档