C语言程序设计 清华大学郑莉安颖莲 第三讲C语言程序的 基本控制结构 参考书《计算机程序设计基础》第三章 《C程序设计》第四章、第五章 P
Page 1 C语言程序设计 清华大学 郑莉 安颖莲 第三讲 C语言程序的 基本控制结构 参考书 《计算机程序设计基础》第三章 《C程序设计》第四章、第五章
C语言程序设计 清华大学郑莉安颖莲 本讲主要内容 结构化程序设计 if语句 switch语句 while语句 do- while语句 for语句 break和 continue语句 P
Page 2 C语言程序设计 清华大学 郑莉 安颖莲 本讲主要内容 • 结构化程序设计 • if 语句 • switch 语句 • while 语句 • do-while 语句 • for 语句 • break 和 continue 语句
C语言程序设计 清华大学郑莉安颖莲 结构化程序设计 计算机程序=算法+数据结构 计算机程序设计=算法+数据结构 程序设计方法学 P
Page 3 C语言程序设计 清华大学 郑莉 安颖莲 结构化程序设计 • 计算机程序=算法+数据结构 • 计算机程序设计=算法+数据结构 +程序设计方法学
C语言程序设计 清华大学郑莉安颖莲 结构化程序设计 结构化算法(一) 算法就是解决问题的方法。 例如:秦九韶在《九章算术》中记载的,求最大公 约数的辗转相除法: 第一步:算法开始。 第二步:输入原始数据:取得所给定的自然数m和n。 第三步:当m≠n时,顺序执行第四步;反之,转到第六步 第四步:若m>n,则m←m-n;否则n←n-m。 第五步:返回第三步。 第六步:输出结果:所求最大公约数为m 第七步:算法结束。 P
Page 4 C语言程序设计 清华大学 郑莉 安颖莲 结构化程序设计 —结构化算法(一) 算法就是解决问题的方法。 例如:秦九韶在《九章算术》中记载的,求最大公 约数的辗转相除法: 第一步:算法开始。 第二步:输入原始数据:取得所给定的自然数 m 和 n。 第三步:当 m≠n 时,顺序执行第四步;反之,转到第六步。 第四步:若 m>n ,则 m←m-n ;否则 n←n-m。 第五步:返回第三步。 第六步:输出结果:所求最大公约数为 m。 第七步:算法结束
C语言程序设计 清华大学郑莉安颖莲 结构化程序设计 结构化算法(二) 算法的特征: 有穷性 如:Sinx=x/1-x3/3!+x5/5!x7/7!+..不是算法。 N!=1×2×3×..×N是算法。 确定性 如:菜谱中说“加少许盐”不严格,不是算法 可执行性 0个或多个输入 1个或多个输出 P
Page 5 C语言程序设计 清华大学 郑莉 安颖莲 算法的特征: • 有穷性 如:Sin x=x/1-x 3/3!+x5/5!-x 7/7!+… 不是算法。 N!=1×2×3×…×N 是算法。 • 确定性 如:菜谱中说“加少许盐”不严格,不是算法。 • 可执行性 • 0个或多个输入 • 1个或多个输出 结构化程序设计 —结构化算法(二)
C语言程序设计 清华大学郑莉安颖莲 结构化程序设计 结构化算法(三 算法类型: 数值算法、非数值算法。 基本结构: 结构化算法必须只能由下列三种基本控制 结构所构成: 顺序结构 分支结构 循环结构 P
Page 6 C语言程序设计 清华大学 郑莉 安颖莲 • 算法类型: –数值算法、非数值算法。 • 基本结构: 结构化算法必须只能由下列三种基本控制 结构所构成: –顺序结构 –分支结构 –循环结构 结构化程序设计 —结构化算法(三 )
C语言程序设计 清华大学郑莉安颖莲 结构化程序设计 结构化算法(三) 结构化算法的本质属性: 有且仅有一个入口 有且仅有一个出口 无死块(即永远无法执行到的块) 无死循环块 Page 7
Page 7 C语言程序设计 清华大学 郑莉 安颖莲 结构化程序设计 —结构化算法(三) 结构化算法的本质属性: • 有且仅有一个入口 • 有且仅有一个出口 • 无死块(即永远无法执行到的块) • 无死循环块
C语言程序设计 清华大学郑莉安颖莲 结构化程序设计 结构化算法(四) 算法描述工具: 流程图 N-S图 °PDL语言 P
Page 8 C语言程序设计 清华大学 郑莉 安颖莲 算法描述工具: • 流程图 • N-S图 • PDL 语言 结构化程序设计 —结构化算法(四)
C语言程序设计 清华大学郑莉安颖莲 结构化程序设计 结构化程序设计技术与方法 模块化结构设计方法 在程序设计中,将一个复杂的算法(或程序)分解成若干 个相对独立、功能单一的模块,利用这些模块即可适当地 组合成所需要的全局算法(或)程序 自顶向下结构设计方法 从总体出发,居高临下,逐层分解和逐步细化。 逐步求精结构设计方法 实质上也是一种自顶向下的设计方法。 首先抛开细节设计出抽象算法,然后把抽象数据和操作逐 步具体化,直到可以由计算机具体实现为止 P
Page 9 C语言程序设计 清华大学 郑莉 安颖莲 结构化程序设计 —结构化程序设计技术与方法 • 模块化结构设计方法 在程序设计中,将一个复杂的算法(或程序)分解成若干 个相对独立、功能单一的模块,利用这些模块即可适当地 组合成所需要的全局算法(或)程序。 • 自顶向下结构设计方法 从总体出发,居高临下,逐层分解和逐步细化。 • 逐步求精结构设计方法 实质上也是一种自顶向下的设计方法。 首先抛开细节设计出抽象算法,然后把抽象数据和操作逐 步具体化,直到可以由计算机具体实现为止
C语言程序设计 if语句 清华大学郑莉安颖莲 三种形式 if(表达式)语句 FF ] if (x>y) printf( %d, X) if(表达式)语句1else语句2 tg if (x>y) printf( %d", x) else printf( %d", y) if(表达式1)语句1 else if(表达式2)语句2 else if(表达式2)语句3 else语句n Page 10
Page 10 C语言程序设计 清华大学 郑莉 安颖莲 if (表达式) 语句 例:if (x>y) printf("%d",x); if (表达式) 语句1 else 语句2 例:if (x>y) printf("%d",x); else printf("%d",y); if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式2) 语句3 … else 语句 n if 语句 ——三种形式