实验项目四结构化程序设计_循环结构
- 格式:doc
- 大小:670.50 KB
- 文档页数:13
实验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的选择程序设计方法。
《高级语言程序设计》实验报告实验序号:2 实验项目:数据类型、运算符和表达式09机制2 学号232 姓名叶志伟专业、班级实验地点1-511 指导教师胡亮实验时间 3.15一、实验目的及要求1.掌握C基本数据类型的基本概念、基本属性。
2.学会如何书写一个整型、字符型、实型常量。
3.掌握C算术运算符的基本概念、基本属性、运算规则。
二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤1.输入下列源程序,进行修改、编译、连接和运行。
程序:main ( ){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);}运行结果是:两行结果的不同是由什么引起的:程序定义了输出的类型,第一个输出字符型,另一个输出整型。
2.输入并运行下面的程序:#include<stdio.h>void main(){char c1,c2,c3;c1=getchar();c3=getchar();putchar(c1);putchar(c2);putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因。
(↙表示回车)(1)123↙(2)12↙(3)1↙2↙运行结果是:分析运行结果:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.3.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因。
结构化程序设计的基本结构随着计算机技术的不断发展,程序设计也逐渐成为了现代社会不可或缺的一部分。
在程序设计的过程中,结构化程序设计是一种被广泛使用的设计方法。
它以清晰、简洁、易于理解和维护的代码为目标,被广泛应用于各种类型的软件开发中。
本文将介绍结构化程序设计的基本结构,以及如何使用它来编写高效的程序。
一、结构化程序设计的概念结构化程序设计是一种程序设计方法,它通过将程序分解成小的模块,然后按照一定的结构组合这些模块,从而构建出一个完整的程序。
结构化程序设计的目标是编写高效、可读性强、可维护性好的程序。
结构化程序设计的核心思想是分而治之。
将一个大的问题分解成多个小的问题,然后使用适当的算法解决这些小的问题。
这种方法可以使程序更加清晰、易于理解和维护。
同时,结构化程序设计还强调程序的模块化,也就是将程序分解成多个模块,每个模块只完成一个特定的任务。
二、结构化程序设计的基本结构结构化程序设计的基本结构包括三种控制结构:顺序结构、选择结构和循环结构。
1.顺序结构顺序结构是指程序按照编写的顺序依次执行每个语句。
程序从程序的入口开始执行,依次执行每个语句,直到执行完所有语句为止。
例如:```a = 10b = 20c = a + bprint(c)```以上代码中,程序按照编写的顺序执行每个语句,先给变量a 赋值,然后给变量b赋值,然后计算a和b的和,最后输出结果c。
2.选择结构选择结构是指程序根据条件选择执行不同的语句。
选择结构有两种形式:if语句和switch语句。
(1)if语句if语句的基本形式如下:```if condition:statementelse:statement```其中,condition是一个条件表达式,statement是要执行的语句。
如果condition为True,则执行if后面的语句;否则执行else后面的语句。
例如:```a = 10b = 20if a > b:print('a > b')else:print('a <= b')```以上代码中,如果a大于b,则输出'a > b';否则输出'a <= b'。
结构化程序设计的3种结构
1.顺序结构:顺序结构通常是指一系列按顺序执行的指令,它是程序
设计过程中最基本的结构。
顺序结构可以简单地理解为从上到下顺序执行,它要求每一条指令必须按照顺序一个接一个地按固定的顺序执行,它表示
程序执行的一系列步骤必须按顺序依次执行,直到执行完毕。
2.分支结构:分支结构的语法是一系列的判断语句,它能够根据多种
情况下的不同输入,采取不同的操作,对程序有着很重要的作用,能够使
程序看起来更加灵活及容易阅读。
使用分支结构可以实现更加复杂的程序
结构,它可以检查变量的值,根据变量值的不同,来决定程序执行不同的
程序分支。
3.循环结构:循环结构又称为循环程序设计,它是指把某些重复执行
的步骤放在一个循环体中,根据循环次数的不同,可以实现程序的任务,
循环结构具有可以重复执行某段代码的功能。
循环结构在实际编程中,可
以用来实现大规模数据的处理,也可以实现边界值的自动搜索,有效地提
高程序的执行效率。
第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。
printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。
格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。
(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。
转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。
格式字符串中的普通字符,原样输出。
例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。
2.输出项表输出项表是可选的。
如果要输出的数据不止1个,相邻2个之间用逗号分开。
下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。
第四节循环结构一、教材分新循环结构是VB程序设计的基本结构之一,在解决规律性的重复工作上,具有自己的优势,是三种基本程序结构中最复杂的一种。
教材在本节的开篇提出了教师阅卷中存在繁重的重复工作,同时对比给出了计算机阅卷过程的描述,让学生初步体会循环结构的执行过程,这时,学生自然想知道,有哪些语句可以实现循环结构呢?接下来,让学生通过四个活动的实践,了解循环结构的含义,掌握循环语句的格式和功能,学会使用循环语句实现对各种循环流程的控制,探究数组是如何在循环结构中得以广泛应用的。
四个活动的处理过程都是采用分析问题、设计算法、实现程序、调试运行四个环节进行设计的,符合标准程序设计的完整过程。
四个活动分别通过对同一个问题从简单到复杂的需求设计循环程序。
使学生由初步到深入熟悉循环结构及其循环语句,学生在亲自设计程序的过程中。
体会循环变量的控制,掌握循环流程图的完善和设计。
最后通过完成体验活动,进一步巩固循环结构的相关知识和技能。
活动一:用for…next语句实现循环结构。
本活动让学生经历小明帮助爸爸编写一个计算每月电脑销售总额的程序的设计过程,掌握如何用for...next语句实现循环结构。
通过算法分析让学生了解循环结构的组成及其含义;通过流程图的绘制让学生理解循环结构的特点;通过程序代码的录入让学生掌握for...next 语句的格式;通过程序的调试运行和监视变量值的变化,让学生掌握循环语句的执行情况。
活动二:在循环结构中数组的应用。
本活动的问题在活动一的基础上,增加了“保存35种电脑的月销售额”。
因为用同一个变量无法实现程序执行过程中多个数据的记录存储功能,所以,编者引入了“数组”这一新的VB数据结构。
数组是复杂程序设计中经常使用的数据结构,让学生通过数组在循环结构程序中的应用,了解数组的含义、功能和使用过程,进一步熟悉循环结构,熟练使用for…next 语句实现循环结构程序。
关于数据结构的相关知识将在教学资源中进行补充介绍。
《C语言程序设计》课程标准一、课程定位:《C语言程序设计》课程是高等职业教育理工科专业的一门通识教育平台课程,本课程的主要任务使学生在结构化程序设计方法、程序设计语言与程序设计工具软件的使用等方面受到严格、系统的训练,通过本课程的学习,要求学生了解和掌握C语言程序设计的基础知识,建立起程序设计的概念,通过学习用C程序设计语言编写程序,初步掌握程序设计方法,养成良好的程序设计风格。
二、主要任务1、了解C语言的概述;2. 学会合理选用数据类型、常用运算符、控制输入输出函数及表达式等;3. 熟练掌握VC运行环境及C语言的结构化程序设计的三大结构——顺序结构、分支结构及循环结构;4. 掌握如何正确的使用一维数组和二维数组以及如何用数组实现简单的应用程序,比如求最大值、排序及插入数据等;5. 掌握变量的地址和指针变量的区别,熟练掌握通过指针访问数组和通过指针访问字符串;6. 学会使用C语言的函数定义、调用及分类的相关知识;7.学会使用预处理命令进行程序设计;8. 掌握结构体变量的使用方法及结构体数组的使用方法;9. 掌握共用体类型及枚举类型数据的特点;10.掌握位运算符的使用方法;11. 了解文件的处理过程及掌握文件的基本操作本领。
三、课程目标本课程的教学目标为:通过本课程的学习,使学生掌握C语言程序设计的基本知识和基本技能,树立结构化程序设计的基本思想,使学生完成独自编写小程序的任务,达到全国二级考试要求,能应用C语言解决一般编程问题的目的。
1、知识目标(1)了解C语言的概述;(2)学会合理选用数据类型、常用运算符、控制输入输出函数及表达式等;(3)熟练掌握VC运行环境及C语言的结构化程序设计的三大结构——顺序结构、分支结构及循环结构;(4)掌握如何正确的使用一维数组和二维数组以及如何用数组实现简单的应用程序,比如求最大值、排序及插入数据等;(5)掌握变量的地址和指针变量的区别,熟练掌握通过指针访问数组和通过指针访问字符串;(6)学会使用C语言的函数定义、调用及分类的相关知识;(7)学会使用预处理命令进行程序设计;(8)掌握结构体变量的使用方法及结构体数组的使用方法;(9)掌握共用体类型及枚举类型数据的特点;(10)掌握位运算符的使用方法;(11)了解文件的处理过程及掌握文件的基本操作本领。
第1篇实验名称:程序循环结构实验实验日期:2023年4月10日实验地点:计算机实验室实验目的:1. 理解循环结构在程序设计中的作用。
2. 掌握不同循环结构(如for循环、while循环、do-while循环)的语法和应用。
3. 能够根据实际问题选择合适的循环结构进行编程实现。
4. 提高编程实践能力。
实验环境:1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm实验内容:一、实验一:for循环结构1. 实验目的了解for循环的语法和使用方法,掌握其基本操作。
2. 实验步骤(1)编写一个程序,使用for循环打印1到10的整数。
(2)编写一个程序,使用for循环计算1到100的整数之和。
3. 实验代码```python打印1到10的整数for i in range(1, 11):print(i)计算1到100的整数之和sum = 0for i in range(1, 101):sum += iprint("1到100的整数之和为:", sum)```4. 实验结果程序成功运行,打印出1到10的整数和1到100的整数之和。
二、实验二:while循环结构1. 实验目的了解while循环的语法和使用方法,掌握其基本操作。
2. 实验步骤(1)编写一个程序,使用while循环计算1到10的整数之和。
(2)编写一个程序,使用while循环判断一个数是否为素数。
3. 实验代码```python计算1到10的整数之和sum = 0i = 1while i <= 10:sum += ii += 1print("1到10的整数之和为:", sum)判断一个数是否为素数num = 29is_prime = Truei = 2while i i <= num:if num % i == 0:is_prime = Falsebreaki += 1if is_prime:print(num, "是素数")else:print(num, "不是素数")```4. 实验结果程序成功运行,打印出1到10的整数之和以及29是否为素数。
《程序设计基础I》实验报告实验项目四:结构化程序设计_循环结构一、实验目的及要求(1)熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
(2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
(3)掌握多重循环的选择时机和使用方法;(4)掌握使用break和continue语句的方法。
二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤(要求以“学号_姓名_题号”为名建立项目;例项目名为:2013050201_***_01)1.分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······算法提示:1)定义实变量sum、term、a、b、c,整变量i2)初始化:sum=0,分子a=2,分母b=13)初始化:i(计数器)=14)计算第i项term =a/b5)累加sum=sum+term6)计算c=a+b,更新b= a,更新a=c7)计数器加1,i++8)重复4、5、6、7,直到i>209)输出2位精度的结果把每一次迭代结果输出,程序应做怎样的修改?3输入正数n ,要求输出Fibonacci 数列的前n 项。
1,1,2,3,5,8……#include<stdio.h>开始结束term=0 sum=0 i=1i ≤20?i=i+1sum=sum+termterm=term *i输出sum是 否#include<stdio.h> int main(){float term,sum;int i; term=1,i=1,sum=0; while(i<=20) {term=term*i; sum=sum+term;printf("sum=%.1f\n",sum); i++; }printf("sum=%f\n",sum); return 0; }int main(){int a,b,c,n,i; a=1,b=1;scanf("%d",&n);printf("%d,%d,",a,b); for(i=3;i<=n;i++) {c=a+b,a=b,b=c; printf("%d,",c);if(i%10==0) printf("\n"); }return 0; }4下面是计算s = n!的源程序,在这个源程序中存在若干语法和逻辑错误。
要求在计算机上对这个例子源程序进行调试修改,使之能够正确完成指定任务。
例如,8! = 40320。
#include <stdio.h> int main() {int i, n, s = 1;printf("Please enter n:"); scanf("%d", n);for(i = 1, i <= n, i++)s = s * i;printf("%d! = %d", n, s);}return 0;修改上述计算s = n!的源程序,要求输入改为“整数S ”,输出改为“满足n! >=S 的 最小整数n ”。
例如,输入整数为40310,输出结果为n = 8。
要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)#include <stdio.h>int main(){int i, n, s = 1;printf("Please enter n:");scanf("%d",&n);for(i = 1; i <= n;i++) s = s * i;printf("%d! = %d\n", n, s); return 0;}5. 分析题(1) 先分析程序运行的结果,然后上机编辑和运行程序,并将运行的结果与分析的结果 进行比较,若分析有误,试找出原因。
答:要想循环,则while 后面不加分号开始结束输入sTerm<s ? 是否输出nTerm=term ×i ; I=i+1Term=1#include<stdio.h> int main() { float S,term=1;inti=1,n; printf("请输入S 的值"); scanf("%f",&S); while(term<S) {term=term*i; i++; } n=--i; printf("n 为 %d\n",n); return 0; }N=n-i(2)若把第5行中的k++改为++k,结果如何答:输出Final k=1 Final k=26.分析题(1)先分析程序运行的结果,然后上机编辑和运行程序,并将运行的结果与分析的结果进行比较,若分析有误,试找出原因。
<><><>#(2)若把第7行中的i%2改为!(i%2),结果如何变化?<><>#(3)若把第7行中的continue改为break,结果如何变化?<>#通过(3)的操作,你对break和continue语句有什么认识?break语句跳出循环,不再重复,continue语句本次循环不输出继续执行循环语句7.分析题(1)先分析程序运行的结果,然后上机编辑和运行程序,并将运行的结果与分析的结果进行比较,若分析有误,试找出原因。
#######*##**#***8.分析题(1)先分析程序运行的结果,然后上机编辑和运行程序,并将运行的结果与分析的结果进行比较,若分析有误,试找出原因。
b=22(2)画出程序的流程图。
9. 编写一个程序,打印10行杨辉三角。
要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。
开始结束A=1,b=1a<100?是 否是是 否否 b ≥20?B%3=1?B=b+3B=b-5A=a+1#include "stdio.h"main(){int a[11][20],i,j;//初始化for(i=0;i<11;i++)for(j=0;j<20;j++)a[i][j]=0;//给数组附值for(i=0;i<10;i++){for(j=0;j<=i;j++){if(j<1)a[i][j]=1;//开头的第一个数为1else if(i==0)break;elsea[i][j]=a[i-1][j-1]+a[i-1][j];}}//杨辉三角的规律for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%d ",a[i][j]);printf("\n");}}10.编写程序输出m~n之间的素数(n>m>3),m和n由用户从键盘上输#include<stdio.h>#include<math.h>int main(){int m,n,i,k,a=0;scanf("%d,%d",&n,&m);for(n;n<=m;n++){k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0) break;if(i>=k+1) { printf("%d ",n);a=a+1;}if(a%10==0) printf("\n");}return 0;}11.输入两个正整数m和n,求其最大公约数和最小公倍数。
#include<stdio.h>int main(){int m,n,team,a,b,c;printf("输入m和n:");scanf("%d,%d",&m,&n);if(m<n){team=n;n=m;m=team;}a=m;b=n;while(b){c=a%b;a=b;b=c;}printf("最大公约数为:%d",a);printf("最小公倍数为:%d\n",(m*n)/a);return 0;}12.编程序按下列的级数求cos(x)的值并输出:要求:x的值由键盘输入(代表弧度),运算精度保持到最后一项的绝对值小于10-6为#include<math.h>#include<stdio.h>main(){int n=2,count=1,sign=-1;float x;double sum ,term;printf("input x:");scanf("%f",&x);sum=1;term=1;do{term=-term*x*x/(n*(n-1));sum+=term;n=n+2;count++;}while (fabs(term)>=1e-6);printf("cos(x)=%f\n",sum);}13.编写程序求一个四位数并输出。
已知该整数的个数为2,十位为1,且减去7后该数能被7整除,减去8后能被8整除,减去9后能被9整除。
#include<stdio.h>int main()。