1、C C语言程序设计语言程序设计姚望舒姚望舒计算机科学与技术学院计算机科学与技术学院苏州大学苏州大学关键知识点关键知识点u算法算法u算法的描述方法算法的描述方法l传统流程图传统流程图lN-S流程图流程图2022-6-232苏州大学计算机科学与技术学院算法算法一个程序主要包括以下两方面的信息:一个程序主要包括以下两方面的信息:u对数据的描述对数据的描述。在程序中要指定用到。在程序中要指定用到哪哪些数据些数据以及这些数据的类型和数据的组织形式以及这些数据的类型和数据的组织形式l就是数据结构就是数据结构(data structure)u对操作的描述对操作的描述。即要求计算机进行操作的步骤。即要求计算机
2、进行操作的步骤l也就是也就是算法算法(algorithm)2022-6-23苏州大学计算机科学与技术学院3算法算法计算机算法可分为两大类别:计算机算法可分为两大类别:u数值运算算法数值运算算法u非数值运算算法非数值运算算法数值运算数值运算的目的是求数值解的目的是求数值解非数值运算非数值运算包括的面十分广泛,最常见的包括的面十分广泛,最常见的是用于事务管理领域是用于事务管理领域2022-6-23苏州大学计算机科学与技术学院6算法算法一个有效算法应该具有以下一个有效算法应该具有以下特点特点:u有穷性有穷性:u确定性确定性:u有零个或多个输入有零个或多个输入:u有一个或多个输出有一个或多个输出:u有
3、效性有效性:2022-6-23苏州大学计算机科学与技术学院7算法的描述方法算法的描述方法算法的描述算法的描述方法有:方法有:u自然语言自然语言u传统流程图传统流程图u结构化流程图结构化流程图u伪代码伪代码u2022-6-23苏州大学计算机科学与技术学院8算法描述方法算法描述方法问题:问题:u判定判定2012年是否年是否为为闰年,并将结果输出闰年,并将结果输出闰年的条件:闰年的条件:u能被能被4整除,但不能被整除,但不能被100整除的年份都是闰年整除的年份都是闰年,如,如2008、2012、2048年年u能被能被400整除的年份是闰年,如整除的年份是闰年,如2000年年u不符合这两个条件的年份不
4、是闰年不符合这两个条件的年份不是闰年2022-6-23苏州大学计算机科学与技术学院9算法的自然语言描述算法的自然语言描述算法算法的自然语言描述的自然语言描述如下:如下:uS1:2000yearuS2:若:若year不能被不能被4整除,则输出整除,则输出year 的值和的值和“不不是闰年是闰年”。然后转到。然后转到S6uS3:若:若year能被能被4整除,不能被整除,不能被100整除,则输出整除,则输出year的值和的值和“是闰年是闰年”。然后转到。然后转到S6uS4:若:若year能被能被400整除,整除,则则输出输出year的值和的值和“是是闰年闰年” ,然后转到,然后转到S6uS5: 其他
5、情况其他情况输出输出year的值和的值和“不是闰年不是闰年”uS6: 停止停止2022-6-23苏州大学计算机科学与技术学院10传统流程图传统流程图流程图流程图是用一些图框来表示各种操作是用一些图框来表示各种操作用图形表示算法,直观形象,易于理解用图形表示算法,直观形象,易于理解起止框起止框输入输出框输入输出框处理框处理框判断框判断框流程线流程线连接点连接点注释框注释框2022-6-2311苏州大学计算机科学与技术学院传统流程图传统流程图判断框的作用判断框的作用2022-6-23苏州大学计算机科学与技术学院12x0YN一个入口一个入口两个出口两个出口传统流程图传统流程图连接点的作用连接点的作用
6、2022-6-23苏州大学计算机科学与技术学院13流程图流程图是用一些图框来表示各种操作是用一些图框来表示各种操作用图形表示算法,直观形象,易于理解用图形表示算法,直观形象,易于理解起止框起止框输入输出框输入输出框处理框处理框判断框判断框位置不够位置不够防止交叉防止交叉YN开始开始2000yearyear不能不能被被4整除整除year是闰年是闰年year不能不能被被100整除整除结束结束year不能不能被被400整除整除year不是闰年不是闰年year是闰年是闰年year不是闰年不是闰年YNYN传统流程图传统流程图2022-6-2314苏州大学计算机科学与技术学院N-S流程图流程图N-S流程图
7、用以下的流程图符号流程图用以下的流程图符号:ABABYNpA当当p1成立成立A直到直到p2成立成立顺序结构顺序结构选择结构选择结构循环结构循环结构(当型)(当型)循环结构循环结构(直到型)(直到型)2022-6-2315苏州大学计算机科学与技术学院例例2.13 将例将例2.3判定闰年的算法用判定闰年的算法用N-S图表示图表示2000year否否是是year%4为为0否否是是输出输出year非闰年非闰年year%100不为不为0year%400为为0是是否否输出输出year非闰年非闰年输出输出year闰年闰年输出输出year闰年闰年N-S流程图流程图2022-6-2316苏州大学计算机科学与技术学院第第2章章 小结小结关键知识点关键知识点u算法算法: 了解和积累自己的算法知识了解和积累自己的算法知识u算法的描述形式算法的描述形式l传统流程图传统流程图: 掌握掌握lN-S流程图流程图: 掌握掌握2022-6-2317苏州大学计算机科学与技术学院