循环结构汇编语言程序设计实验报告
- 格式:doc
- 大小:659.50 KB
- 文档页数:12
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米高度自由下落,每次落地后返回原高度的一半, 再落下。
C语言循环结构实验报告总结引言C语言是一种广泛应用于系统程序开发的高级编程语言。
循环结构是C语言中重要的概念,通过循环结构,可以重复执行一段代码,提高程序的效率与可读性。
本实验旨在通过编写C语言程序来掌握循环结构的使用方法,并通过实际的实验案例来加深对循环结构的理解。
背景知识在开始实验之前,我们需要了解一些基础的C语言知识。
循环结构的类型在C语言中,常用的循环结构有三种类型:for循环、while循环和do-while循环。
1.for循环:通过指定循环变量的初始值、循环条件和循环变量的增量来控制循环的执行次数。
2.while循环:在每次循环开始前判断循环条件是否满足,如果满足则执行循环体,否则结束循环。
3.do-while循环:与while循环相似,但是循环体至少会被执行一次,然后再判断循环条件是否满足。
在实验中,我们将使用这三种循环结构来完成各种任务。
循环控制语句除了基本的三种循环结构外,C语言还提供了一些循环控制语句来控制循环的执行。
1.break语句:用于立即退出循环,跳出循环体。
2.continue语句:用于立即结束本次循环,跳过剩余循环体的执行,开始下一次循环。
这些循环控制语句在实际编程中非常实用,可以根据需要在循环内部进行灵活的控制。
实验过程实验案例一:求和在这个实验案例中,我们将使用for循环结构来求解给定范围内的整数和。
1.首先,我们需要定义一个用于存储求和结果的变量sum,并初始化为0。
2.接下来,我们通过for循环遍历给定的整数范围,将每个整数累加到sum中。
3.最后,我们输出求和结果sum。
下面是代码实现示例:#include <stdio.h>int main() {int sum = 0;int start = 1, end = 100;for (int i = start; i <= end; i++) {sum += i;}printf("Sum: %d\n", sum);return 0;}实验案例二:乘法表在这个实验案例中,我们将使用嵌套的for循环结构来输出乘法表。
c语言循环实验报告C语言循环实验报告引言:C语言是一种广泛应用于程序设计和开发的高级编程语言。
而循环结构是C语言中最为重要和基础的语法之一,它可以帮助我们重复执行某些特定的代码块,提高程序的效率和灵活性。
本实验旨在通过实际编程实践,探索C语言中循环结构的使用方法和应用场景,并进一步加深对循环的理解。
实验一:for循环在C语言中,for循环是最常用的循环结构之一。
它的基本语法如下:```for (初始化表达式; 条件表达式; 更新表达式) {循环体语句;}```在本实验中,我们使用for循环来实现一个简单的九九乘法表打印程序。
通过嵌套的for循环,我们可以方便地控制行和列的输出,实现乘法表的格式化打印。
以下是代码示例:```#include <stdio.h>int main() {int i, j;for (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {printf("%d * %d = %d\t", j, i, i * j);}printf("\n");}return 0;}```通过运行以上代码,我们可以得到一个完整的九九乘法表。
实验二:while循环除了for循环,C语言中的while循环也是常用的循环结构之一。
它的基本语法如下:```while (条件表达式) {循环体语句;更新表达式;}```在本实验中,我们使用while循环来实现一个简单的猜数字游戏。
游戏规则是计算机随机生成一个1到100的整数,玩家通过输入猜测的数字,计算机根据猜测结果给出相应的提示,直到猜中为止。
以下是代码示例:```#include <stdio.h>#include <stdlib.h>#include <time.h>int main() {int target, guess;srand(time(0));target = rand() % 100 + 1;printf("猜数字游戏开始!\n");printf("请输入一个1到100的整数:"); scanf("%d", &guess);while (guess != target) {if (guess > target) {printf("猜大了!请重新输入:"); } else {printf("猜小了!请重新输入:"); }scanf("%d", &guess);}printf("恭喜你,猜对了!\n");return 0;}```通过运行以上代码,我们可以体验到一个简单而有趣的猜数字游戏。
一、实验目的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。
c语言循环结构实验报告总结C语言循环结构实验报告总结引言:循环结构是计算机编程中非常重要的一个概念,它可以让程序重复执行某些操作,从而提高程序的效率。
在C语言中,循环结构有三种:for、while和do-while。
本次实验我们将学习并掌握这三种循环结构的使用方法。
一、 for循环结构for循环结构是C语言中最常用的一种循环结构,它的基本语法如下:for (初始化表达式; 条件表达式; 更新表达式){循环体语句;}其中,初始化表达式只会在第一次进入循环时执行一次;条件表达式会在每次进入循环时都进行判断,如果为真,则继续执行循环体语句;更新表达式会在每次执行完循环体语句后执行。
我们可以通过一个简单的例子来理解for循环的用法:#include <stdio.h>int main(){int i;for (i = 1; i <= 10; i++){printf("%d ", i);}return 0;}上述代码中,我们使用for循环输出了1到10这10个数字。
首先定义了一个变量i,并将其初始化为1;然后设置条件表达式为i <= 10;最后设置更新表达式为i++。
在每次循环中,都会先判断条件表达式是否成立,如果成立,则执行循环体语句,即输出当前的i值,并将i加1。
二、 while循环结构while循环结构也是C语言中常用的一种循环结构,它的基本语法如下:while (条件表达式){循环体语句;}其中,条件表达式会在每次进入循环时进行判断,如果为真,则继续执行循环体语句;否则跳出循环。
我们可以通过一个简单的例子来理解while循环的用法:#include <stdio.h>int main(){int i = 1;while (i <= 10){printf("%d ", i);i++;}return 0;}上述代码中,我们使用while循环输出了1到10这10个数字。
一、实验目的1. 理解并掌握循环结构的基本概念和用法。
2. 掌握循环结构的编程技巧,包括for循环、while循环和do-while循环。
3. 通过实际编程练习,提高程序设计能力和逻辑思维能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 编程环境:PyCharm三、实验内容1. for循环(1)实现一个程序,计算1到100之间所有整数的和。
代码如下:```pythonsum = 0for i in range(1, 101):sum += iprint("1到100之间所有整数的和为:", sum)```(2)实现一个程序,打印出1到10的乘法表。
代码如下:```pythonfor i in range(1, 11):for j in range(1, i + 1):print(f"{j}x{i}={ij}", end="\t")print()```2. while循环(1)实现一个程序,计算斐波那契数列的前10项。
代码如下:```pythona, b = 0, 1count = 0while count < 10:print(a, end=" ")a, b = b, a + bcount += 1```(2)实现一个程序,计算1到100之间所有奇数的和。
代码如下:```pythonsum = 0i = 1while i <= 100:if i % 2 != 0:sum += ii += 1print("1到100之间所有奇数的和为:", sum)```3. do-while循环由于Python中没有do-while循环,以下使用while循环实现:(1)实现一个程序,输入一个正整数n,计算n的阶乘。
代码如下:```pythonn = int(input("请输入一个正整数:"))factorial = 1i = 1while i <= n:factorial = ii += 1print(f"{n}的阶乘为:{factorial}")```四、实验结果与分析1. 通过for循环实现计算1到100之间所有整数的和、打印1到10的乘法表等任务,体现了for循环在遍历和循环计算方面的优势。
甘肃政法学院本科生实验报告( 五)姓名:赵明翔学院:公安技术学院专业:安全防范工程班级: 2015级安全防范工程班实验课程名称:程序设计实验日期:2016年月日开课时间:2015学年第二学期实验题目实验5 循环结构程序设计小组合作姓名赵明翔班级安全防范工程学号201583130145一、实验目的1.熟悉掌握用while语句,do...while 语句和for语句实现循环的方法。
2.掌握在程序设计中用循环的方法实现一些常用的算法(如穷举,代,递推等)。
3.进一步学习调试程序。
二.实验环境Miscroft Visual C++6.0环境。
三、实验内容与步骤编程序并上机调试程序。
(1)输入一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数。
程序如下:#include<stdio.h>int main(){char c;int letters=0,space=0,digit=0,other=0;printf("请输入一行字符:\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z')letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;elseother++;}printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n",letters,space,digit,other);return 0;}运行结果:(2)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字李方和等于该数本身。
循环结构实验报告一、实验目的本次实验旨在通过编程实践,深入理解循环结构的工作原理,掌握循环结构在实际问题中的应用,提高编程能力和解决实际问题的能力。
二、实验内容本次实验的内容是编写一个程序,实现以下功能:从用户输入的一组整数中,找出其中的最大值和最小值。
程序应采用循环结构实现,要求用户可以输入任意数量的整数,输入0作为结束标志。
三、实验步骤1.确定循环结构:根据实验内容,我们需要使用循环结构来处理用户输入的每一个整数,直到用户输入0为止。
因此,我们可以选择使用while循环结构来实现这一功能。
2.初始化变量:在程序开始时,我们需要初始化两个变量,分别用于存储最大值和最小值。
假设最大值为负无穷大,最小值为正无穷大。
3.获取用户输入:使用input函数获取用户输入的整数,并将其存储在一个变量中。
4.判断输入值:如果用户输入的整数不为0,则判断该整数与最大值和最小值的关系,并更新最大值和最小值。
5.输出结果:循环结束后,输出最大值和最小值。
四、实验结果下面是本次实验的代码实现:python# 初始化最大值和最小值max_value = float('-inf')min_value = float('inf')# 获取用户输入user_input = input("请输入一组整数(输入0结束):")# 将用户输入转换为整数类型num = int(user_input)# 循环处理用户输入的每一个整数while num != 0:# 判断当前输入值与最大值和最小值的关系,并更新最大值和最小值if num > max_value:max_value = numelif num < min_value:min_value = num# 获取下一个整数user_input = input("请继续输入整数(输入0结束):") num = int(user_input)# 输出结果print("最大值为:", max_value)print("最小值为:", min_value)在本次实验中,我们成功地使用循环结构实现了找出用户输入的一组整数中的最大值和最小值的功能。
实验三循环程序设计实验学生姓名:何茂杰学号:2010305104 专业班级:计算机本科一班指导老师:文远熔实验日期:实验成绩:一、实验目的1.掌握循环程序的设计方法;2.学会针对不同的问题,选用不同的组织循环的方法;3.进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。
二、实验内容1.计算y=x!X为8位无符号数Y为16位无符号数2.计算z=x+y其中x,y为5字节压缩BCD码,x,y,z的存放地址自定。
3. y=x/32,要求得商的整数和小数,x为四字节无符号数三、实验环境PC微机DOS操作系统或Windows 操作系统四、实验要求1.编写实验内容要求的两个程序;2.写出调试以上程序,即修改程序参数,检查结果的操作方法;3.熟悉源程序汇编、连接命令的使用方法即要回答的内容。
五、主要实验步骤一.算法过程1.分析算法思想2.根据算法分析3.编写程序测试,记录结果4.分析结果5总结二.对.EXE文件进行调试运行。
(1)用DEBUG调试运行,学会修改BL内容的方法;(2)对DSPKEY.EXE键入不同的字符,分别进行调试;(3)在MS-DOS下运行这两个.EXE文件。
六.心得体会实验让我了解了循环程序设计的应用。
让我明白如何应用循环程序设计。
源代码:code segmentassume cs:code,ds:codeorg 100hstart:push cspop dspush cspop esQ0:lea dx,Tipsmov ah,9int 21hQ1:mov ah,0int 16hcmp al,1bhjz exitcmp al,'0'jb Q1cmp al,'8'ja Q1mov ah,0ehint 10hsub al,30h;'0'or al,aljnz Q2mov ax,1 ;0!=1 jmp Q4Q2:mov ah,0 mov cx,axmov al,1xor dx,dxQ3:mul cxloop Q3Q4:cldlea di,Result add di,2lea bp,Table mov cx,5Q5:xor dx,dx div word ptr [bp] or al,30hstosbmov ax,dxadd bp,2loop Q5lea dx,Result mov ah,9int 21hjmp Q0exit:mov ah,4chint 21hcode endsend start。
循环程序设计实验报告循环程序设计实验报告章节一:________引言本实验旨在通过循环程序设计,掌握循环结构的使用方法,提高编程效率和程序性能。
本报告详细介绍了实验的背景、目的、实验环境和实验过程。
章节二:________实验背景在计算机编程中,循环程序设计是一种常见的编程技巧,用于处理需要重复执行的任务。
通过循环结构,我们能够简化代码、提高程序的处理能力。
本章节介绍了循环程序设计的基本概念和应用场景,以及其在实际开发中的重要性。
章节三:________实验目的本实验的目的是:________1.学习循环结构的基本概念和使用方法。
2.掌握循环程序设计的实现技巧。
3.提高编程效率和程序的执行性能。
章节四:________实验环境本实验使用的编程语言为C++,开发环境为Visual Studio 2019。
实验中所采用的代码编辑器和编译器的版本信息,以及相关的配置信息都将在本章节详细介绍。
章节五:________实验过程本实验分为以下几个步骤:________1.阅读实验要求和相关文档。
2.设计程序的整体逻辑结构。
3.定义问题的输入和输出。
4.编写循环结构的相关代码。
5.测试并调试程序。
6.总结实验过程并撰写实验报告。
详细的实验过程将在本章节逐步展开。
5.1 阅读实验要求和相关文档在开始实验之前,需要仔细阅读实验要求和相关文档,了解问题的背景和要求,明确实验的目标和任务。
5.2 设计程序的整体逻辑结构根据实验要求,我们需要设计一个程序,实现特定功能。
在这一步,我们应该考虑问题的整体逻辑结构,包括输入、处理和输出的流程。
5.3 定义问题的输入和输出根据实验要求,我们需要明确问题的输入和输出。
输入可以是用户提供的数据,也可以是预设的测试数据。
输出是程序运行后产生的结果。
5.4 编写循环结构的相关代码根据问题的需求,我们可以选择合适的循环结构,并编写相应的代码进行实现。
在这一步,我们需要注意循环的条件以及循环体的内容。
循环结构汇编语言程
序设计实验报告
实验四 循环结构汇编语言程序设计
一、实验目的
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.exe。将这两个文件拷
入到已经建好的文件夹(例如 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
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
;************************
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
(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待
你的好评与关注)