C语言程序设计(2程序的简单算法指定).ppt_第1页
C语言程序设计(2程序的简单算法指定).ppt_第2页
C语言程序设计(2程序的简单算法指定).ppt_第3页
C语言程序设计(2程序的简单算法指定).ppt_第4页
C语言程序设计(2程序的简单算法指定).ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计,第二章 程序的简单算法制定,2.1 结构化程序的算法制定 2.2 结构化程序的算法描述 2.3 算法制定的范例,2.1 结构化程序的算法制定,利用计算机处理问题简述,2.1 结构化程序的算法制定,例2.1 从键盘输入3个数,找出其中最小的那个数。 分析:1、需变量的个数-3个 2、先比较a,b的值,把小的存在min中。 3、再用min与c比较,把数值小的存放在min中。 如果 ab 则 min=a,否则min=b; 如果cmin则min=c, 否则不变。 画出对应的流程图。 演示程序ex201,【例】让某学生解方程 ax2+bx+c=0 求解过程:,分析问题 这是一个一元二次方程(代数问题,须中学代数知识) 确定处理方案 用求根公式 确定解题步骤 确定a、b、c的值 求出b2 -4ac的值 如果 b2 -4ac0(双实根) X1= X2= 如果 b2 -4ac=0(单实根) X1=X2= 如果 b2 -4ac0(双复根) X1= X2= 根据上述步骤计算 写出答案,整理、分析结果,2.2 结构化程序的算法描述,什么是算法 为解决一个问题所采取的方法和步骤称为算法。 算法的特性 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。 算法有两个很重要的方面: (1)按什么顺序或步骤执行 (2)用什么语句来实现,2.2 结构化程序的算法描述,自然语言 特点:易懂、冗长、易产生歧义 流程图 N-S结构化流程图 PAD图 伪代码 计算机语言,伪码语句示例之一 if students grades greater than or equal to 60 display ” Passed” else display ”Failed”,伪码语句示例之二 如果学生成绩大于或等于60 显示”及格” 否则 显示 ”不及格”,C语言源程序段示例 if (grade=60) printf(“Passed!”); else printf(“Failed”);,算法可采用自然语言、流程图、N-S图、PAD图、伪代码等方法来描述。 示例:根据学生成绩输出评定结果。,一、算法(algorithm),二、算法与流程图传统流程图,特点: 直观形象; 使用流线。 缺点: 占面积大,使用流线任意转移,易出现“乱麻”现象,造成编程与阅读程序困难。,二、算法与流程图N-S结构化流程图,77年美学者I.Nassi和B.Scheiderman提出。 特点 取消流线 不允许流程任意转移,只能从上而下顺序执行 规定三种基本结构的流程图单元,由这些基本结构象搭积木似的组成各种算法(结构化设计)。 优点 算法清晰,流程不会无规律乱转移。,二、算法与流程图三种基本结构,通常情况下,程序中的语句是以所编写的顺序一句接一句地执行,这种执行方法称为“顺序执行”。许多C语句能够让程序员指定不按编写顺序执行下一条执行语句,这种执行方法称为“控制转移”。 Bohm和Jacopini的研究证实,所有的程序都能够只用三种控制结构编写,即 顺序结构 选择结构(selection structure) 循环结构(repetition structure) 顺序结构是C语言的基本结构,除非指示转移,否则计算机自动以语句编写的顺序一句一句地执行C语句。 任何C语言程序都是由七种控制结构(顺序结构、三种选择结构和三种循环结构)构成的。,二、算法与流程图三种基本结构,顺序结构 A块、B块顺序执行(每块代表一个或一组操作),二、算法与流程图三种基本结构,选择结构 条件p成立时执行a块(否则执行b块) if 选择结构 条件为真时执行某个指定的操作,条件为假时跳过该操作(单路选择) ifelse选择结构 条件为真时执行某个指定的操作,为假时执行另一个指定的操作(双路选择) switch选择结构 根据表达式的值执行众多不同操作中的某个指定的操作(多路选择),二、算法与流程图三种基本结构,循环结构 分当型和直到型两类。 当型 先判断,只要条件为真就反复执行A块,为假则结束循环。 直到型 先执行A块,再判断条件是否为真,为真则继续执行循环体,为假则结束循环。 C语言提供了三种循环结构,即while循环结构,dowhile循环结构和for循环结构。,2.2.3 PAD图,PAD(Problem Analysis Diagram)另一种被广泛使用的一种算法的图形表示法。 PAD图可以看成是二维的,它能展现算法的层次结构。(顺序结构很简单,在此未画图。),2.3 算法制定范例,例2.4 把从键盘输入的大写字母转换成小写字母,输出结果。 问题: 1、描述算法 2、根据算法编写C程序 3、运行检查程序是否正确。 演示ex202,2.3 算法制定范例,例2.5 已知实数a和b,计算u的值:u=(r+s)2。其中,当ab时,r=a2-b2,s=a/b;当ab时,r=b2-a2,s=a/b+4。 算法(自然语言描述): 从键盘输入实数a和b。 如果ab,则r=a2-b2,s=a/b;否则,r=b2-a2,s=a/b+4。 计算u的值: u=(r+s)2。 输出u的值。,开始,输入a,b,ab,T,F,r=a*a-b*b,s=a/b,r=b*b-a*a,s=a/b+4,结束,u=(r+s)*(r+s),输出u的值,流程图,输入实数a,b,ab,F,T,r=a*a-b*b s=a/b,r=b*b-a*a s=a/b+4,计算的值:u=(r+s)*(r+s),输出u的值,N-S图,输入实数a,b,ab,r=a*a-b*b,s=a/b,r=b*b-a*a,s=a/b+4,计算u=(r+s)*(r+s),输出u的值,PAD图,/*例2.5*/ #include main() float a,b,r,s,u; printf(“请输入变量a、b的值:“); scan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论