1、Page 1,第1章 程序设计概述,教学目标:熟悉程序与程序设计语言的概念,熟悉算法设计和描述的基本方法,能对简单的问题设计算法,并用流程图表达出来。 重点:算法的表示方法。 难点:用流程图表示算法。,Page 2,第1章 程序设计概述,1.1 程序和程序设计语言(自学) 1.2 算法概述 1.3 结构化程序设计方法,Page 3,1.1 程序和程序设计语言,程序与程序设计的概念 程序设计语言第一代:机器语言第二代:汇编语言第三代:高级语言第四代:面向问题语言,Page 4,1.2 算法概述,一个程序应包括: 对数据的描述:程序中要指定数据的类型和数据的组织形式,即数据结构。 对操作的描述:操
2、作步骤,即算法。程序=算法+数据结构 算法的概念:为解决一个问题而采取的方法和步骤,就称为算法。,Page 5,简单算法举例,例:求1+2+3+4+5。 最原始方法:步骤1:先求1+2,得到结果3;步骤2:将步骤1得到的结果加3,得到结果6;步骤3:将6再加4,得10;步骤4:将10再加5,得15;算法结束。,Page 6,简单算法举例,另一种方法:步骤一:累加和的初始值0sum ;步骤二:第一个要累加的数1i ;步骤三:若i不大于5,继续执行;否则输出sum的结果,算法结束。步骤四:累加操作,即sum+isum ;步骤五:取下一个要累加的数,即i+1i ;步骤六:返回步骤三。,Page 7,
3、算法的表示方法,自然语言 流程图(或 N-S流程图) 伪代码,Page 8,流程图,流程图:用图形描述问题的处理过程的工具即用一些约定的几何图形来描述算法。 传统流程图的符号及意义起止框 工作的开始或结束 输入输出框 输入或输出判断框 逻辑判断或检查矩形框 各种处理功能流程线 流程的路线,Page 9,流程图,求1+2+3100之和的算法流程图,Page 10,N-S流程图,传统流程图的弊端:流程线的不当使用。 N-S流程图完全去掉了流程线,全部算法写在一个矩形框内,在该框内还可以包含其它的从属于它的框。,Page 11,伪代码,求1+2+3100之和的伪代码表示 begin0sum,1iwh
4、ile i=100sum+isum,i+1iprint sum end,Page 12,计算机语言表示,求1+2+3100之和的C程序 #include main() int sum,i;sum=0;i=1;while (i=100)sum=sum+i;i=i+1;printf(“sum=%dn“,sum); ,Page 13,1.3 结构化程序设计方法,结构化程序设计的基本思想 自顶向下 逐步求精 分而治之,子模块在C语言中通常用函数实现,Page 14,结构化程序设计方法,三种基本结构 顺序结构 选择结构 循环结构 当型循环 直到型循环,Page 15,流程图,顺序结构,Page 16,流
5、程图,选择结构(或称分支结构),Page 17,流程图,循环结构1)当型循环 当条件成立时,就反复执行循环体,直到条件不成立时结束。,注:循环体可能一次也不执行。,Page 18,流程图,2)直到型循环 反复执行循环体,直到条件成立时结束。,Page 19,流程图,三种基本结构的特点 1)只有一个入口 2)只有一个出口 3)结构的每一部分都有机会被执行到 4)结构内不存在“死循环”,Page 20,N-S流程图,顺序结构,选择结构,Page 21,N-S流程图,循环结构当型循环 直到型循环,Page 22,结构化程序设计主要步骤,问题分析 建立数学模型 算法设计 程序编码 测试 建立程序文档,