实验四 循环结构程序设计

合集下载

实验4 程序设计(4学时)

实验4 程序设计(4学时)

实验4 程序设计(4学时)目的与要求1.掌握VFP程序设计特点,程序文件的建立、修改和运行方法;2.掌握环境设置语句的含义和基本输入输出命令的使用;3.掌握VFP的顺序、选择和循环结构的设计方法;4.掌握程序设计过程中参数传值和传引用的传递规则;5.掌握子程序、过程和自定义函数的建立,以及调用与返回规则;6.掌握内存变量的作用域属性及对参数传递的影响。

实验内容一、实验准备1.参照“附录一”,熟悉VFP 6.0 程序文件的建立、修改和运行方法;2.将ftp上实验指导书文件夹中“实验项目5、6用表”文件夹下的学生表(student.dbf)、成绩表(score.dbf)、课程表(course.dbf)以及备注文件“student.fpt”四个文件,拷贝到C:\Program Files\Microsoft VisualStudio\Vfp98目录下,然后完成实验。

示例与程序中用到的三个表结构如下,各位同学可以参照这些结构还原这三个数据表之间的相互关联。

二、顺序结构程序设计1.VFP的顺序程序设计方法。

2.完成如下程序设计:(1)物体长度可以用公制或者英制单位表示,已知公制长度单位为毫米(mm),英制单位长度为英寸(inch),其转换公式为1 inch = 25.4 mm,编写程序将输入的英制长度转换为公制后输出。

(2)从键盘输入圆锥体的半径(r)和高度(h),计算其体积并输出,体积计算公式为v = π * r * r * h / 3。

(3)求方程ax2 + bx + c = 0的根,a, b, c的值从键盘输入(假设输入的a, b,c值满足b2– 4ac ≥ 0,不考虑虚根的情况)。

(4)由键盘输入学生名,将“student表”中该学生的奖学金增加100元,并显示该学生修改后的奖学金。

(5)分析下面程序的输出结果。

USE studentINDEX ON 姓名TAG nameidxACCEPT "请输入要查找的学生姓名" TO 姓名SEEK M -> 姓名DISPLAY三、选择结构程序设计1.VFP的选择程序设计方法。

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

《C语言程序设计实验》指导书

《C语言程序设计实验》指导书

《C语言程序设计实验》指导书以下是为大家整理的《c语言程序设计实验》指导书的相关范文,本文关键词为c语言程序设计实验,指导书,c语言程序设计实验,简明版,中北,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。

《c语言程序设计实验》指导书(简明版)中北大学软件学院20XX年10月实验一顺序结构程序设计(2学时)一、实验目的1、熟悉c编译环境、简单c程序结构及书写方式、以及c程序的编辑、编译、连接、运行、调试的步骤;2、掌握c语言的基本数据类型及其输入输出格式,以及输入输出函数的使用方法;3、掌握c语言的算术运算符(特别是自增、自减运算符)、赋值运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符的使用;4、掌握c语言顺序结构程序的执行流程、设计方法,能够根据实际问题灵活使用顺序结构,画出程序的算法流程图,设计出逻辑合理、思路清晰、结果正确的顺序结构程序。

二、实验内容及要求1、实验内容包括8道题目,分为基本内容和选做内容两部分。

要求:(1)基本内容中的实验题目是必须要完成的,选做内容中的实验题目可以根据自己的情况选做或全做(越多越好,适当加分);(2)在实验之前编写出基本内容、选做内容中的所有程序,实验前检查(视未完成情况适当扣分);(3)对于设计型题目,要求画出程序流程图(传统流程图和n-s 图);(4)在上机实验过程中,注意总结和体会上机步骤(编辑、编译、连接、运行、调试、结果分析),注意培养观察、分析和排除编译错误、连接错误和程序逻辑错误的初步能力;(5)上机结束后,应按要求认真书写实验报告(格式见附件)。

2、基本内容(1)[验证型]编辑下列程序,然后进行编译、连接和运行,观察结果,并简要总结简单c程序的结构、书写格式以及上机过程;#includeintmain(){printf(\return0;}(2)[验证型]通过运行下列程序,分析各种格式符的使用方法。

实验四分支程序与循环程序

实验四分支程序与循环程序

实验四 分支程序与循环程序一、实验目的1、熟悉转移指令的功能与使用;2、掌握偏移量的计算方法;3、熟悉分支程序设计和调试方法;4、进一步掌握堆栈指令的使用;5、熟悉循环程序设计和调试方法。

二、实验仪器1、DVCC-598JH 单片开发机一台;2、WD-5型直流稳压源一台。

三、实验预习1、认真阅读实验指导书有关内容,明确实验目的、内容和操作步骤;2、对实验中的程序和指令进行手工汇编;3、复习实验中相关指令的功能;4、复习偏移量的计算及OFST 键的操作方法。

四、实验内容 1、分支程序设计分支程序是根据不同的条件,执行不同的程序段,也称条件分支程序。

程序一:比较片内RAM 40H 和41H 单元中的两个无符号数,将较大数存入40H 单元,较小数存入41H 单元。

)0()0(∠≥⎩⎨⎧+-=a a ba b a y参考程序:ORG1000HSTART : MOV A ,40H CLRCSUBB A ,41HJNCW AITMOV A,40HXCH A,41HMOV 40H,AW AIT:SJMP $END程序二:设a数存放在累加器A中,b数存放在寄存器B中,求下列算式的y值,并将结果存入累加器A中。

参考程序:ORG 1000HJB ACC.7,NUSCLR CSUBB A,BSJMP DONENUS:ADD A,BDONE:SJMP DONEEND2、循环程序设计在实际应用中,往往需要多次反复执行某种相同的操作,而只是参与操作的操作数不同,这时就可以采用循环程序结构。

它可以缩短指令数,减少程序所占的内存空间。

程序三:数据块传送将片外RAM中地址为4500H~450FH中的数据块传送到4700H~470FH单元中。

参考程序:地址目的程序源程序ORG 1000H1000 7A00 MOV R2,#00H1002 7B45 MOV R3,#45H1004 904700 MOV DPTR,#4700H1007 C083 LOOP:PUSH DPH1009 C082 PUSH DPL100B 8A82 MOV DPL,R2100D 8B83 MOV DPH,R3100F E0 MOVX A,@DPTR1010 D082 POP DPL1012 D083 POP DPH1014 F0 MOVX @DPTR,A1015 A3 INCDPTR1016 0A INCR21017 BA10ED CJNE R2,#10H,LOOP101A 80FE SJMP $END五、实验步骤1、认真阅读实验参考程序并分析程序运行后的理论结果;2、输入程序并检查输入是否正确;3、根据已知条件输入程序执行前的原始数据;4、执行程序,检查并记录结果;六、练习1、将ASCII码转化为十六进制数。

C高级语言程序设计实验内容

C高级语言程序设计实验内容
putchar(c1);putchar(c2);
printf("\n%c,%c",c1,c2);
return 0;
}
三、实验报告要求
将题目:1和3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
实验三选择结构程序设计
一、实验目的
1.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);
{
if((x%i==0)&&(y%i==0))
max=i;
}
printf("%d\n",max);
printf("%d\n",x*y/max);
return 0;
}
(2)从键盘输入一个int类型的正整数,输出它的所有因子。如输入6,输出1,2,3;输入20,输出1,2,4,5,10。(要求文件名:4_2.c)
return 0;
}
4、编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。(要求文件名:2_4.c)
参考程序:
#include <stdio.h>
intmain()
{
char c1,c2;
c1=getchar();c2=getchar();
if(a>d) {t=a;a=d;d=t;}
if(b>c) {t=b;b=c;c=t;}
if(b>d) {t=b;b=d;d=t;}
if(c>d) {t=c;c=d;d=t;}
printf("%d,%d,%d,%d\n",a,b,c,d);

微机接口实验:分支和循环的程序设计

微机接口实验:分支和循环的程序设计

实验四分支程序设计实验一、实验目的1、掌握分支程序的结构。

2、掌握分支程序的设计、调试方法。

二、实验设备TDN86/88教学实验系统一台三、实验内容及步骤1、设计一数据块间的搬移程序设计:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。

源数据块和目的数据块在存储中可能有三种情况,数据的传送从数据块的首址开始,或者从数据块的末址开始均可。

但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏,可以得出以下结论:当源数据块首址>目的块首址时,从数据块首地址开始传送数据。

当源数据块首址<目的块首址时,从数据块末地址开始传送数据。

实验程序如下:STACK1 SEGMENT STACKDW 64 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV CX,0010HMOV SI,3100HMOV DI,3200HCMP SI,DIJA A2ADD SI,CXADD DI,CXDEC SIDEC DIA1: MOV AL,[SI]MOV [DI],ALDEC SIDEC DIDEC CXJNE A1JMP A3A2: MOV AL,[SI]MOV [DI],ALINC SIINC DIDEC CXJNE A2A3: JMP A3CODE ENDSEND START实验步骤:(1)阅读程序,画出程序流程图。

(2) 输入源程序,进行编译、链接和加载。

(3) 用E命令在以SI为起址的单元中填入16个数。

(4) 运行程序并检查结果,用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同。

(5)试改变SI、DI的取值,观察在三种不同的数据块情况下程序的运行。

将SI,DI的首地址改成:MOV SI,3100HMOV DI,3108H执行结果:程序执行完后,将SI所指向的数据块传给了DI所指向的数据段,分步执行时可以发现程序执行是从程序段的末地址开始的。

C语言程序设计任务4:商场抽奖活动分析

C语言程序设计任务4:商场抽奖活动分析

第39 -40 课时课型:学做一体课课题:项目2:商场购物-任务4:商场抽奖活动-循环结构程序设计(3)教学方法:讲授、引导讨论、案例教学教学目的:1. 理解循环结构的基本思想2. 熟练循环控制语句for语句的结构和用法3. 掌握循环嵌套的思想及使用4. 实现任务4教学重、难点:教学重点:循环的嵌套教学难点:循环的嵌套辅助教学手段:多媒体授课班级授课日期月日月日月日月日月日主要教学内容:一、回顾与引入回顾:while、do while、for循环项目任务问题情景引入:递归和穷举问题二、新课内容项目二商场购物任务4:商场抽奖活动要求:商场进行抽奖活动,抽奖箱子中有12个球,分别为3个红球、3个黄球、6个蓝球,参与者抽取8个球,符合商场要求的不同颜色组合获取不同等级的奖项。

请列举参与者所有取球的可能性组合。

解决问题需要的知识点:•1、循环的嵌套。

5.5 循环的嵌套引入:小明拿着100元钱,去银行换零钱,他想换成一元、两元、五元的,请问共有多少种兑换方案?请一一列举出来。

【思路指导】:•把100元钱先换成五元的,可以是0——20种,任选其一,增一循环;•在(1)的基础上,再换成两元的,可以是0——50张,任选其一,增一循环;•在(2)的基础上,再选一元的兑换,看是否满足它的有效范围;最后三个结合起来,就是一种合理的兑换方案。

【代码实现】:#include<stdio.h>void main(){int i,j,k;for(i=0;i<=20;i++) /*五元的换法张数可能情况*/for(j=0;j<=50;j++)/*五元的换好,两元的换法张数可能情况*/{k=100-i*5-j*2; /*五元、两元的换好,一元的张数*/if(k>=0)printf(“%d,%d,%d\n”,i,j,k);}}1、循环嵌套的几点说明:●在一个循环体内又完整地包含另一个循环,称为循环嵌套。

MATLAB程序设计与应用课后实验答案

MATLAB程序设计与应用课后实验答案
A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
[A,B]
[A([1,3],:);B^2]
运算结果:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
0 0 0 0
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
由ans,所以
2. 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么?
解:M文件如下:
输出结果:
H =
P =
1 1 1 1 1
Columns 57 through 60
Column 61
z4 =
0 0
2. 已知:
求下列表达式的值:
(1) A+6*B和A-B+I(其中I为单位矩阵)
(2) A*B和A.*B
(3) A^3和A.^3
(4) A/B及B\A
(5) [A,B]和[A([1,3],:);B^2]
解:
M文件:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
实验四 循环结构程序设计
一、实验目的
1. 掌握利用for语句实现循环结构的方法。
2. 掌握利用while语句实现循环结构的方法。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(_______________)
{if( x%i==0 && y%i==0 )
break;
}
printf("最大公约数是: %d\n",i);
}
(二)计算1到100之间的奇数之和及偶数之和。请填空。
/* 计算1到100之间的奇数之和及偶数之和 */
#include "stdio.h"
void main( )
2.字符常量’0’与数值常量0是不同的。
(六)下面程序的功能是:计算1到100之间的奇数之和及偶数之和,并输出。请在程序中的横线上填入适当的内容,将程序补充完整并运行。
/* c4-6.c */
/* 计算1到100之间的奇数之和及偶数之和 */
#include "stdio.h"
void main( )
定义两个变量t再定义一个循环变量和结果变量s从键盘输入间的每一个数在循环体中通过条件语句来判断这个数是否既不能被3整除也不能被7整除如果满足条件累加求和如果不满足则继续循环
实验四 循环结构程序设计(一)
一、实验学时 2学时
二、实验目的
(一)掌握用while,do-while,for语句实现循环的方法;
void main( )
{ float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while (_______________)
{ if (x>amax) amax=x;
if (_______________) amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
inta=10,b=0;
do{ b+=2;a-=2+b;} while(a>=0);
(二)当执行以下程序段时,循环体执行的次数是__________。
x = -1;
do { x=x*x;} while( !x);
(三)编程求 1!+2!+3!+……+20!的值。
注意:根据题目,考虑所定义的各个变量应该为何种类型。程序结构如下:
另外,两个数的最大公约数和最小公倍数的关系为:最小公倍数=m*n/最大公约数
可利用此关系进行程序设计。
(五)编程实现,从键盘上输入一行字符,统计其中英文字母、数字、空格和其它字符的个数。
编程提示:
先定义一个字符型的变量(如c),再定义4个整型变量作为计数器,作为计数器的变量要先赋初值0。在循环中每次从键盘上读入一个字符,在循环体中对读入的字符进行判断,相应的计数器加1,当读入的字符为’\n’时结束。
/* c4-1.c */
/* 求1!+2!+3!+……+20!*/
#include "stdio.h"
voidmain()
{ 定义变量i作为循环控制变量;
定义变量p和sum分别存放各个整数的阶乘和阶乘之和;
变量p和sum赋初值;
for(i=1; i<=20; i++ )
{ 变量p连乘 ;
变量sum累加; }
}
程序的基本结构如下:
/* c4-9.c */
/* 按条件求数列和 */
#include "stdio.h"
void main( )
{定义变量;
变量赋初值;
输入m,n的值;
if( m>n )
m和n交换;
for (_______________)
if ( i%3!=0 && i%7!=0 )
变量s累加求和;
}
(九)求两个正整数[m,n]之间所有既不能被3整除也不能被7整除的整数之和。
编程提示:定义两个变量m,n和t,再定义一个循环变量和结果变量s,从键盘输入m和n的值,判断两个变量的值,如果m>n,则交换两个变量。然后用循环依次判断m和n之间的每一个数,在循环体中通过条件语句来判断这个数是否既不能被3整除也不能被7整除,如果满足条件,累加求和,如果不满足,则继续循环。
输出sum的值 ;
}
(四)编写一个程序,求出两个数m和n的最大公约数和最小公倍数。
编程提示:求最大公约数的方法有三种:
1.从两个数中较小数的开始向下判断,如果找到一个整数能同时被m和n整除,则终止循环。设n为m和n中较小的数,则如下程序段可实现:
for(k=n; k>=1; k--) if(m%k==0 && n%k ==0) break;
{ int a,b,c,i;
_____________;/*变量初始化*/
for(i=0;i<=100;i+=2)
{ a+=i;/*变量a存放偶数的和*/
____________;
c+=b;/*变量c存放奇数的和*/
}
printf("sum of evens is %d\n",a);
printf("sum of odds is %d\n",________);
{ int a,b,c,i;
a=0,c=0;/* 变量赋初值 */
for(i=0;i<=100;i+=2)
{ a+=i;/* 变量a存放偶数的和 */
_______________;
c+=b;/* 变量c存放奇数的和 */
}
printf("Sum ofEvens is %d\n",a);
printf("Sum ofOdds is %d\n",c-101);
scanf("%d",&num) ;
do
{k=____________ ;
num/=10;
}while(num) ;
printf("\n%d\n",k) ;
}
(四)求两个正整数[m,n]之间所有既不能被3整除也不能被7整除的整数之和。请填空。
/* 按条件求数列和 */
#include "stdio.h"
void main( )
{int m,n,i,t;
long int s=0;
scanf("%);
if( m>n )
{ t=m; m=n; n=t;}
for (_______________)
if ( i%3!=0 && i%7!=0 )
s += i;
printf("Sum is :%ld\n",s );
for(k=1; k<=n; k++) if(m%k==0 && n%k==0) x=k;
变量x的值即为最大公约数。
/* c4-3.c */
/* 求最大公约数算法2 */
#include "stdio.h"
void main( )
{
}
3.用辗转相除法,即将求m和n的最大公约数问题转化为求其中的除数和两个数相除所得余数的公约数。每次循环中,先求两个数的余数,然后以除数作为被除数,以余数作为除数,当余数为0时结束循环,此时除数即为最大公约数。设m和n中n为较小的数,则可用如下程序段实现:
编程中可使用如下的循环结构:
while((c=getchar())!=’\n’))
{ if(……) ……;
else if(……) ……;
……;
else ……;
}
/* c4-5.c */
/* 统计字符串中指定字符的个数 */
#include "stdio.h"
void main( )
{
}
注意:
1.while( (c=getchar())!=’\n’) )中括号的使用,第二层的小括号不能省略,想一想为什么?
}while(num) ;
printf("\n%d\n",k) ;
}
五、实验注意事项
(一)while,do-while,for语句中应有使循环趋向于结束的语句,否则就可能构成死循环。
(二)while,do-while语句什么情况下的运行结果是相同的,什么情况下运行结果不同。
(三)注意在循环结构程序设计中,正确使用{}构成复合语句。
}
(三)下面程序的功能是:计算正整数num的各位上的数字之和。例如,若输入:252,则输出应该是:9;若输入:202,则输出应该是:4。请将程序补充完整。
/* 计算整数各位数字和 */
#include "stdio.h"
void main( )
{ int num,k;
k=0;
printf("请输入一个整数:") ;
k即为最大公约数。
/* c4-2.c */
/* 求最大公约数算法1 */
#include "stdio.h"
void main( )
{
}
2.从整数1开始向上找,直至m和n中较小的数,每找到一个能同时被m和n整除的整数,将其存入一个变量中,当循环结束时,变量中存放的即为最大公约数。设n为m和n中较小的数,则如下程序段可实现:
void main( )
{ int num,k;
_______________;/* k赋初值 */
printf("\Please enter a number:") ;
相关文档
最新文档