实验四循环结构大全语言程序设计实验报告
- 格式:docx
- 大小:11.92 KB
- 文档页数:6
循环结构程序设计(C语言实验报告)实验目的:1. 掌握循环结构程序设计流程2. 熟悉while、do-while和for循环语句的使用3. 掌握循环语句的嵌套应用实验原理:循环结构是一种非常重要的程序设计结构,其目的是为了让程序可以重复执行一段代码块,从而达到省去大量代码重复编写的目的,也可以是让程序能够按照用户的需求反复执行一段代码块。
在C语言中,常用的循环结构有while、do-while和for三种,这三种循环语句的基本语法结构是:while(循环条件){循环体语句;}其中,while循环和do-while循环的区别在于:while循环条件成立时,不一定会执行一次循环体,但do-while循环条件成立时,会先执行一次循环体,然后判断循环条件是否成立;至于for循环,则是将循环条件、循环初值和循环增量三个要素集成在一起,使用比较方便。
另外,循环结构也可以进行嵌套应用,即在循环体内部再嵌套一个循环,这样可以实现多个变量的循环控制。
应用实例包括如下:1. 打印九九乘法表2. 对一个数组进行排序3. 多重循环实现字谜游戏实验内容:1. while循环:目的是求出1~100的整数和,并在程序运行过程中输出1~100的所有整数。
目的是输入若干个数字,计算它们的平均值。
3. for循环:目的是输入一个数n,求1~n中可以被3或5整除的所有整数和。
4. 循环嵌套:目的是打印九九乘法表。
实验总结:本次实验通过三种常用的循环结构,并结合实例进行学习掌握,同时还熟悉了循环嵌套的应用。
相信这对于日后的程序设计和代码优化应用会非常有帮助。
Python程序设计实验报告四循环结构程序设计实验报告四:循环结构程序设计实验目的:通过本实验,学生将学会使用Python编程语言中的循环结构来设计和实现程序。
实验内容:1. 了解循环结构的概念和基本语法;2. 熟悉Python中的三种循环结构:for循环、while循环和嵌套循环;3. 设计并实现使用循环结构的程序;4. 调试和运行程序,验证程序的正确性。
实验步骤:1. 确定实验题目和要求;2. 分析问题,确定所需的循环类型和循环变量;3. 根据循环类型和循环变量,编写循环结构的代码;4. 调试代码,确保程序的正确性;5. 运行程序,观察程序输出结果是否符合实验要求;6. 如果结果不正确,根据错误信息进行修改,重新运行程序;7. 记录实验结果和对程序的修改;8. 完成实验报告,并附上程序代码。
实验示例:下面是一个使用循环结构的Python程序设计示例,旨在计算并输出1到100之间所有偶数的和。
```python# 循环结构程序设计示例# 计算1到100之间所有偶数的和sum_even = 0 # 用于存储偶数的和for i in range(1, 101):if i % 2 == 0:sum_even += iprint("1到100之间所有偶数的和为:" + str(sum_even))```在上述示例中,我们使用了for循环结构来遍历1到100之间的所有数字。
通过判断每个数字是否为偶数,我们累加所有偶数的和,并最终输出结果。
结论:通过本次实验,我们学会了使用Python的循环结构来设计和实现程序。
循环结构是程序设计中非常重要的一种结构,可以帮助我们处理大量的重复操作,提高程序的效率。
在实际编程中,我们需要根据问题的需求,选择合适的循环类型和循环变量,并合理地设计和调试程序。
通过不断练习和实践,我们将进一步提升自己的编程能力。
实验四:循环结构程序设计班级:学生姓名:学号:一、实验目的1、理解循环的概念2、理解并掌握循环结构相关语句的含义、格式及使用3、学会循环的应用及控制,包括:①掌握使用循环输入多个数据的方法②掌握在多个数据中有选择地输出数据的方法③掌握在多个数据中对某种数据进行计数的方法④掌握求多个数据中最大值、最小值的方法⑤掌握使用break、continue语句终止循环4、掌握循环的嵌套二、知识要点1、循环变量、循环条件、循环体的概念2、三种循环语句的一般格式、执行过程3、理解选择结构与循环结构中“条件表达式”之不同含义4、二重循环的执行过程三、实验预习(要求做实验前完成)1、循环变量的主要用途是:2、用循环求多个数的和之前,先要把和的初始值赋为:3、用循环求多个数的乘积之前,先要把乘积的初始值赋为:4、字符变量能否作为循环变量?5、循环过程中,如果循环条件成立,但需要结束循环,可采用什么办法?6、什么叫循环的嵌套?四、实验内容(要求提供:①算法描述或流程图②源程序)1. 编程,利用循环计算以下表达式的值:(5+52)*(4+42)*(3+32)*(2+22)*(1+12)*(1/2+1/3+1/4+1/5)(for循环)include <stdio.h>#include <stdlib.h>int main(){int a;double sum=1,sum1=0;for(a=1;a<=5;a++)sum=sum*(a+a*a);printf("结果为%lf\n",sum);for(a=2;a<=5;a++)sum1=sum1+(1.0/a);printf("%lf\n",sum1);printf("结果为%lf\n",sum*sum1);return 0;}2. 编程,从键盘输入若干个整数,当输入0时,输入停止。
实验四循环结构程序设计2(参考答案)(1)编写程序sy4-1.c,输入n,计算并输出如下多项式的值:S n=1+1/2!+1/3!+1/4!+…+1/n!。
例如输入n为15时,输出1.718282。
算法分析:第一项可以看成1/1!,用循环控制累加n个分式,分式的分母是i!,分子固定为1。
参考答案:# include <stdio.h>void main(){double s=0,p=1;int i,n;scanf("%d",&n);for(i=1;i<=n;i++){p = p * i ; //计算分母i!s = s + 1 / p ; //累加}printf("s=%lf\n",s);}运行结果:(2)编写程序sy4-2.c,输入n,根据以下公式计算s:,例如当n=11时,结果为1.833333。
算法分析:该多项式的分母是累加。
参考答案:# include <stdio.h>void main(){double sn=0,s=0;int i,n;scanf("%d",&n);for(i=1;i<=n;i++){s = s + i ; //计算分母1~i的累加和sn = sn + 1 / s ;}printf("sn=%lf\n",sn);}运行结果:(3)编写程序sy4-3.c,计算3~n之间所有素数的平方根之和,要求:输入n,输出结果。
例如,输入n 的值是100,则输出结果是148.874270。
注意n应在2~100之间。
算法分析:穷举3~n之间的数找素数,若是素数则累加她的平方根。
参考答案:# include <stdio.h># include <math.h>void main(){int i,j,n,flag;double s=0;scanf("%d",&n);for(i=3;i<n;i++) //穷举3~n之间找素数{flag=1; //假设当前的i是素数,标志变量设为1for(j=2;j<i;j++) //穷举要判断是否是素数的i的除数,范围2~i-1if(i%j==0) //若i能被j整除,则不是素数{ flag=0; break; } //标志变量改为0,并终止循环if( flag == 1 )s = s + sqrt( i ); //若i是素数,则累加sqrt(i)}printf("s=%f\n",s);}运行结果:(4)编写程序sy4-4.c,根据以下公式求p的值,(m与n为两个正整数且m>n)。
实验四: 基本循环语句程序设计
一、实验目的和要求
1. 掌握For语句的使用。
2.掌握while循环语句的使用。
3. 掌握Do{While|Until}…Loop与Do…Loop{While|Until}两种形式的使用。
4.掌握如何控制循环条件, 防止死循环或不循环。
5. 熟练掌握循环条件设置及循环的控制方法。
二、实验内容
题目:
(1)求出1~1000之间所有是7的倍数的整数之和(如7, 14…), 并通过单击命令按钮将这些整数, 以及它们之和输出在窗体上。
程序的运行界面如图所示。
(2)实训指导书P41中实训5.5
三、实验步骤
1. 程序的界面设计
备注: 学生将程序界面设计画出来
2. 对象属性设置.
属性设置画出来
3. 程序主要代码。
备注: 学生将程序代码写出来
4. 运行结果。
四、实验总结(可以从以下几个方面来总结: 你在编程过程中花时多少?时间是怎么分配的?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?)。
一、实验目的1. 理解循环结构的原理和特点。
2. 掌握C语言中while、do...while和for循环语句的使用方法。
3. 学会运用循环结构解决实际问题。
二、实验环境1. 编程语言:C语言2. 编程工具:Visual Studio Code3. 操作系统:Windows 10三、实验内容1. 实验一:计算1至100之间所有整数的和实验目的:掌握while循环语句的使用方法。
实验步骤:(1)定义变量sum用于存储和,初始化为0。
(2)使用while循环语句遍历1至100之间的整数,将每个整数累加到sum变量中。
(3)输出最终的和。
实验代码:```c#include <stdio.h>int main() {int sum = 0, i = 1;while (i <= 100) {sum += i;i++;}printf("1至100之间所有整数的和为:%d\n", sum);return 0;}```2. 实验二:计算1至100之间所有偶数的和实验目的:掌握do...while循环语句的使用方法。
实验步骤:(1)定义变量sum用于存储和,初始化为0。
(2)定义变量i,初始化为1。
(3)使用do...while循环语句遍历1至100之间的整数,当i为偶数时,将其累加到sum变量中。
(4)输出最终的和。
实验代码:```c#include <stdio.h>int main() {int sum = 0, i = 1;do {if (i % 2 == 0) {sum += i;}i++;} while (i <= 100);printf("1至100之间所有偶数的和为:%d\n", sum);return 0;}```3. 实验三:计算1至100之间所有素数的和实验目的:掌握for循环语句的使用方法。
实验步骤:(1)定义变量sum用于存储和,初始化为0。
Python程序设计实验报告四:循环结构程序设计班级:物流191姓名:柳梦辉学号: 3190505126⽇期: 2020年4⽉10⽇指导⽼师:修宇实验四循环结构程序设计(设计型实验⼆学时)【实验⽬的】(1)熟悉⽤while和for语句实现循环的⽅法(2)掌握在程序设计中⽤循环的⽅法实现各种算法;【实验条件】PC机或者远程编程环境【实验内容】(1)计算底数e的值描述:e有时被称为⾃然常数(Natural constant),是⼀个约等于2.71828182845904523536……的⽆理数。
可⽤如下公式求⾃然对数的底数e的近似值。
e=1+1/1!+1/2!+…1/n!可设计循环程序,判断直到最后⼀项绝对值⼩于10的-6次⽅停⽌循环,注意因为计算误差原因,不同⽅法可能稍有区别。
(2)判断⽔仙花数描述:⽔仙花数(Narcissistic number)也被称为超完全数字不变数、⾃恋数、⾃幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),⽔仙花数是指⼀个 3 位数,它的每个位上的数字的 3次幂之和等于它本⾝(例如:1^3 + 5^3+ 3^3 = 153)。
设计循环程序,输⼊⼀个三位整数,判断是否是⽔仙花数,如果是⽔仙花数,则输出“是⽔仙花数”,否则输出“不是⽔仙花数”(3)N的多次⽅描述:编写⼀个程序,计算输⼊数字N的0次⽅到5次⽅结果,并依次输出这6个结果,输出结果间⽤空格分隔。
其中:N是⼀个浮点数。
print()函数可以同时输出多个信息,采⽤如下⽅法可以使⽤空格对多个输出结果进⾏分割:print(3.14, 1024, 2048)【实验记录与分析】(请在填写实验记录与分析结果)【思考题】循环结构中循环的次数取决于什么?1.计算底数e的值分析:运⽤⼀次while循环将底数n! ⽤i+=1代替,然后⽤while进⾏累加即可 print("e= ",e)即可2.判断⽔仙花数分析:题中⽔仙花数定义为,它的每个位上的数字的3次幂之和等于它本⾝。
湖北工程学院学生实验报告书实验课程名称C语言开课专业经济学大类指导教师姓名邹晶、郭道猛学生姓名学生班级2016学年-2017学年第1学期实验课程名称:C语言试验项目名称实验4循环结构程序设计(一)实验成绩试验者专业班级组别同组者实验目的:(一)掌握用while,do-while,for语句实现循环的方法;(二)掌握在设计条件型循环结构的程序时,如何正确地设定循环条件,以及如何控制循环的次数。
(三)掌握与循环有关的算法。
实验环境:VC++实验内容:见实验报告指导书实验四, 循环结构程序设计(一)试验过程记录1.输入代码:#include<stdio.h>void main (){int p=1, s=0,i;for(i=1;i<=20;i++) 求1!+2!+3!+……+20! */的值{p*=i;s+=p;}printf("sum=%d\n",s);}结果截图:3.输入代码:#include<stdio.h> 求最大公约数void main (){int m,n,b;printf("please input two positive integer:");scanf("%d%d",&m,&n);while(n!=0){b=m%n;m=n;n=b;}printf("theirgreatest common divisor is %d\n",m);}结果截图:5.输入代码:#include<stdio.h>void main (){int n=0, c;c = getchar (); 统计字符串中指定字符个数while (c !='\n'){if(c>='0'&& c<='9') n++;c=getchar ();printf("%d", n);}}结果截图:6.输入代码:#include <stdio.h>void main(){int a , b, c, i , j; 求奇数及偶数之和a=0,b=1,c=0;for(i=0; i<=100; i+=2){ a+=i;b=i;c+=b;}printf("sum of evens is %d\n",a);printf("sum of evens is %d\n",c);}结果截图:7.输入代码:#include "stdio.h"void main(){int a,b,c,j;for(j=100;j<=999;j++) 水仙花数{a=j/100;b=j/10-a*10;c=j-a*100-b*10;if(j==a*a*a+b*b*b+c*c*c)printf("%d\n",j);}}结果截图:8.输入代码:#include "stdio.h"void main(){float x,amax,amin;scanf("%f",&x); 统计输出最高和最低成绩amax=x;amin=x;while(x>=0){if(x>amax)amax=x;if(x<amax)amax=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}结果截图:9.输入代码:#include "stdio.h"void main(){int m,n,i,t;long int s=0; 不能被3和7整除的整数之和scanf("%d%d",&m,&n);if(m>n){t=m;m=n;n=t;}for(i=m;i<=n;i++)if(i%3!=0 &&i%7!=0)s+=i;printf("sum is;%ld\n",s);}结果截图:10.输入代码:#include <stdio.h>void main(){int num,k;k=0;printf("\please enter a number:");scanf("%d",&num); 计算num各位数字之和do{k+=num%10;num/=10;}while(num);printf("\n%d\n",k); }结果截图:。
一、实验目的1. 掌握循环结构程序设计的基本方法和应用;2. 熟悉C语言、Java语言等编程语言中的循环结构;3. 提高编程能力,学会运用循环结构解决实际问题。
二、实验环境1. 操作系统:Windows 102. 编程语言:C语言、Java语言3. 编译器:Visual Studio、NetBeans三、实验内容1. C语言循环结构程序设计(1)编写一个C语言程序,实现输出1-100的累加和。
```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}printf("1-100的累加和为:%d\n", sum);return 0;}```(2)编写一个C语言程序,实现输出16行杨辉三角。
```c#include <stdio.h>int main() {int arr[16][16];int i, j;for (i = 0; i < 16; i++) {for (j = 0; j <= i; j++) {if (j == 0 || i == j) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; }printf("%d ", arr[i][j]);}printf("\n");}return 0;}```2. Java语言循环结构程序设计(1)编写一个Java程序,实现输出1-100的累加和。
```javapublic class Sum {public static void main(String[] args) {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}System.out.println("1-100的累加和为:" + sum);}}```(2)编写一个Java程序,实现输出16行杨辉三角。
循环结构汇编语言程序设
计实验报告
实验四循环结构汇编语言程序设计
一、实验目的
1、学习循环结构的汇编语言程序的设计和调试。
2、学习通过直接对8086计算机的寄存器和内存的直接访问,编写更高效简洁的汇编程序。
3、加深掌握计算机整体的工作过程。
3、加深对排序算法的理解。
二、实验任务
编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。
要求至少采用二种不同的排序算法来实现。
( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……)
三、实验内容
为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实验。
1、利用冒泡排序的方式求解数组A中元素的最大值最小值。
设计流程图如下所示:
2、利用选择排序的方式求得数组A中元素的序列。
设计流程图如下所示:
四、实验环境
PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机
汇编工具:+。
五、实验步骤
1)建立和生成的文件
(1)编写的源程序,源程序名为abc、扩展名为.asm
(2)源程序经汇编程序汇编(翻译)后生成二进制目标程序,文件名为
(3)目标程序需要经连接生成可执行程序,文件名为
2)汇编环境
最基本的汇编环境只需要两个文件:和。
将这两个文件拷入到已经建好的文件夹(例如huibian)中,并将文件夹huibian放在硬盘根目录C :\>下
3)上机步骤
进入DOS窗口中执行。
4)调试程序
进入DEBUG后,调试程序
5)调试成功后重新汇编、连接并生成可执行代码
6)执行程序,并对运行结果截图。
利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入
数据为:13,0,59,900,587,1,657,234,34,48)
利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数
据为13,0,59,900,587,1,657,234,34,48)
六、实验心得
通过本次循环结构汇编语言程序设计的实验,我初步了解了汇编语言的基本语法,利用汇编语言的循环结构实现了对于数组A中元素的排序以及求得元素中的最大值最小值。
另外,在实验过程中,我也了解到了,我们要时刻细心严谨,认真做好每一步,避免出现低级错误。
七、汇编语言代码
1、利用冒泡排序实现求最大值最小值的代码
data segment
mes1 db 'the max:$'
mes2 db 'the min:$'
a dw 13,0,59,900,587,1,657,234,34,48
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
;以下是起泡排序核心代码
mov cx,10
dec cx
loop1:
mov di,cx
mov bx,0
mov ax,a[bx]
cmp a[bx+2],ax
jge cotinue
xchg ax,a[bx+2]
mov a[bx],ax
cotinue:
add bx,2
loop loop2
mov cx,di
loop loop1
mov dx,offset mes1
mov ah,09h
int 21h
mov bx,a[18]
call bini ;转换为十进制的子程序mov dx,offset mes2
mov ah,09h
int 21h
mov bx,a[0]
call bini
ret
main endp
bini proc near
mov cx,10000d
call bin
mov cx,1000d
call bin
mov cx,100d
call bin
mov cx,10d
call bin
mov cx,1d
call bin
ret
bini endp
bin proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,02h
int 21h
ret
crlf proc near
mov dl,0ah
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21
ret
crlf endp
code ends
end start
2、利用选择排序实现排序的代码
SAVEREG macro
push ax
push bx
push cx
push dx
push si
push di
endm
RESAVEREG macro
pop di
pop si
pop dx
pop cx
pop bx
pop ax
endm
;************************
data segment
arr dw 13,20,59,900,587,1,657,234,34,48 n dw 18
m dw 10
data ends
;************************
code segment
;------------------------
main proc far
assume cs:code, ds:data
start:
push ds
sub ax, ax
push ax
mov ax, data
mov ds, ax
;------------
;sort
;------------
;si,di index
;ax temp
mov si, 0
mov di, 0
loop1:
cmp si, n
jge OUTER1
;init loop2
mov ax, si
add ax, 2
mov di, ax
loop2:
cmp di, n
jg OUTER2
mov ax, arr[si]
cmp ax, arr[di]
jle DO_NOTHING
xchg ax, arr[di]
mov arr[si], ax
DO_NOTHING:
add di, 2
jmp loop2
OUTER2:
add si, 2
jmp loop1
OUTER1:
mov cx, m
mov di, 0
PRINT_LOOP:
mov ax, arr[di]
mov dx, 0
call print_dec
add di, 2
loop PRINT_LOOP
;read key from the keyboard mov ah, 0
int 16h
ret
;---------------------
;get_oct function
;must pass ax, dx
print_dec proc near
SAVEREG
mov cx, 0
mov bx, 10
GET_NUM_LOOP:
div bx
push dx
mov dx, 0
inc cx
cmp ax, 0
jne GET_NUM_LOOP PRINT:
pop dx
add dx, 30h
mov ah, 02h
int 21h
loop PRINT
;enter and change line mov dl, 0dh
mov ah, 02h
int 21h
mov dl, 0ah
mov ah, 02h
int 21h
RESAVEREG
ret
print_dec endp
main endp
;------------------------ code ends
;************************ end start。