1、第第2节节程序的灵魂程序的灵魂算法算法n1+2+3+100=?法一:(1+2)+3)+100)=5050 法二:(1+99)+(2+98)+(49+51)+100+50 =50*100+50 =5050算法的概念n def:解决问题的方法或步骤解决问题的方法或步骤 数值算法数值算法-做数值运算的算法做数值运算的算法n 分类:分类:非数值算法非数值算法-做非数值运算的做非数值运算的 算法算法n 程序程序=数据结构数据结构+算法算法算法的概念n算法的特性算法的特性 (1)有穷性:)有穷性:算法包含的操作步骤有限算法包含的操作步骤有限 (2)确定性:)确定性:算法中每一步的操作步骤都是确算法中每一步
2、的操作步骤都是确 定的,不能模棱两可定的,不能模棱两可 (3)有零个或多个输入:)有零个或多个输入:在执行算法时从外在执行算法时从外 界取的必要的信息界取的必要的信息 (4)有一个或多个输出:)有一个或多个输出:即算法的求解即算法的求解 (5)有效性:)有效性:算法中每一个步骤都应当能算法中每一个步骤都应当能 有效执行有效执行算法的概念算法的表示Q:将分别装有醋和酱油的两个杯子里面的内容:将分别装有醋和酱油的两个杯子里面的内容交换。交换。分析:借用第三个杯子分析:借用第三个杯子 (空杯)(空杯)(1)自然语言表示法)自然语言表示法醋酱油123Algorithm:Step1:将装有醋的杯子的内容
3、倒入空杯将装有醋的杯子的内容倒入空杯Step2:将装有酱油的杯子的内容倒入原装醋的杯将装有酱油的杯子的内容倒入原装醋的杯 子里子里Step3:将现装有醋的将现装有醋的杯子杯子的内容倒入原的内容倒入原 装酱油的杯子里装酱油的杯子里 用约定的一用约定的一些图形符号描述些图形符号描述操作步骤,直观操作步骤,直观形象,易于理解。形象,易于理解。以下介绍三以下介绍三种基本结构:顺种基本结构:顺序、分支、循环。序、分支、循环。共同点:只有一共同点:只有一个入口、只有一个入口、只有一个出口、结构内个出口、结构内的每一部分都有的每一部分都有机会被执行到。机会被执行到。注释框注释框输入输出框输入输出框处理框处理
4、框判断框判断框流程线流程线连接点连接点起止框起止框(二)流程图表示法(二)流程图表示法算法的表示模块A模块B模块C顺序结构模块B模块A模块C开始x1,x2Temp=x1X1=x2X2=Tempx1,x2结束Q:键盘输入两个数存储起来,要求交换后实现输出。传统传统流程流程图之图之三种三种基本基本结构结构开始x1,x2Temp=x1X1=x2X2=Tempx1,x2结束Q:键盘输入任意数并输出算术平方根。开始X1X1=0Y1=sqrt(x1)Y1结束NY条件P模块A模块BYNQ:键盘输入任意数并输出算术平方根。开始X1X1=0Y1=sqrt(x1)Y1结束NY条件P模块A模块BYN传统传统流程流程
5、图之图之三种三种基本基本结构结构选择结构模块A条件PNY条件P模块AYN条件P模块AYN模块A条件PNY或Sample 1Sample 2(当循环)(直到循环)传统传统流程流程图之图之三种三种基本基本结构结构循环结构结束开始I=1,Sum=0I99结束算法的表示(三)(三)N-S流程图表示法流程图表示法模块A模块B模块C顺序结构Q:键盘输入两个数存储起来,要求交换后实现输出。模块A模块B模块C输入x1,x2Temp=x1X1=x2X2=Temp输出x1,x2输入x1,x2Temp=x1X1=x2X2=Temp输出x1,x2X1=0Q:键盘输入任意数并输出算术平方根。输入x1不成立成立输出sqr
6、t(x1)条件P不成立成立模块A模块B选择结构直到条件P成立当条件P成立循环结构模块A模块A或实实例例分分析析开始nyearnyear能被4整除Ynyear不能被100整除Ynyear是闰年结束nyear能被400整除NYN键盘输键盘输入某一入某一年份,年份,判定是判定是否是闰否是闰年年Nnyear不是闰年输入年份nyear nyear能被4整除ynnyear不能被100整除ynnyear能被400整除yn不是闰年nyear不是闰年nyear是闰年nyear是闰年nyearN-S流程图键盘输入10个数,找出其中的最大数并输出输入xmax=xI=1输入xmaxxmax=xynI=I+1I10成立输出m实例n问题1.求阶乘10!;nS1:p=1nS2:i=2nS3:pipnS4:i+1 inS5:如果i小于等于10,返回S3;否则执行下一步S6.nS6:打印输出P的值;nS7:结束算法.结束开始I=2,P=1I=10P=P*II=I+1Y输出PN传统流程图I=2P=1I=10成立输出PP=P*II=I+1N-S图