第二讲 算法湖 南 软 件 职 业 学 院著名计算机科学家沃思 (Niklaus Wirth)提出程序 =数据结构 +算法程序 =算法 +数据结构 +程序设计方法 +语言环境灵魂 加工对象 工具结构化程序设计
(顺序、循环、选择)
算法的概念湖 南 软 件 职 业 学 院做事情都有 —方法,步骤(顺序) ——决定事情的成败
算法分两类:数值算法和非数值算法算法:计算机求解某一问题而采用的具体方法,步骤求数值解成熟事务管理广泛算法的特性有穷性、确定性、有效性有零个或多个输入、有一个或多个输出简单算法举例
例 1:输出一个数的绝对值。
例 2:求 100!
湖 南 软 件 职 业 学 院
用自然语言表示算法(通俗易懂)
用流程图表示算法(传统,N-S流程图)
用伪代码表示算法
用计算机语言表示算法怎样表示一个算法湖 南 软 件 职 业 学 院
程序的三种基本结构结构化程序设计
基本思想:任何程序都可以用三种基本结构表示
结构化程序:由三种基本结构 组成 的程序
优点:结构清晰,易读,提高程序设计质量和效率三种基本结构
顺序结构
A
B
A
B
流程图 N-S图湖 南 软 件 职 业 学 院
P
A B
真 假 P
BA
真 假
选择结构
k
A1 A2 Ai An
k=k2k=k1
k=kn
k=ki
...,..
二分支选择结构
多分支选择结构湖 南 软 件 职 业 学 院
循环结构
当型循环结构
直到型循环结构
P
A
假真当 P为真
A
A
P
真假
A
直到 P为真注,A,B,A1….An 可以是一个简单语句,也可以是一个基本结构湖 南 软 件 职 业 学 院三种基本结构
顺序结构
选择结构(选取结构、分支结构)
循环结构 (重复结构 )
当型循环结构( While型)
直到型循环结构( Until型)
三种结构的特点,
只有一个入口和出口
结构内的每一部分都有机会被执行到。
结构内不存在死循环湖 南 软 件 职 业 学 院开始
1 p
2 i
P*i p
i+1 i
i>5
结束几种算法表示比较
求 5!
S1,1 p
S2,2 i
S3,p*i p
S4,i+1 i
S5:若 i<=5,
返回 s3;
否则,结束用自然语言表示用流程图表示
1 p
2 I
P*i p
i+1 i
直到 i>5
结束用 N-S流程表示
main()
{int i,t;
t=1;i=2;
while(i<=5)
{t=t*i;
i=i+1;}
printf(“%d”,t);
}
用C语言表示湖 南 软 件 职 业 学 院结构化程序设计采取的方法自顶向下 逐步细化模块化设计 结构化编程湖 南 软 件 职 业 学 院结构化程序设计过程
1、确定算法:分析问题(建立数学模型,选择公式)写出算法描述;
2、编写程序:用计算机语言写出实现算法的程序;
3、上机调试,输入(编辑)程序 —编译、连接、执行程序 —输出结果例,张丘建,算经,中提出“百鸡问题”。鸡翁一值钱五,
鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、鸡母、
鸡雏各几何?
(体会编程步骤)
( 1)分析,用传统的解方法湖 南 软 件 职 业 学 院
cocks+hens+chicks=100
5*cocks+3*hens+chicks/3=100
其中,0<=cocks<=19,0<=hens<=33,0<=chicks<=100
思路:依次取 cocks中的值域中的值,然后求其余两数,看是否合乎题意
累试法?枚举法