第二章 程序的灵魂 — 算法算法的概念简单算法举例算法的特性怎样表示一个算法结构化程序设计方法
< >
程序数据结构算 法程序设计方法语言工具和环境对数据的描述在程序中指定数据的类型指定数据的组织形式语言程序设计第二章程序的灵魂

算法
C
对操作的描述即操作步骤程序 = 数据结构 +算法 +程序设计方法 +语言工具和环境
§ 2.1 算法的概念算法解决的是做什么?
怎么做?
< >
判定是闰年的条件:
1、能为 4整除,但不能被 100整除的年份
2、能被 100整除,又能被 400整除的年份
3、其余为非闰年语言程序设计第二章程序的灵魂

算法
C
算法表示如下:
设 Y为被检测的年份,判断步骤:
S1,2000→Y
S2,Y不能被 4整除,输出 Y”不是闰年,,转 S6
S3,Y能为 4整除,但不能被 100整除,输出 Y”是闰年,,转 S6
S4,Y能被 100整除,又能被 400整除,输出 Y”是闰年,,
否则输出,不是闰年,,然后转 S6
S5:其余输出 Y”不是闰年,
S6,Y+1 →Y
S7:当 Y≤2500 时,转 S2继续执行,Y>2500,算法终止例 2-3、判定 2000— 2500年中的每一年是否闰年?将结果输出
§ 2.2 简单算法举例判定是闰年的条件:
1、能为 4整除,
但不能被 100整除的年份
2、能被 100整除,
又能被 400整除的年份
3、其余为非闰年
① Y不能被 4整除非闰年
② Y被 4整除但不能被 100整除闰年
③ Y被
100整除又能被 400整除闰年
④ 其他非闰年
< >
语言程序设计第二章程序的灵魂

算法
C
一、有穷性在合理的范围内,执行有限的操作步骤
§ 2.3 算法的特性二、确定性算法中每一步骤都应是确定的,不能有两种可能的含义三、有零个或多个输入执行算法时,可从外界获取信息,也可不需要任何输入四、有一个或多个输出算法的目的为,求解,,没有输出(解)的算法没有意义五、有效性算法的每一个步骤应当是可执行的,并有确定的结果美国国家标准化协会规定了一些常用的流程图符号表示算法优点:通俗易懂;缺点:文字冗长,易出现,歧义性,
< >
语言程序设计第二章程序的灵魂

算法
C
一、用自然语言表示算法人们日常使用的语言:汉语、英语或其他语言
§ 2.4 怎样表示一个算法二、用流程图表示用图框表示算法的各种操作三、改进型流程图表示用三种基本流程单元结构表示算法的各种操作四、用 N-S流程图表示算法
73年产生,全部算法在一个矩形框内表示五、用伪代码表示算法用介于自然语言和计算机语言之间的文字和符号表示六、用计算机语言表示算法
BEGIN(算法开始)
While y<=2500
{ if y被 4整除
if y 不被 100整除
print y;,是闰年,
else
if Y 被 400整除
print y;,是闰年,
else
print Y;,不是闰年,
endif
endif
else
print y;,不是闰年,
endif
y+1→Y
}
END(算法结束 )
A
直到 P为真当 P为真
AP
BA
真 假A
B
< >
语言程序设计第二章程序的灵魂

算法
C
自顶向下、逐步细化、模块化设计、结构化编码
§ 2.5 结构化程序设计方法考虑周全、结构清晰、层次分明、易写易读、易实现工作报告顶层设计工厂概况 前一阶段工作情况 当前遇到的问题 今后的打算第二层设计第一点第二点第三点第三层设计