实验四循环结构大全语言程序设计实验报告
- 格式:docx
- 大小:9.03 KB
- 文档页数:4
C语言实验报告课程__C程序设计_实验名称_循环结构程序设计__第页共页系别__电气工程______________________ 实验日期 2010 年 4 月 28日专业班级___ 自动化 __2班 _______________ 实验报告日期 2010 年 4月 28日姓名___马震_________学号_P091813232___ 报告退发 ( 订正、重做 ) 教师审批签字一.实验目的For语句以及数组的练习。
二.实验内容(-)实验题目一: 求1至100的和加1至50的平方的和加1至10的倒数的和1. 要点分析见右图实验步骤#include <stdio.h>void main(){double k,s=0,t=0,u=0;for(k=1;k<=100;k++) s=s+k;for(k=1;k<=50;k++) t=t+k*k;for(k=1;k<=10;k++) u=u+1/k;printf("%f\n",s+t+u);}3. 实验结果1.(二)实验题目二: 打印出所有"水仙花数", 所谓"水仙花数"是指一个三位数, 其各位数字立方和等于该本身。
2.要点分析见下页右侧图2.实验步骤#include <stdio.h> void main(){int a,b=0,c=0,d=0; for(a=100;a<=999;a++) {b=a/100;c=a/10-10*b; d=a-100*b-10*c;if(a==b*b*b+c*c*c+d*d*d)printf("水仙花数为%d\n",a);}} 3实验结果1.(三)实验题目三: 有一分数序列: 2/1, 3/2, 5/3, 2.8/5, 13/8, 21/13…求出这个数列的前20项之和。
3.要点分析 见右侧图4.实验步骤 #include <stdio.h> void main(){double a=1,b=2,c=1,s=0; for(;c<=20;c=c+2) {s=s+b/a;a=b+a; s=s+a/b;b=b+a;}printf("数列前20项和为%f\n",s);}3实验结果(四)实验题目四: 一球从100米高度自由下落,每次落地后返回原高度的一半, 再落下。
循环程序设计实验报告循环程序设计实验报告引言:循环程序设计是计算机科学中一项重要的技术,它能够让计算机在特定条件下重复执行一段代码,从而实现特定的功能。
本实验旨在通过编写循环程序,探索循环程序设计的原理和应用。
实验目的:1. 理解循环程序设计的概念和原理;2. 学会使用不同类型的循环结构,如for循环、while循环和do-while循环;3. 掌握循环程序设计在问题解决中的应用。
实验过程:1. 实验环境的搭建在实验开始前,我们需要搭建一个适合编写和运行循环程序的环境。
选择一款适合的集成开发环境(IDE),如Visual Studio、Eclipse等,并安装相应的编程语言环境,如C++、Java等。
2. 编写基本的循环程序首先,我们从最简单的循环结构开始,即for循环。
以C++语言为例,我们可以使用以下代码编写一个简单的for循环程序:```cpp#include <iostream>int main() {for (int i = 0; i < 10; i++) {std::cout << "Hello, World!" << std::endl;}return 0;}```上述代码中,for循环的三个部分分别表示循环变量的初始化、循环条件和循环变量的更新。
通过这个简单的循环程序,我们可以在控制台输出10次"Hello, World!"。
3. 使用循环解决实际问题循环程序设计在解决实际问题时非常有用。
我们可以通过循环来处理一系列数据、实现复杂的算法等。
下面以一个实际问题为例,演示如何使用循环程序设计进行问题求解。
假设有一个整数数组,我们需要找到数组中的最大值。
我们可以使用for循环遍历整个数组,并通过比较来找到最大值。
以下是一个使用C++语言实现的示例代码:```cpp#include <iostream>int main() {int arr[] = {5, 2, 8, 3, 1};int max = arr[0];for (int i = 1; i < 5; i++) {if (arr[i] > max) {max = arr[i];}}std::cout << "The maximum value is: " << max << std::endl;return 0;}```通过以上代码,我们可以找到数组中的最大值,并将其输出到控制台。
实验4-循环程序设计实验4 循环程序设计4.1 实验目的(1) 掌握三种循环语句的使用,能分析循环的执行过程;(2) 掌握break和continue语句的使用;(3)了解如何利用求余和整除操作获取和删除一个整数的最低位;(4) 掌握累加、累乘的处理方法。
(5) 掌握计数问题的编写技巧,如何控制每行输出元素个数。
4.2 知识要点循环就是反复执行一段代码,直到满足结束条件。
循环语句一般包括初始化、循环体、迭代和判断4部分。
4.2.1 while循环与do while循环的使用差异while语句的格式:while (条件表达式) {循环体}特点是“先判断、后执行”,循环体有可能执行0次。
do…while循环的格式:do{循环体} while (条件表达式)特点是“先执行,后判断”,循环体至少要执行1次。
建议: 在程序设计中尽量不用do while循环,而用while循环。
4.2.2 for循环与while循环的对应关系for (控制变量赋初值;循环条件;增值) {循环体}等价于:控制变量赋初值;While (循环条件) {循环体;控制变量增值;}注意几点:(1)for循环的执行过程是先做初始化,然后判断是否满足结束条件,若满足,则执行循环体,在执行完循环体后进行迭代增值。
(2)初始化部分和增值部分可以使用逗号语句执行多个操作;(3)三部分均为空,写成for(;;)相当于一个无限循环。
4.2.3 continue和break语句的作用●continue---跳过之后的语句,继续下一轮循环;●break---跳出直接所处循环。
●带标号的continue可以回到标号指定的那级循环的下一轮执行。
●带标号的break可以跳出标号指定的那级循环。
4.2.4 常见问题处理(1)累加问题的解决办法—累加变量的初值设置在循环外,通常赋0为初值;(2)如何利用循环求阶乘—累乘,在循环外设置变量初值为1;(3)如何控制每行的输出数据个数(计数问题);(4)如何产生一定范围的随机整数。
淮海工学院计算机科学系实验报告书课程名:《C语言程序设计A 》题目:实验4 程序流程设计——循环结构程序设计班级:软嵌151学号:2015123349姓名:陈正宁1、实验内容或题目(1) 输入两个正整数,求出它们的最大公约数和最小公倍数。
(2) 用!1!31!21!111n e +⋯⋯++++≈,求e 的近似值,直到610!1-<n 为止。
(3)编程实现输出9*9乘法口诀表。
2、实验目的与要求(1)进一步熟悉熟悉VC++6编译环境,掌握运用VC 编译C 程序的基本方法; (2)掌握常见的流程控制结构(顺序、选择和循环),学会运用控制结构编写C 程序; (3)了解循环的嵌套;(4)掌握break 和continue 语句的使用方法;(5) 输出9*9乘法口诀表的上三角、下三角、左三角、右三角等几种形式。
3、实验步骤与源程序⑴实验步骤NN⑵源代码(1)、#include<stdio.h>void main(){int a,b,c,n,m;printf("请输入两个正整数[m, n enter]\n");scanf("%d,%d",&m,&n);if(m<n){a=m;m=n;n=a;}c=n*m;while(n!=0){b=m%n;m=n;n=b;}printf("公约数%d\n公倍数%d\n",m,c/m); }(2)、#include<stdio.h>#include<math.h>void main(){int n;int fact=1;double an;double e=1.0;for(n=1;;n++){fact*=n;an=1.0/fact;if(abs(an<0.000001))break;e+=an;}printf("e~=%lf\n",e);}(3)、#include<stdio.h>void main(){int i,j;for(i=1;i<=9;i++)//右下{for(j=9;j>=1;j--){if(i<j)printf(" ");elseprintf("%dx%d=%2d\t",i,j,i*j);}printf("\n");}printf("\n");for(i=1;i<=9;i++)//左下{for(j=1;j<=i;j++){printf("%dx%d=%2d\t",i,j,i*j);}printf("\n");}printf("\n");for(i=9;i>=1;i--)//右上{for(j=9;j>=1;j--){if(i<j)printf(" ");elseprintf("%dx%d=%2d\t",i,j,i*j);}printf("\n");}printf("\n");for(i=9;i>=1;i--)//左上{for(j=1;j<=i;j++){printf("%dx%d=%2d\t",i,j,i*j);}printf("\n");}printf("\n");}4、测试数据与实验结果(可以抓图粘贴)(1)、(2)、(3)、5、结果分析与实验体会(1)、首先得知道可以用 while语句实现循环,可以用do…while语句实现循环,也可以用for语句实现循环。
实验4 循环结构程序设计(一)实验目的要求1.掌握“当”型循环控制语句do while…enddo程序设计的方法。
2.掌握“计数”型循环控制语句for…endfor|Next程序设计的方法。
3. 掌握“指针”型循环控制语句scan…endscan程序设计的方法。
(二)实验内容1.do while…enddo编程。
2.for…endfor|Next编程。
3. scan…endscan编程。
(三)实验指导实验4-1计算1~100之间自然数的和。
具体操作如下:(1)创建程序文件“L10-14-2.prg”,内容如图4-1所示:图4-1⑵运行程序实验4-2根据“员工”表,统计物业部的员工人数。
具体操作如下:(1)创建程序文件“L10-15.prg”,内容如图4-2所示:图4-2(2)运行程序,结果如下:物业部的员工人数是: 6实验4-3从键盘输入10个数,求其中的最大数。
具体操作如下:(1)创建程序文件“bcl4.prg”,内容如图4-3所示:图4-3 (2)一次程序运行的结果如下:实验4-4计算10!。
具体操作如下:(1)创建程序文件“L10-16.prg”,内容如下:图4-4 (2)运行程序,结果如下:实验4-5计算S的值(S=2!+4!+6!+8!+10!)。
具体操作如下:(1)创建程序文件“L10-17.prg”,内容如下:图4-5(2)运行程序,结果如下:实验4-6计算“员工”表中所属“物业部”的职工的人数。
具体操作如下:(1)创建程序文件“L10-17.prg”,内容如下:图4-6(2)运行程序,结果如下:实验4-7输出1-100自然数中被3整除的数据的个数及它们的和。
具体操作如下:(1)创建程序文件“bcl5-1.prg”,内容如下:图4-7(2)运行程序,结果如下:实验4-8计算1+2+3+……,当和刚刚大于10000时,所加的最后一个数和最后的和为多少。
具体操作如下:(1)创建程序文件“bcl6.prg”,内容如下:图4-8(2)运行程序,结果如下:实验4-9由键盘输入10个数,按由小到大的顺序输出这10个数。
XXX大学软件类实验报告
课程名称:C语言程序设计学号:
姓名:
班级:
指导教师:
开课学期:
学院:
XXX大学教务处
4. for语句的使用;
四、实验过程及内容:(运行结果请抓图到对应题目的下方)
1. 先分析以下程序,写出运行结果,再上机检验。
实验结果:
2.先分析以下程序,写出运行结果,再上机检验。
(1)实验结果:
(2)分析对比第1题和第2题运行结果,并说明原因。
3. 程序改错题。
下列程序的功能是计算1+1/2+1/3+...+1/100的和,试改正程序中的错误。
实验结果:
4. 程序填空题。
以下程序的功能是计算1×2×3+3×4×5++99×100×101的值,试在空白处填写适当的表达式或语句,使程序完整并符合题目要求。
上机运行程序,写出程序的运行结果。
实验结果:
5. 程序填空题。
以下程序输出1~100之间各位数的乘积大于各位数之和的数,例如,对于数12,有1×2<1+2,故不输出该数;而对于27,有2×7>2+7,故输出该数。
填空使程序完成相应功能。
实验结果:
6.编写程序计算1~100之间所有含数字6或9的数之和,即:s=6+9+16+19+26+29+......60+61+......90+91+ (99)
实验代码:
实验结果:。
一、实验目的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。
循环结构汇编语言程序
设计实验报告
实验四 循环结构汇编语言程序设计
一、实验目的
1、学习循环结构的汇编语言程序的设计和调试。
2、学习通过直接对 8086 计算机的寄存器和内存的直接访问,编写更高效简洁的汇 编程
序。
3、加深掌握计算机整体的工作过程。
3、加深对排序算法的理解。
二、实验任务
编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。
要求至少采用二种不同的排序算法来实现。 ( 快速排序,归并排序、堆排序、 Shell 排
序、插入排序、冒泡排序、交换排序、选择排序、基数排序 ……
)
三、实验内容
为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实验。
1、 利用冒泡排序的方式求解数组 A 中元素的最大值最小值。 设计流程图如下所示:
2、 利用选择排序的方式求得数组 A 中元素的序列。设计流程图如下所示:
四、实验环境
PC机:winXP/win7(32 位)/win7(64 位)+winxp 虚拟机
汇编工具: Masm.exe+Link.exe。
五、实验步骤
1)建立和生成的文件
(1) 编写的源程序,源程序名为 abc、扩展名为.asm
(2) 源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为
abc.obj
(3) 目标程序需要经Link.exe连接生成可执行程序,文件名为 abc.exe
2)汇编环境
最基本的汇编环境只需要两个文件:Masm.exe和Link.exa将这两个文件拷入到已 经建
好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根目录 >下
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 loop2: 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 bin endp
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
・
************************
J
data segment
arr dw 13,20,59,900,587,1,657,234,34,48 n dw 18 m dw 10
data ends
.************************
J
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
.************************ J
end start