算法文字描述及流程图样例
- 格式:pptx
- 大小:67.59 KB
- 文档页数:3
使⽤流程图表⽰算法⼀、传统流程图
流程图表⽰算法,直观形象,易于理解。
1、常⽤流程图说明:
2、三种基本结构和改进的流程图
顺序结构:
选择结构:
循环结构:
三种基本结构的共同特点:
只有⼀个⼊⼝;
只有⼀个出⼝;
结构内的每⼀部分都有机会被执⾏到;
结构内不存在“死循环”。
3、制作流程图步骤
创建流程图:根据要表达的活动,选择流程图标准符号中的图例。
移动和调整形状⼤⼩:
添加修改⽂本
连接图例
4、⽰例
⽰例1:求5!的算⽤流程图表⽰。
⽰例2:判定闰年的算⽤流程图表⽰
⼆、⽤N-S流程图表⽰算法
1973年美国学者提出了⼀种新型流程图:N-S流程图。
顺序结构:
选择结构:
循环结构:
⽰例1:求5!的算⽤流程图表⽰。
⽰例2:判别素数的算⽤流程图表⽰。
1.输人一个数到变.., 输出它的绝对值。
(要求用单分支和双分支结构分别设计算法)单分支结构算法:
(1)输入任意数并赋值给变量a;
(2)判断a是否小于0, 如果a 小于0 , 取a 的相反数;
(3)输出a。
双分支结构算法:
(1)输人任意数并赋值给变量 a ;
(2)判断a 是否小于0 , 如果a 小于0 则输出a 的相反数, 否则输出a 。
(3)求输入的十个数中的最大值。
2.最值问题:
(1)求输人的两个数中的最大值。
(2)求输人的三个数中的最大值。
3.循环求和(不同的控制循环方法)
1.求输.
2.个数的和。
(知道循环次数, 可以采用循环变量i 来控制循环次数)
计数法2.求输入的若干个学生成绩
的和, 输.-1表示结束。
(不能确定次数, 可以用输
入的数据的值来进行控制)
标志法
3.对输入的数据求和, 当所求
的和超.10.则停止输入并输出
求和结果(设此题中输人的数
皆为正数)。
(没有指出输人数据的具体个
数, 且不能依据对输入数据的
值来控制循环, 控制循环的关
键就在于对循环体中变量s
的判断)
(没有指出输人数据的具体个
数,且不能依据对输入数据的
值来控制循环,控制循环的关
键就在于对循环体中变量s
的判断)
输出如下图形:
**********
**********
**********
**********
**********
如下算法能输出哪种图形?(A)。
算法名称:求最大值算法输入:输入10个数算法输出:最大值算法描述:step1:输入astep2:n=1,m=astep3:当n<=10时:输入an=n+1若m<a成立,则m=a step4:输出mRaptor流程图及结果截图算法名称:求数的平均值算法输入:无算法输出:平均值算法描述:step1:s=0;num=0step2: n=200step3:当n<=300时:若n%3=0 or n%7=0成立S=s+nNum=num+1N=n+1step4:ave=s/numstep5:输出aveRaptor流程图及结果截图算法名称:计算公式前n项之和算法输入:n算法输出:前n项之和算法步骤:step1:输入nstep2.1:将1赋值给x2.2将0赋值给s2.3将s+1/x赋值给s2.4将x+1赋值给x2.5判断x>n?2.5.1为真,转32.5.2为假,转2.3step3:输出sRaptor流程图及结果截图:算法名称:求满足条件的所有的数算法输入:300-500之间的数算法输出:满足条件的所有的数算法步骤:Step1:将300赋值给xStep2.1百位a=floor(x/100)2.2十位b=floor(x/10)2.3个位c=x mod 102.4判断a*b*c=42 or a+b+c=5?2.4.1为真,输出x2.5将x+1赋值给x2.6判断x>500?2.6.1为真,转32.6.2为假,转2.1step3:结束Raptor流程图及结果截图:算法名称:计算大人数和幼儿数算法输入:无算法输出:大人数和幼儿数算法描述:step1:x=1step2: 当x<25时若4x+(100-x)/4=100成立输出大人数x输出幼儿数100-xstep3:x=x+1step4: 当x<25时若4x+(100-x)/4=100成立输出大人数x输出幼儿数100-x Raptor流程图及结果截图。
一、算法的概念
算法(algorithm)这个词出现于12世纪,指的是用阿拉伯数字进行运算的过程。
在数学中,现代意义上的“算法”通常是指可以有计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
例3、求1+2+3+···+100的和。
算法分析:
第一步:对称地取前后两数相加,即1+100,2+99,
3+98,···,50+51,得出两数之和都是101的规律。
第二步:这样的和式共有100/2个,即50个
第三步:总结出计算方法:101*100/2
第四步:计算上式得出结果5050。
方法二:直接累加求1+2+3+ ···+100的和,虽然也能求得结果,但是要做99次加法,这显然是十分烦琐的。
如何去设计算法呢?设计的算法又怎么表示呢?大家看到了,算法的设计分两个内容:一是寻找一种方法;二是描述一下实现这个方法的步骤。
刚才我们已经用语言的形式描述过算法了。
我们还可以用流程图的方法来描术算法。
流程图,又叫做程序框图,是一种较常用的算法表示方法。
流程图用一些几何图形符号表示各种类型的操作,并在框内以简明文字或符号表示具体操作。
实数根的算法(如下图)
用程序框图来表示算法,算法的基本逻辑结构展现得非常清楚,一共有三种不同的基本逻辑结构,分别称为顺序结构、条件结构和循环结构。
顺序结构:完全按照框图的排列顺序执行的结构。
如下图:
例4、用流程图描述求一元二次方程: )0(02
≠=++a c bx ax。
程序算法描述流程图程序算法流程图算法的方法递推法递推是序列计算机中的一种常用算法。
它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定项的值。
其是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。
递归法程序调用自身的编程技巧称为递归(recurion)。
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
递归的能力在于用有限的语句来定义对象的无限集合。
一般来说,递归需要有边界条件、递归前进段和递归返回段。
当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
注意:(1)递归就是在过程或函数里调用自身;(2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
穷举法穷举法,或称为暴力破解法,其基本思路是:对于要解决的问题,列举出它的所有可能的情况,逐个判断有哪些是符合问题所要求的条件,从而得到问题的解。
它也常用于对于密码的破译,即将密码进行逐个推算直到找出真正的密码为止。
例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。
理论上利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。
因此有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。
贪心算法贪心算法是一种对某些求最优解问题的更简单、更迅速的设计技术。
用贪心法设计算法的特点是一步一步地进行,常以当前情况为基础根据某个优化测度作最优选择,而不考虑各种可能的整体情况,它省去了为找最优解要穷尽所有可能而必须耗费的大量时间,它采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心选择就将所求问题简化为一个规模更小的子问题,通过每一步贪心选择,可得到问题的一个最优解,虽然每一步上都要保证能获得局部最优解,但由此产生的全局解有时不一定是最优的,所以贪婪法不要回溯。