第二章算法 主讲福州大学数学与计算机学院韩晓芸 E-mail:hxy@fjtv.net
1 第二章 算法 主讲 福州大学数学与计算机学院 韩晓芸 E-mail:hxy@fjtv.net
第二章算法 第二章算法 第一节程序的灵魂--算法 第二节算法的概念 第三节简单算法举例 第四节算法的特性 第五节算法的表示方法 第六节结构化程序设计方法
第二章 算法 2 第二章 算法 第一节 程序的灵魂-----算法 第二节 算法的概念 第三节 简单算法举例 第四节 算法的特性 第五节 算法的表示方法 第六节 结构化程序设计方法
第二章算法 第一节程序的灵魂-算法 程序应包括对数据的描述和矿数据处理的述 1.对数据的描述,即数据结构。数据结构是 计算机学科的核心课程之一,在C语言中,系 统提供的数据结构,以数据类型的形式出现 2.对数据处理的描述,即立篁机篁法。算法 是为解决一个问题而采取的方法和步骤,是程 序的灵魂。为此,著名计算机科学家沃愿 ( Nikiklaus wirth)提出一个公式: 数据结构+算法=程序
第二章 算法 3 第一节 程序的灵魂----算法 程序应包括对数据的描述和对数据处理的描述 1.对数据的描述,即数据结构。数据结构是 计算机学科的核心课程之一,在C语言中,系 统提供的数据结构,以数据类型的形式出现 2.对数据处理的描述,即计算机算法。算法 是为解决一个问题而采取的方法和步骤,是程 序的灵魂。为此,著名计算机科学家沃思 (Nikiklaus Wirth)提出一个公式: 数据结构 + 算法 = 程序
第二章算法 第一节程序的灵魂-算法 3.实际上,还应米用结构化程序设边方 法进行设计,并某一种计算机语言表 示。可以表示如下 程序=算法+数据结构+程序设计方法 +语言工具和环境
第二章 算法 4 第一节 程序的灵魂----算法 3.实际上,还应采用结构化程序设计方 法进行设计,并用某一种计算机语言表 示。可以表示如下: 程序=算法+数据结构+程序设计方法 +语言工具和环境
第二章算法 第二节算法的概念 算法是为解决一个问题采取的方法和步骤。 计算机算法分类 数值算法 ·求方程的根 ·求函数的定积分 非数值算法 ·图书检索 ·人事管理
第二章 算法 5 第二节 算法的概念 算法是为解决一个问题采取的方法和步骤。 计算机算法分类 – 数值算法 • 求方程的根 • 求函数的定积分 – 非数值算法 • 图书检索 • 人事管理
第三节简单算法举例 第二章算法 例21求1*2*3*4*5 今设p为被乘数,i为乘数。用自然语言表示算法 如下: S1:使p=1 s2:使2 S3:使p*,乘积仍放在变量p中,可表示为 p→p s4:使值加1,即i1→i s5:如不大于5,返回重新抛行步张S3以及 其后的步骤S4和步骤S5;否则,算法结束。 最后得到的p的值就是5!的值
第二章 算法 6 第三节 简单算法举例 例2.1 求1*2*3*4*5 今设p为被乘数,i为乘数。用自然语言表示算法 如下: S1:使p=1 S2:使i=2 S3:使p*i,乘积仍放在变量p中,可表示为 p*i→p S4:使i的值加1,即 i+1→i S5:如果i不大于5,返回重新执行步骤S3以及 其后的步骤S4和步骤S5;否则,算法结束。 最后得到的p的值就是5!的值
第三节简单算法举例 第二章算法 如果题目改为求1*3*5*7*9*11:算法只须稍做如 下改动即可: S1:使p=1 s2:使i3 s3:使p*,乘积仍放在变量p中,可表示为 p→p s4:使i值加1,即i+2→i s5:如不大于11,返回重新执行步骤S3以 及其后的步骤S4和步骤S5;否则算法结束
第二章 算法 7 第三节 简单算法举例 如果题目改为求1*3*5*7*9*11:算法只须稍做如 下改动即可: S1:使p=1 S2:使i=3 S3:使p*i,乘积仍放在变量p中,可表示为 p*i→p S4:使i的值加1,即 i+2→i S5:如果i不大于11,返回重新执行步骤S3以 及其后的步骤S4和步骤S5;否则算法结束
第三节简单算法举例 第二章算法 例22有50个学生,要求将他们之中成绩在80分 以上者打印出来。用N表示学生学号,N1代表 第一个学生的学号,N代表个学先的学号 用G代表学生成绩,G代表第个学生的成绩。 算法可表示如下 s1:使i=1 S2:如果g≥80,则打印n和g,否则不打印。 s3:i+1-i s4:如50,返回S2,继续执行,否则,算 法结束
第二章 算法 8 第三节 简单算法举例 例2.2 有50个学生,要求将他们之中成绩在80分 以上者打印出来。用N表示学生学号,N1 代表 第一个学生的学号,Ni代表第i个学生的学号。 用G代表学生成绩, Gi代表第i个学生的成绩。 算法可表示如下: S1:使i=1 S2:如果gi≥80,则打印ni和gi,否则不打印。 S3: i+1→i S4:如果i≤50,返回S2,继续执行,否则,算 法结束
第三节简单算法举例 第二章算法 例23判定2000-2500年中的每一年是否闰年, 并将结果输出。 闰年的条件是: ①舶被4整除,但不胎被100整除。如1996年, 2004年; ②能被100磬除,又胎被400警除。如1600年, 2000年。 不符合这两个条件的年份就不是闰年
第二章 算法 9 第三节 简单算法举例 例2.3 判定2000—2500年中的每一年是否闰年, 并将结果输出。 闰年的条件是: ①能被4整除,但不能被100整除。如 1996年, 2004年; ②能被100整除,又能被400整除。如1600年, 2000年。 不符合这两个条件的年份就不是闰年
第三节简单算法举例 第二章算法 算法可表示如下: s1:2000y s2:若y不能被4整除,输出y“不是闰年”。转 S5 S3:若y能被4整除,不能被100整除,则输出 y“是闰年”。然后转s5 s4:若y能被100整除,又能被400整除,则输出 y“是闰年”,否则输出y“不是闰年”。 S5: y+1-y S6:当≤2500时,接S2然续热行,否则,算法 10 结束
第二章 算法 10 第三节 简单算法举例 算法可表示如下: S1:2000→y S2:若y不能被4整除,输出y“不是闰年”。转 S5 S3:若y能被4整除,不能被100整除,则输出 y“是闰年”。然后转S5 S4:若y能被100整除,又能被400整除,则输出 y“是闰年”,否则输出y“不是闰年”。 S5:y+1→y S6:当y≤2500时,转S2继续执行,否则,算法 结束