第二章 程序的灵魂 --算法
一个程序应包括以下两个方面,
1)对数据的描述。在程序中要指定数据的类型
和数据的组织结构。
2)对操作的描述。即操作步骤,也就是算法。
著名计算机科学家沃思提出:程序 =数据结构 +算法
程序 =算法 +数据结构 +程序设计方法 +语言工具和环境
§ 2.1 算法的概念
计算机算法分为两类,
数值运算算法:目的是求数值解。
非数值运算算法:事务管理(人事、档案)
§ 2.2 简单的算法举例
例 1,1× 2× 3× 4× 5
[算法 ]
S1,p=1
S2,i=2
S3,p× i?p
S4,i+1?i
S5,i<=5 转到 S3,否则输出 p的值,终止算法。
模仿例 1,写出计算
s=1+2+3+…+100的算法
§ 2.3 算法的特征
1、有穷性
2、确定性
3、有零个或多个输入
4、有一个或多个输出
5、有效性
例 1,
1× 2× 3× 4× 5
S1,p=1
S2,i=2
S3,p× i?p
S4,i+1?i
S5,i<=5 转到 S3,
否则输出 p的值,
终止算法。
§ 2.4 怎样表示一个算法
一、用自然语言表示算法
日常用语
二、用流程图表示算法
起止框 输入输出框
判断框 处理框
或 流程线 连接点
注释框
开始
1?t
2?i
t× i?t
i+1?i
i>5
结束
yes
no
输出 p
计算:
1× 2× 3× 4 × 5
画一个计算 1+2+3+…+100 的流程图
三、三种基本结构和改进的流程图
1、传统流程图的弊端
2、三种基本结构
?顺序结构:最简单的一种结构
成立 不成立 成立 不成立
顺序结构 选择结构( 1) 选择结构( 2)
?选择结构
其中 A,B是一个处理过程,P是一个条件
A
B
P
A B
P
A
把这两种结构图自己画出来。
?循环结构
?当型循环
?直到型循环
不成立
成立 成立
不成立
当型循环 直到型循
A可以是一条或多条语句或三个基本结构之一。
P1
A
A
P2
把着两个结构图自己画出来
以上三种结构的共同点,
1、只有一个入口
2、只有一个出口
3、结构内的每一部分都有机会被执行到。
4、结构内不存在, 死循环,
四、用 N-S流程图表示算法
1、顺序结构 2、选择结构
成立 不成立 A
B
P
A B
3、循环结构
当型循环 直到型循环
当 P1成立
直到 P1成立
A可以是一条或多条语句或三个基本结构之一。
例 1,1× 2× 3× 4× 5的 N-S图
直到 i>5
A
A
1?t
2?i
t× i?t
i+1?i
打印 t
模仿例 1画出计算
1+2+3+4+5 的 N-S图来
N-S图的优点,
1、比传统流程图紧凑易画
2、上下顺序就是程序执行的顺序
五,用计算机语言表示算法
设计程序的基本过程, (记下来 )
分析问题 设计算法 描述算法 编写程序
例如,计算 1× 2× 3× 4× 5
1?t
2?i
t× i?t
i+1?i
打印 t
1、分析问题:用累乘的方法
2、设计算法:设两个变量,t,i。 让 t保
存积,i用来表示每个乘积项,用循环结构
3、描述算法:可以用 N-S图
直到 i>5
4、编写程序:写出 C语言程序
main()
{ int i,t;
t=1;
i=2;
while(i<5)
{t=t*i;
i=i+1;
}
printf(“%d”,t);
}
§ 2.5 结构化程序设计方法
一个结构化程序就是用高级语言表示的结构化算法。
1、自顶向下 2、逐步细化
3、模块化设计 4、结构化编码
思考或问答题,
1,C程序中是否一定包含注释,注释的作用是什么?
2、每个程序至少包含一个什么函数?
3、程序中 main函数可以含两个以上吗?
4、一个函数的组成是什么样?
5、函数体包含哪几部分?
6、程序的执行次序是怎样的?
7,语句的标记是什么?
8、程序在机器上的执行过程?
9、什么叫算法?算法有什么特性?
10、表示算法的基本结构是哪三种?
作业,P12 1.5,16 P37 2.5(1,2,3)
实验,( 本实验不写实验报告 )
目的,1、熟悉 C语言的集成环境,了解菜单的使用方法。
2,掌握一个 Turbo C程序上机操作的全过程 。
内容,1,熟悉 File,Edit,Run,Option等菜单中常用
菜单项及对应的快捷键的使用方法 。
2,上机运行 P12 1.5 的程序
一个程序应包括以下两个方面,
1)对数据的描述。在程序中要指定数据的类型
和数据的组织结构。
2)对操作的描述。即操作步骤,也就是算法。
著名计算机科学家沃思提出:程序 =数据结构 +算法
程序 =算法 +数据结构 +程序设计方法 +语言工具和环境
§ 2.1 算法的概念
计算机算法分为两类,
数值运算算法:目的是求数值解。
非数值运算算法:事务管理(人事、档案)
§ 2.2 简单的算法举例
例 1,1× 2× 3× 4× 5
[算法 ]
S1,p=1
S2,i=2
S3,p× i?p
S4,i+1?i
S5,i<=5 转到 S3,否则输出 p的值,终止算法。
模仿例 1,写出计算
s=1+2+3+…+100的算法
§ 2.3 算法的特征
1、有穷性
2、确定性
3、有零个或多个输入
4、有一个或多个输出
5、有效性
例 1,
1× 2× 3× 4× 5
S1,p=1
S2,i=2
S3,p× i?p
S4,i+1?i
S5,i<=5 转到 S3,
否则输出 p的值,
终止算法。
§ 2.4 怎样表示一个算法
一、用自然语言表示算法
日常用语
二、用流程图表示算法
起止框 输入输出框
判断框 处理框
或 流程线 连接点
注释框
开始
1?t
2?i
t× i?t
i+1?i
i>5
结束
yes
no
输出 p
计算:
1× 2× 3× 4 × 5
画一个计算 1+2+3+…+100 的流程图
三、三种基本结构和改进的流程图
1、传统流程图的弊端
2、三种基本结构
?顺序结构:最简单的一种结构
成立 不成立 成立 不成立
顺序结构 选择结构( 1) 选择结构( 2)
?选择结构
其中 A,B是一个处理过程,P是一个条件
A
B
P
A B
P
A
把这两种结构图自己画出来。
?循环结构
?当型循环
?直到型循环
不成立
成立 成立
不成立
当型循环 直到型循
A可以是一条或多条语句或三个基本结构之一。
P1
A
A
P2
把着两个结构图自己画出来
以上三种结构的共同点,
1、只有一个入口
2、只有一个出口
3、结构内的每一部分都有机会被执行到。
4、结构内不存在, 死循环,
四、用 N-S流程图表示算法
1、顺序结构 2、选择结构
成立 不成立 A
B
P
A B
3、循环结构
当型循环 直到型循环
当 P1成立
直到 P1成立
A可以是一条或多条语句或三个基本结构之一。
例 1,1× 2× 3× 4× 5的 N-S图
直到 i>5
A
A
1?t
2?i
t× i?t
i+1?i
打印 t
模仿例 1画出计算
1+2+3+4+5 的 N-S图来
N-S图的优点,
1、比传统流程图紧凑易画
2、上下顺序就是程序执行的顺序
五,用计算机语言表示算法
设计程序的基本过程, (记下来 )
分析问题 设计算法 描述算法 编写程序
例如,计算 1× 2× 3× 4× 5
1?t
2?i
t× i?t
i+1?i
打印 t
1、分析问题:用累乘的方法
2、设计算法:设两个变量,t,i。 让 t保
存积,i用来表示每个乘积项,用循环结构
3、描述算法:可以用 N-S图
直到 i>5
4、编写程序:写出 C语言程序
main()
{ int i,t;
t=1;
i=2;
while(i<5)
{t=t*i;
i=i+1;
}
printf(“%d”,t);
}
§ 2.5 结构化程序设计方法
一个结构化程序就是用高级语言表示的结构化算法。
1、自顶向下 2、逐步细化
3、模块化设计 4、结构化编码
思考或问答题,
1,C程序中是否一定包含注释,注释的作用是什么?
2、每个程序至少包含一个什么函数?
3、程序中 main函数可以含两个以上吗?
4、一个函数的组成是什么样?
5、函数体包含哪几部分?
6、程序的执行次序是怎样的?
7,语句的标记是什么?
8、程序在机器上的执行过程?
9、什么叫算法?算法有什么特性?
10、表示算法的基本结构是哪三种?
作业,P12 1.5,16 P37 2.5(1,2,3)
实验,( 本实验不写实验报告 )
目的,1、熟悉 C语言的集成环境,了解菜单的使用方法。
2,掌握一个 Turbo C程序上机操作的全过程 。
内容,1,熟悉 File,Edit,Run,Option等菜单中常用
菜单项及对应的快捷键的使用方法 。
2,上机运行 P12 1.5 的程序