例23判定200000年中的每一年是否闰年 冷闰年的条件是(1)能被4整除,但不能被100整除的年份都 是闰年(2)是闰年必能被100整除,又能被400整除的年份 是闰年。 冷设y为被检测的年份。可取以下步骤: 冷S1:y=2000/*输入一个数给Yy* 令S2:若y不能被4整除,则输出y不是闰年”。然后转到S6 S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后 转到S6 S4:若y能被100整除,又能被400整除,输出y“是闰年”;否则 输出“不是闰年”。然后转到S6 冷S5:输出y“不是闰年” 冷S6:y=y十1 冷S7:当y<=2500时,转S2继续执行,如y>2500,算法停止 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 例2.3 判定2000-2500年中的每一年是否闰年 ❖ 闰年的条件是(1)能被4整除,但不能被100整除的年份都 是闰年 (2)是闰年必能被 100整除,又能被400整除的年份 是闰年。 ❖ 设y为被检测的年份。可采取以下步骤: ❖ S1: y=2000 /*输入一个数给Y y */ ❖ S2:若y不能被4整除,则输出y“不是闰年”。然后转到S6 ❖ S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后 转到S6 ❖ S4:若y能被100整除,又能被400整除,输出y“是闰年”;否则 输出“不是闰年”。然后转到S6 ❖ S5:输出y“不是闰年” ❖ S6:y=y十l ❖ S7:当 y<= 2500时,转 S2继续执行,如 y >2500,算法停止
闰年的条件 ①y不能被 闰年的判 4整除 非闰年 y被100 ②y被4整除, 整除,又能 但不能被100 被400整除 整除 定 年 闰年 ④其他 非闰年 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 ❖ 闰 年 的 判 定 闰年的条件
例2.4 例2.4求1-1+1-1+… 2 4 99100° 算法可以表示如下: Sl: sign=1 中sum表示累加和 S2: sum=1 S3: deno=2 中deno是英文中分母 ( denominator)的缩写 S4:sign=(-1)×sign S5: term=sign x(l/deno) sgn代表数值的符号 S6: sum=sum+term 中term代表某一项。 S7: deno=deno+1 S8:若deno≤100返回S4;否则算法结束。 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 sum 表示累加和 deno 是英文中分母 (denominator)的缩写 sign 代表数值的符号 term 代表某一项。 例2.4
2.3算法的特性 令有穷性 一个算法应包含有限的操作步骤,而不是无限的 令确定性 算法中的每一个步骤都应当是确定的,而不应当是含糊的、 模棱两可的。也就是说,算法的含义应当是唯一的,而不应 当产生“歧义性”。 所谓“歧义性”是指可以被理解为两种(或多种)的可能含 义 有零个或多个输入 所谓输入是指在执行算法时需要从外界取得必要的信息 有一个或多个输出 算法的目的是为了求解,“解”就是输出。如5.有效性 令算法中的每一个步骤都应当能有效地执行,并得到确定的结 果 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 2.3算法的特性 ❖ 有穷性 ❖ 一个算法应包含有限的操作步骤,而不是无限的。 ❖ 确定性 ❖ 算法中的每一个步骤都应当是确定的,而不应当是含糊的、 模棱两可的。也就是说,算法的含义应当是唯一的,而不应 当产生“歧义性”。 ❖ 所谓“歧义性”是指可以被理解为两种(或多种)的可能含 义。 ❖ 有零个或多个输入 ❖ 所谓输入是指在执行算法时需要从外界取得必要的信息。 ❖ 有一个或多个输出 ❖ 算法的目的是为了求解,“解”就是输出。如5.有效性 ❖ 算法中的每一个步骤都应当能有效地执行,并得到确定的结 果
2.4怎样表示一个算法 令常用的有自然语言、传统流程图、结构化流程 图、伪代码、PAD图等。 24.1用自然语言表示算法 ◆自然语言就是人们日常使用的语言,可以是汉语、 英语或其他语言。用自然语言表示通俗易懂 令文字冗长,容易出现“歧乂性”。自然语言表示的 含义往往不太严格,要根据上下文才能判断其正确 义 用自然语言描述包含分支和循环的算法,不很方便 因此,除了很简单的问题以外,一般不用自然 描述算法 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 2.4怎样表示一个算法 ❖ 常用的有自然语言、传统流程图、结构化流程 图、伪代码、PAD图等。 ❖ 2.4.1 用自然语言表示算法 ❖ 自然语言就是人们日常使用的语言,可以是汉语、 英语或其他语言。用自然语言表示通俗易懂, ❖ 文字冗长,容易出现“歧义性”。自然语言表示的 含义往往不太严格,要根据上下文才能判断其正确 含义。 ❖ 用自然语言描述包含分支和循环的算法,不很方便。 因此,除了很简单的问题以外,一般不用自然语言 描述算法