




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目三 顺序程序设计 学习目标掌握顺序程序结构认识语言程序结构,掌握C语言基本语句认识结构化程序设计了解算法的概念,掌握常用简单算法掌握用流程图表示算法第1页,共32页。项目任务任务一 三角形面积计算器 任务二 三位数数字拆分第2页,共32页。任务一 三角形面积计算器任务描述 在实际应用及数学问题中经常需要按已知条件求三角形的面积,现已知三角形的三边长分别为a、b、c,求三角形的面积。任务分析 三角形面积求法较多,任务中已知三角形的三边长,这里可以按公式 (其中s=(a+b+c)/2),求三角形的面积。在程序中需要先初始化三角形三边长a,b,c(可通过键盘输入三个数分别赋值给变量a,b,c),
2、然后求出s=(a+b+c)/2,再求出 ,最后打印出三角形面积。第3页,共32页。任务一 三角形面积计算器任务实施1.程序源代码/*P_Task1.c*/#includemain()float a,b,c,s,area;printf(Enter Side length of triangle:n);scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%7.2f,b=%7.2f,c=%7.2fn,a,b,c);printf(area=%7.2fn,area);getch();2.程序运行结
3、果三角形面积计算器运行结果如图所示。第4页,共32页。任务一 三角形面积计算器相关知识一、顺序程序设计结构顺序程序设计结构是程序设计结构最简单最基本的结构,顺序程序结构中所在语句都是按先后出现的顺序依次执行。顺序结构的示意图,如图所示。前面任务程序及举例程序均为顺序结构程序。第5页,共32页。任务一 三角形面积计算器相关知识二、语句1程序的结构一个完整的程序可以存储于多个文件中,这些文件可以使用#include (*.*)预处理命令联系起来。C程序中最基本的组成是函数,C程序结构,如图所示。第6页,共32页。任务一 三角形面积计算器相关知识2C语句C程序的执行部分是由语句组成的。 程序的功能也
4、是由执行语句实现的。C语句可分为以下五类:简单语句、空语句、复合语句、结构化语句、非结构化语句。其分类,如图所示。第7页,共32页。任务一 三角形面积计算器相关知识(1)表达式语句表达式语句由表达式加上分号“;”组成。其一般形式为:表达式;执行表达式语句就是计算表达式的值。例如:x=y+z; 赋值语句;y+z; 加法运算语句,但计算结果不能保留,无实际意义;i+; 自增1语句,i值增1。(2)函数调用语句函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式为:函数名(实际参数表);执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调用函数体中的语句,返回函数值。
5、例如:printf(C Program);调用库函数,输出字符串。第8页,共32页。任务一 三角形面积计算器相关知识(3)控制语句控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。语言有九种控制语句,可分成三类,如表31所示。分类控制语句条件判断语句if语句、switch语句循环执行语句do while语句、while语句、for语句转向语句break语句、goto语句、continue语句、return语句第9页,共32页。任务一 三角形面积计算器相关知识(4)复合语句复合语句是把多个语句用括号括起来组成的一个语句。在程序中应把复合语句看成是单条语句,而不是多
6、条语句。例如:x=y+z;a=b+c;printf(%d%d,x,a);是一条复合语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“”外不能加分号。(5)空语句只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。例如:while(getchar()!=n);这里的循环体为空语句。它的功能是,只要从键盘输入的字符不是回车则重新输入。第10页,共32页。任务一 三角形面积计算器相关知识(6)赋值语句赋值语句是由赋值表达式再加上分号构成的表达式语句。其一般形式为:变量=表达式;赋值语句的功能和特点都与赋值表达式相同。它是程序中使用最多的语句之一。在
7、赋值语句的使用中需要注意以下几点:由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,因此,下述形式:变量=(变量=表达式);是成立的,从而形成嵌套的情形。其展开之后的一般形式为:变量=变量=表达式;例如:a=b=c=d=e=5;按照赋值运算符的右接合性,因此,实际上等效于:e=5;d=e;c=d;b=c;a=b;第11页,共32页。任务一 三角形面积计算器相关知识注意在变量说明中给变量赋初值和赋值语句的区别。给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。例如:int a=5,b,c;在变量说明中,不允许连续给多个变量赋
8、初值。如下述说明是错误的:int a=b=c=5;必须写为int a=5,b=5,c=5;而赋值语句允许连续赋值。注意赋值表达式和赋值语句的区别。赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。下述语句是合法的:if(x=y+5)0) z=x;语句的功能是,若表达式x=y+5大于0则z=x。下述语句是非法的:if(x=y+5;)0) z=x;因为x=y+5;是语句,不能出现在表达式中。第12页,共32页。任务一 三角形面积计算器相关知识三、结构化程序设计1结构化程序设计概念结构化程序设计(structured programming)是以模块功能和处理过程设计为
9、主,采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构构造程序的程序设计方法。任何结构化程序都可由顺序、选择、循环三种基本控制结构构造,结构化程序设计主要强调的是程序的易读性。2结构化程序设计三种基本结构结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。顺序结构:表示程序中的各操作是按照它们出现的先后顺序执行的。 选择结构:表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。循环结构:表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:什么情况下执行循环?哪些操作需要循环执行?(选择结构、循环结构将分别在
10、项目四、项目五中详细介绍。) 第13页,共32页。任务二 三位数数字拆分 任务描述在进行数码处理、底层显示、键盘输入等程序中经常要对数据进行拆分,即要求求出一个数各个位数上的数字,如803,要求得到8,0,3三个数。为了使程序简单,这里假定数据为三位的十进制整数。任务分析一个十制数三位数数字拆分的基本思想是:首先把这个数除以10,其余数即为个位数数字,再把上一次的商除以10,其余数为十位数数字,商为百位数数字。这里我们以a3表示原数,a2表示原数除以10后的商,r0表示个位数;a1表示a2除以10后的商,r1表示十位数数字,r2表示百位数数字。按顺序结构进行程序设计,程序实现如下。第14页,共
11、32页。任务二 三位数数字拆分 任务实施1.程序源代码/*P3_Task2.c*/#include int main(int argc, char *argv)int a3,a2,a1,r0,r1,r2;printf(Enter a Three-digit integer:n);scanf(%d,&a3);r0=a3%10;a2=a3/10;r1=a2%10;a1=a2/10;r2=a1%10;printf(One-digit is %dnTen-digt is %dnHundred-digit is %dn,r0,r1,r2);getch();return 0;2.程序运行结果三位数数字拆分
12、程序运行结果如图所示。第15页,共32页。任务二 三位数数字拆分 相关知识一、算法1算法的概念做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,我们通常称之为流程、程序,用计算机解决问题,能够在计算机中被执行的流程称为计算机算法。2简单算法举例例3.1 求12345。直接用汉语描述的算法:步骤1:先求12,得到结果2。步骤2:将步骤1得到的乘积2乘以3,得到结果6。步骤3:将6再乘以4,得24。步骤4:将24再乘以5,得120。这样的算法没有错误,易懂,但是太繁杂,而且没有通用性,当要求1234567n(n1000)。还用上述方法就很难描述了。第16页,共32页。任务二 三位数数字拆
13、分 相关知识引进符号描述的算法:S1:设P=1;S2:设i=2;S3:求乘积Pi,并令P=Pi;S4:i的值+1,并令i=i+1;S5:如果i5, 则重新从步骤S3做;否则,结束。这个算法比用直接用汉语描述的算法优越得多,它具有通用性,在S5中改in,它则是求1234567n的值。实际上,只要是有规律的数连乘都可以使用这个算法,在上面的算法上只需要改动i变化规律即可。例如:求1357911。算法改动如下:S1:P=1;S2:i=3;S3:P=Pi;S4:i=i+2;S5:若i11,返回S3,否则,结束。编写程序,不仅要找到解决问题的正确算法,而且找到的算法还要适合在计算机内执行。第17页,共3
14、2页。任务二 三位数数字拆分 相关知识例3.2 有50个学生,要求将他们之中成绩在80分以上者打印出来。如果,n表示学生学号,ni表示第i个学生学号;g表示学生成绩,gi表示第i个学生成绩;则算法可表示如下:S1:1i;S2:如果gi80,则打印ni和gi,否则不打印;S3:i+1i;S4:若i50,返回S2,否则,结束。例3.3 判定20002500年中的每一年是否闰年,将结果输出。润年的条件:能被4整除,但不能被100整除的年份;能被100整除,又能被400整除的年份;设y为被检测的年份,则算法可表示如下:S1: 2000y;S2:若y不能被4整除,则输出y“不是闰年”,然后转到S6;S3
15、:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6;S4:若y能被100整除,又能被400整除,输出y“是闰年” 否则输出y“不是闰年”,然后转到S6;S5:输出y“不是闰年”;S6:y+1y;S7:当y2500时, 返回S2继续执行,否则,结束。第18页,共32页。任务二 三位数数字拆分 相关知识例3.4求。算法可表示如下:S1:sigh=1;S2:sum=1;S3:deno=2;S4:sigh=(-1)sigh ;S5:term= sigh(1/deno );S6:term=sum+term;S7:deno= deno +1;S8:若deno100,返回S4;否则,结束。
16、例3.5 对一个大于或等于3的正整数,判断它是不是一个素数。算法可表示如下:S1:输入n的值;S2:i=2;S3:n被i除,得余数r;S4:如果r=0,表示n能被i整除,则打印n“不是素数”,算法结束;否则执行S5;S5:i+1i;S6:如果in-1,返回S3;否则打印n“是素数”;然后算法结束。第19页,共32页。任务二 三位数数字拆分 相关知识3算法的特性(如表所示) 特性说明有穷性一个算法应包含有限的操作步骤而不能是无限的。确定性算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。输入有零个或多个输入。输出有一个或多个输出。有效性算法中每一个步骤应当能有效地执行,并得到确定的结
17、果。对于程序设计人员,必须会设计算法,并根据算法写出程序。第20页,共32页。任务二 三位数数字拆分 相关知识4算法的表示方法自然语言表示:算法能够用自然语言描述,但复杂问题算法用自然语言描述难读难理解,除了很简单的问题,一般不用自然语言表示算法。流程图表示:流程图是使用符号、图示表示算法,使用流程图表示表示算法直观形象,易于理解。伪代码表示:伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。计算机语言表示:计算机语言是计算机能够识别、执行的语法规则,进行程序设计的最终目的是把人能够理解的算法使用计算机语言表示出来,即计算机程序。用计算机语言表示算法必须严格遵循所用语言的语法规则。
18、例3.6将例3.1用C语言表示,代码如下:main()int i,P;P=1;i=2;while(i=5)P=P*i;i=i+1;printf(%d,P); 第21页,共32页。任务二 三位数数字拆分 相关知识二、流程图1流程图符号流程图是使用符号、图示、说明表示算法,使用流程图表示具有直观形象,易于理解的优点。流程图常用图示,如表所示。图示说明起止框输入输出框判定框处理框流程线连接点第22页,共32页。任务二 三位数数字拆分 相关知识2流程图举例例3.7 求5!,用流程图表示,如图所示。第23页,共32页。任务二 三位数数字拆分 相关知识例3.8 输出50个学生中成绩在80分以上者的学号与分数,用流程图表示,如图所示。第24页,共32页。任务二 三位数数字拆分 相关知识例3.9 判定闰年,用流程图表示,如图3-8所示。 一个流程图包括:表示相应操作的框;带箭头的流程线;框内外必要的文字说明。第25页,共32页。任务二 三位数数字拆分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程概预算培训
- 对称剪纸教学课件
- 基本句型趣味课件
- 课件服务器问题
- 课件最后一页底图
- 广东护理自考考试题目及答案
- 矿山钻工考试题及答案
- 2025年中国木屑筛选器数据监测研究报告
- 口译听力考试题及答案
- 教师招聘之《小学教师招聘》通关考试题库(夺分金卷)附答案详解
- 部编新教材小学五年级语文上册全册同步练习课堂作业课课练课时练
- 变形记作文六年级变成小鸟
- 基层群众自治制度课件
- GA 568-2022警服夏执勤短袖衬衣
- 上肢主要神经损伤诊断
- GB/T 38381-2019新闻出版知识服务知识元描述
- GB/T 24600-2009城镇污水处理厂污泥处置土地改良用泥质
- GB/T 1839-2008钢产品镀锌层质量试验方法
- 检验科标本采集手册
- 07FD02防空地下室电气设备安装图集
- 矿产资源定量预测与评价新进展课件
评论
0/150
提交评论