第五章选择结构程序设计 本章主要内容: ●程序设计方法简述 课外阅读材料 ●算法与流程图 程式设计与流程图 (请上网下载) 算法的两种表示法 两种流程图 三种基本结构 选择结构程序设计 f…else语句 switch语句
第五章 选择结构程序设计 本章主要内容: ⚫ 程序设计方法简述 ⚫ 算法与流程图 算法的两种表示法 两种流程图 三种基本结构 ⚫ 选择结构程序设计 if …else 语句 switch语句 课外阅读材料 程式设计与流程图 (请上网下载)
程序设计方法简述 1、计算机处理问题的过程 ●【例一】让某学生解方程ax2+bx+c=0 求解过程 ①分析问题 开始 这是一个一元二次方程(代数问题 ②确定处理方案用求根公式 输入a、b、c值 ③确定解题步骤 确定a、b、c的值 D= b-4ac 求出b2-4ac的值 如果b2-4ac>0(双实根) D>0? D=0? Y 如果b2-4ac=0(单实根) Ⅹ1 1=X2… X1=…… X1=X2=… X2="." X2= 如果b2-4ac<0(双复根) X1 ∠输出结果 /输出结果 ∠输出结果 ④根据上述步骤计算 ⑤写出答案, 结束
一、程序设计方法简述 1、计算机处理问题的过程 ⚫ 【例一】让某学生解方程 ax2+bx+c=0 求解过程: ①分析问题 这是一个一元二次方程(代数问题,须中学代数知识) ②确定处理方案 用求根公式 ③确定解题步骤 确定a、b、c的值 求出b 2 -4ac的值 如果 b 2 -4ac>0(双实根) X1=…… X2=…… 如果 b 2 -4ac=0(单实根) X1=X2=…… 如果 b 2 -4ac<0(双复根) X1=…… X2=…… ④根据上述步骤计算 ⑤写出答案
、程序设计方法简述 2、程序测试 ●目的 发现程序中的错误(Bug) ●程序错误 ◆语法错误(编译系统检查) ◆逻辑错误(编程人员检查)
一、程序设计方法简述 2、程序测试 ⚫ 目的 发现程序中的错误(Bug) ⚫ 程序错误 ◆语法错误(编译系统检查) ◆逻辑错误(编程人员检查)
算法与流程图 1、算法( algorithm)P14 算法:解题思路(解题步骤等) 算法有表示方式 伪码( pseudocode 用人类语言的形式(通常是英语)表示算法。 伪码不在计算机上执行,仅供程序员缩写程序之前构思时用(*注意伪 码程序只包含执行语句,没有声明语句,后者仅仅是给编译器提供的 流程图( flow chart)用图示方式表示算法 编程依据(便于检查)编程时用 使用流程图的优点:不易出错/便于编程/便于别人阅读和检查程序。 ●通常编程的技术路线是 用伪码和自顶向下、逐步求精的方法来制定算法,然后再编写相应的C 语言程序 复杂程序处理部分宜用流程图表示程序处理的过程
二、算法与流程图 1、算法(algorithm) P14 ⚫ 算法:解题思路(解题步骤等) 算法有表示方式: ➢ 伪码(pseudocode) 用人类语言的形式(通常是英语)表示算法。 伪码不在计算机上执行,仅供程序员缩写程序之前构思时用(*注意伪 码程序只包含执行语句,没有声明语句,后者仅仅是给编译器提供的 信息) ➢ 流程图(flow chart) 用图示方式表示算法 编程依据(便于检查) 编程时用 使用流程图的优点:不易出错/便于编程/便于别人阅读和检查程序。 ⚫ 通常编程的技术路线是: 用伪码和自顶向下、逐步求精的方法来制定算法,然后再编写相应的C 语言程序。 复杂程序处理部分宜用流程图表示程序处理的过程
二、算法与流程图 1、算法(al! gorithm) 示例:根据学生成绩输出评定结果 伪码语句示例之 成绩≥60 if student's grades greater than or equal to 60 display Passed 显示“及格” 显示“不及格 else display Failed 流程图示例 C语言源程序段示例 伪码语句示例之二 if ( grade>=60) printf((“ Passed!y); 如果学生成绩大于或等于60 显示”及格” else 否则 printf( failed) 显示”不及格
二、算法与流程图 1、算法(algorithm) 示例:根据学生成绩输出评定结果。 伪码语句示例之一 if student’s grades greater than or equal to 60 display ” Passed” else display ”Failed” 伪码语句示例之二 如果学生成绩大于或等于60 显示”及格” 否则 显示 ”不及格” C语言源程序段示例 if (grade>=60) printf(“Passed!”); else printf(“Failed”);
二、算法与流程图 2、传统流程图P19 开始 特 ∠输入3D.c值 直观形象; D= b-4ac 使用流线。 缺点: 占面积大,使用流线L 任意转移,易出现 输出结果 输出结果 “乱麻”现象,造成 结束 编程与阅读程序困难
二、算法与流程图 2、传统流程图 P19 ⚫ 特点: 直观形象; 使用流线。 ⚫ 缺点: 占面积大,使用流线 任意转移,易出现 “乱麻”现象,造成 编程与阅读程序困难
二、算法与流程图 3、N-S结构化流程图 P26-27 77年美学者1. Nass i和B. Sche i derman提出。 特点 ①取消流线 ②不允许流程任意转移,只能从上而下顺序执行 ③规定三种基本结构的流程图单元,由这些基本结构象搭积木似的组成各种算 法(结构化设计)。 优点 算法清晰,流程不会无规律乱转移。 输入a、b、c值 求D=b2-4ac D>0? 丫 x1=b+D D=0? 1= 2a X2=-+-D 2a 2a 2a 输出结果 输出结果输出结果
二、算法与流程图 3、N-S结构化流程图 P26-27 77年美学者I.Nassi和B.Scheiderman提出。 ⚫ 特点 ①取消流线 ②不允许流程任意转移,只能从上而下顺序执行 ③规定三种基本结构的流程图单元,由这些基本结构象搭积木似的组成各种算 法(结构化设计)。 ⚫ 优点 算法清晰,流程不会无规律乱转移
算法与流程图 4、三种基本结构P2326 ●通常情况下,程序中的语句是以所编写的顺序一句接一句 地执行,这种执行方法称为“顺序执行”。许多C语句能够 让程序员指定不按编写顺序执行下一条执行语句,这种执 行方法称为“控制转移” ●Bohm和 Jacop in的研究证实,所有的程序都能够只用三种 控制结构编写,即 ◆顺序结构 ◆选择结构( selection structure) ◆循环结构( repetition structure) 自动以语句编写的顺序一句一句地执行C语勿西则计算机 顺序结构是C语言的基本结构,除非指示转移 ◎任何C语言程序都是由七种控制结构(顺序结构、三种选择 结构和三种循环结构)构成的
二、算法与流程图 4、三种基本结构 P23-26 ⚫ 通常情况下,程序中的语句是以所编写的顺序一句接一句 地执行,这种执行方法称为“顺序执行”。许多C语句能够 让程序员指定不按编写顺序执行下一条执行语句,这种执 行方法称为“控制转移” 。 ⚫ Bohm和Jacopini的研究证实,所有的程序都能够只用三种 控制结构编写,即 ◆顺序结构 ◆选择结构(selection structure) ◆循环结构(repetition structure) 顺序结构是C语言的基本结构,除非指示转移,否则计算机 自动以语句编写的顺序一句一句地执行C语句。 ⚫ 任何C语言程序都是由七种控制结构(顺序结构、三种选择 结构和三种循环结构)构成的
算法与流程图 4、三种基本结构P2326 顺序结构 A块、B块顺序执行(每块代表一个或一组操作) A B B 传统流程图 -S程图 顺序结构
二、算法与流程图 4、三种基本结构 P23-26 ⚫ 顺序结构 A块、B块顺序执行(每块代表一个或一组操作)
算法与流程图 4、三种基本结构P2326 ●选择结构 成立 不成立 条件p成立时执行a块(否 执行b块 A ◆if选择结构条件为真时 执行某个指定的操作,条 件为假时跳过该操作(单 路选择) 图一选择结构(单路选择) if…else选择结构条件 为真时执行某个指定的操 作,为假时执行另一个指 成立 不成立 定的操作(双路选择) ◆ switch选择结构根据表 B A 达式的值执行众多不同操 作中的某个指定的操作 多路选择) 图二ⅱf…else选择结构(双路选择)
二、算法与流程图 4、三种基本结构 P23-26 ⚫ 选择结构 条件p成立时执行a块(否 则执行b块) ◆if 选择结构 条件为真时 执行某个指定的操作,条 件为假时跳过该操作(单 路选择) ◆if…else选择结构 条件 为真时执行某个指定的操 作,为假时执行另一个指 定的操作(双路选择) ◆switch选择结构 根据表 达式的值执行众多不同操 作中的某个指定的操作 (多路选择)