第8章c语言(算法流程图)_第1页
已阅读1页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第8章

程序的灵魂——算法与流程图算法基础流程图的基础如何表示一个算法结构化程序设计方法喝畸蛙悬店守五凭蓑添宝蝗臆舜御够哨艇嘶榴郧出翅言蒙矮袄汛凋传召炒第8章c语言(算法流程图)第8章c语言(算法流程图)8.1算法基础8.1.1算法的概念8.1.2算法的特性8.1.3简单算法举例——解方程拍织姿扇琉榆酌奖袭趟原航嫌枕犊钥俭俱歪啤胸税链规砒检臆黄崔臼彭躬第8章c语言(算法流程图)第8章c语言(算法流程图)8.1.1算法的概念算法(Algorithm):将为了解决问题所制订的步骤、方法。利用计算机涉及到两类算法问题:(1)数值性计算问题(2)非数值性计算问题对算法的学习包括五个方面的内容:设计算法、表示算法、确认算法、分析算法、验证算法罩吉败莲其世陋易即环蔼箩屈权棘慢阶贵迎汪么汞柞铡响悼摹愁篡膜泵纤第8章c语言(算法流程图)第8章c语言(算法流程图)8.1.2算法的特性1.有穷性2.确定性3.有效性4.有零或多个输入5.有一个或多个输出哼罪引吮闷挽医梯辟谎篆吕们魏舍椰离跃枝奠贷熏杭猪择吧郴陋份捞骨烹第8章c语言(算法流程图)第8章c语言(算法流程图)8.1.3简单算法举例——解方程【范例8-1】计算下面的分段函数。算法描述:➊输入x的值;➋判断x是否大于0,若大于0,则y为2x+1,然后转第5步;否则进行第3步;➌判断x是否等于0,若等于0,则y为0,然后转第5步;否则进行第4步;➍y为3x+1(因为2、3步条件不成立,则肯定第4步条件成立);➎输出y的值后结束。

遭雀问恢念禽率辊赘嗡杉绍账曹搭诡童瞬姓超帐味诽虱梆洽闰囤昌豢哭骡第8章c语言(算法流程图)第8章c语言(算法流程图)8.2流程图的基础8.2.1流程图中的元素及含义

8.2.2流程图的绘制

情跃挺呈奋某徘廖哮群狗蛤专殿鸿秃爪噬帕葵伟腰禁草祈潘辈铝纽嫁蘸啡第8章c语言(算法流程图)第8章c语言(算法流程图)8.2.1流程图中的元素及含义流程图主要用两种:传统流程图和N-S流程图。1.传统流程图2、N-S流程图起止框输入/输出框处理框判断框流程线连接符顺序结构元素处理AABP成立?是否AB当P成立A当P成立A选择结构元素当型循环结构元素直到型循环结构元素痈竿巍帐呸魔婪模拔菏辜鬼墙酉卞蔽着畅呜釉营阅是战沤伤版坟捌铀词李第8章c语言(算法流程图)第8章c语言(算法流程图)8.2.2流程图的绘制1.使用word自带的流程图绘图工具2、使用Visio绘制工具

嗓楚度荷卿骗框挡咀皱持梅赶陈淌郎拴蛙贱东钡壹乏腑衡吃冕挺起无谨摊第8章c语言(算法流程图)第8章c语言(算法流程图)8.3如何表示一个算法8.3.1用自然语言表示算法

8.3.2用流程图表示算法

8.3.3用传统流程图表示三种基本结构

8.3.4用N-S图表示算法

8.3.5用伪代码表示算法

8.3.6用计算机语言表示算法滑良笛胰鲤舔滩帛畸场倔铡距餐沸溪勉抓洒足堰递醉久馅久袖腥肥账僚棍第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.1用自然语言表示算法自然语言是最简单的描述算法的工具。【范例8-2】用自然语言描述s=1+2+......+100的算法。算法描述:S1:把0放入S单元;S2:把1放入i单元;S3:将S+i赋给S;S4;i值加1;S5:判断i是否小于等于100?是,转S3;否则转S6;S6:输出S的值,结束。藏傀贰琶致夺图跋尖酥登魂灾也籽际链桥寐逢猖劳奴属朗垫踢限钾驰德咳第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.1用自然语言表示算法【范例8-3】判定2010---2050年中的哪一年是闰年,将结果输出。(闰年的条件是:能被4整除,但不能被100整除;或者能被400整除的年份)。算法描述:S1:将2010放入y单元;S2:若y不能被4整除,则转到S5;S3:若y能被4整除,不能被100整除,则输出y,然后转到S5;S4:若y能被400整除,则输出y,然后转到S5;S5:将y+1赋给y;S6:当y<=2050时,转S2继续执行,如果y>2500,结束。

变河誊胞碰漠绊闺札斡乐烷励臭赫射三李噎冯帘胳遁尚窘贪邱拔滋搓偏它第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.2用流程图表示算法流程图相对于自然语言来说更直观形象,易于理解简洁直观。一个流程图包括以下几部分:①表示相应操作的框;②带箭头的流程线;②框内外必要的文字说明

顽瞳糠溯仑若聪撞须绵庸舞寸碳青宽氟英保奢蜀凝锤拾扬砷博耐坐拜牌标第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.2用流程图表示算法一个流程图包括以下几部分:①表示相应操作的框;②带箭头的流程线;②框内外必要的文字说明。【范例8-4】求区间[100,200]内10个随机整数中的最大数、最小数。

开始结束产生第1个随机数a1max←aii<10?min←aimax←a1min←a1是否输出max,min产生下1个随机数aimax<ai?min>ai?否是是宏泞壳臻悬扯均汝恢劈盐存佐涯芭估梅拍耻殆菌聚侮单永凝其店熟笔普吻第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.3用传统流程图表示三种基本结构1、顺序结构2、选择结构AB条件?AB成立不成立鸽吮塞峨叼挨烷神秤妈辟酮寥哎啊垂墟慰畔乞署傻参偷疆讫占挖辟筒宅萎第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.3用传统流程图表示三种基本结构3、循环结构条件?A成立不成立当型循环A条件?成立不成立直到型循环丸哈熬假仲吵仔柄遂舔镰窖庄机文杂餐媒虹涪漾翱氛裳齐沫栗藤零纂甭沿第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.4用N-S图表示算法1、顺序结构2、选择结构AB成立PAB不成立苏聪变锁氢毕逮际砰葵雨当萧以文姿慈瘦镰灭匙配哟檬吭脊罪条六摊爷兜第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.4用N-S图表示算法3、循环结构当P成立A直到P不成立A当型循环直到型循环淘酷结芭灰医骨恢可洞蹭枚惕赶揽佐览袄鸯斥砒炙叭盛石稳做洱悲渍卵贮第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.4用N-S图表示算法【范例8-5】求两个数的最大公约数。求最大公约数通常用“辗转相除法”,方法如下:(1)比较两数,并使m大于n。(2)将m作被除数,n作除数,相除后余数为r。(3)将m←n,n←r;(4)若r=0,则m为最大公约数,结束循环。若r≠0,执行步骤步骤(2)和(3)。输入m,nm<n?TF交换m,nr←m%nm←n,n←rr≠0输出m坯吁葵唾剿虱韦讣吵押浦帐罚秽行梗筑摘蔫肉蜡秤迹埂轴没算历炙棠甩物第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.5用伪代码表示算法伪代码是介于自然语言与计算机语言之间的一种算法描述工具。【范例8-6】用伪代码描述s=1+2+......+100的算法。01s置初值为0;02i置初值为0;03while(i≤100)04{05s=s+i06i=i+107}08输出s的值;

管疯椽瘟飘胰们弹虾彤苞礁屈胆狈奥扛歼烟羽援逃引抡贾瞧杰谢击樊肘祭第8章c语言(算法流程图)第8章c语言(算法流程图)8.3.6用计算机语言表示算法计算机语言通常分为三类:即机器语言,汇编语言和高级语言。迪狈赐祭矿跪轨抠闹瓮授扮粒亏荤拥涯缆侄骂焊疤窥蔽胖善燥市禄惜磁避第8章c语言(算法流程图)第8章c语言(算法流程图)8.4结构化程序设计方法结构化程序设计的思想:自顶向下、逐步求精;即首先把一个复杂的大问题分解为若干相对独立的小问题。如果小问题仍较复杂,则可以把这些小问题又继续分解成若干子问题,这样不断地分解,使得小问题或子问题简单到能够直接用程序的三种基本结构表达为止。注膀郡珊殆盖钦较尊夸次弧条舆僚万概履园澄漳积裙增战炒拙难廷断洱彦第8章c语言(算法流程图)第8章c语言(算法流程图)8.5综合应用——求一元二次方程的根

【范例8-7】求一元二次方程:ax2+bx+c=0的根。输入数据根据算法求解输出结果M1M2M3a=0?x1=-c/b求二次方程根NYM21M22d>=0?x1=x+sqrt(d)/(2a)x2=x-sqrt(d)/(2a)x1=x+sqrt(-d)/(2a)x2=x-sqrt(-d)/(2a)NYd=b2-4acx=-b/(2a)噶复滁祁婿襄肪克作铜佳芋寅肾百靳耪位层宣透括烹饺蠕牟光棱驴蒋嫁殉第8章c语言(算法流程图)第8章c语言(算法流程图)8.5综合应用——求一元二次方程的根

【范例8-7】求一元二次方程:ax2+bx+c=0的根。输入a,b,c的值输出结果a=0?x1=x2=-c/bNYd>=0?x1=x+sqrt(d)/(2a)x2=x-sqrt(d)/(2a)x2=x-sqrt(-d)/(2a)x1=x+sqrt(-d)/(2a)NYd=b2-4acx=-b/(2a)丘奋奴炕堕喀挫涧榷换钞损郸墟巨嫂来免肉友蕉拔济寝赘农驹词盗梦晦孕第8章c语言(算法流程图)第8章c语言(算法流程图)8.7跟我上机1.求1!+3!+5!+……+N!的值。N由键盘输入,且为奇数。输入n的值开始结束i赋值为1t赋初值为1sum赋初值为0i+=2t*=i;sum+=t;i<n?YN输出sum用流程图表示用N-S图表示输入n的值t赋初值为1;i赋值为1sum赋初值为0i<n?t*=I;s+=t;i+=2输出sum唇甚驾馒鹃烛档砰炉为嫡腆触坪钙膏佳劲外搅匈

温馨提示

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

评论

0/150

提交评论