计 算 第三章程序控制结构 机 序·学习目标 设 计 了解结构化程序设计的一般概念 基 熟悉顺序结构、分支结构与循环结构等三种程序 础 流程控制结构 掌握C语言实现分支结构的语句与 switch语 句,能熟练应用语句与 switch语句编写程序 掌握C语言实现循环结构的whie语句、for语 句与do- while语句,能熟练应用这三种循环控制 结构编写程序 了解三种循环结构的关系,掌握在循环结构中控 制程序流程转移的方法 清华大学计算中心 http://learn.tsinghua.edu.cn 2
清华大学计算中心 http://learn.tsinghua.edu.cn 2 计 算 机 程 序 设 计 基 础 第三章 程序控制结构 • 学习目标 – 了解结构化程序设计的一般概念 – 熟悉顺序结构、分支结构与循环结构等三种程序 流程控制结构 – 掌握 C 语言实现分支结构的 if 语句与 switch 语 句,能熟练应用 if 语句与 switch 语句编写程序 – 掌握 C 语言实现循环结构的 while 语句、for 语 句与 do-while 语句,能熟练应用这三种循环控制 结构编写程序 – 了解三种循环结构的关系,掌握在循环结构中控 制程序流程转移的方法
3.1C语言结构化程序设计基础 机 程 序 程序的控制结构(黑箱) 设 单入口单出口的控制结构易于理解 计 基 三种基本控制结构:顺序、分支、循环 础 控制结构可以嵌套,以构成更复杂的控制结构 程序的结构化 三种基本控制结构可以构造任何复杂的结构化算法 结构化程序设计原则:自顶向下,逐步求精 结构化程序设计过程:首先对任务进行功能分解,然后 使用结构化程序设计思想逐一解决各个子问题,最后构 造原始问题的解 好处:逻辑性强,可读性好,维护方便 清华大学计算中心 http://learn.tsinghua.edu.cn 3
清华大学计算中心 http://learn.tsinghua.edu.cn 3 计 算 机 程 序 设 计 基 础 3.1 C 语言结构化程序设计基础 • 程序的控制结构(黑箱) – 单入口单出口的控制结构易于理解 – 三种基本控制结构:顺序、分支、循环 – 控制结构可以嵌套,以构成更复杂的控制结构 • 程序的结构化 – 三种基本控制结构可以构造任何复杂的结构化算法 – 结构化程序设计原则:自顶向下,逐步求精 – 结构化程序设计过程:首先对任务进行功能分解,然后 使用结构化程序设计思想逐一解决各个子问题,最后构 造原始问题的解 – 好处:逻辑性强,可读性好,维护方便
3.2顺序结构 计算机程序设计基础 顺序结构的含义 由一组顺序执行的处理块组成,每个处理块可能包含 条或一组语句,完成一项任务 顺序结构是最基本的算法结构 入口 出口 A B 顺序结构 ·语句与复合语句(语句块) 三种语句结构:单语句(表达式)、空语句(;)、复合 语句({语句序列}) 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 4 计 算 机 程 序 设 计 基 础 3.2 顺序结构 • 顺序结构的含义 – 由一组顺序执行的处理块组成,每个处理块可能包含一 条或一组语句,完成一项任务 – 顺序结构是最基本的算法结构 A B 入口 出口 顺序结构 • 语句与复合语句(语句块) – 三种语句结构:单语句(表达式;)、空语句(;)、复合 语句({语句序列})
计 算 顺序结构程序示例 机 程 序·分别输入两个复数的实部与虚部,计算两个复数的 设 和、差、积、商并输出结果 计 基 #include <stdio. h 础 nt main0 实际需要输入4个实数 float a, b, c, d, real, imaginary printf("Inputreals and imaginaries of two complexesIn); scanf(%of, %of, %of, %op ,&a, &b, &c, &); printf("Sum: %f+%fin",a+c,b+d); printf( Difference: %f+ %ofin"a-c, b-d) real=a*c-b*d; imaginary =ad+b*ci printf("Product: %of+%ofin"real, imaginary); rel=(a“c+b“d)/(cc+d“; imaginary=(bc-a“d)/(cec+d printf("Quotient: %f+%fin",real, imaginary); return O: 清华大学计算中心 http://learn.tsinghua.edu.cn 5
清华大学计算中心 http://learn.tsinghua.edu.cn 5 计 算 机 程 序 设 计 基 础 顺序结构程序示例 • 分别输入两个复数的实部与虚部,计算两个复数的 和、差、积、商并输出结果 #include <stdio.h> int main() { float a, b, c, d, real, imaginary; printf(“Input reals and imaginaries of two complexes\n”); scanf(“%f,%f,%f,%f”, &a, &b, &c, &d); printf(“Sum: %f + %fi\n”, a + c, b + d); printf(“Difference: %f + %fi\n”, a – c, b – d); real = a * c – b * d; imaginary = a * d + b * c; printf(“Product: %f + %fi\n”, real, imaginary); real = (a*c + b*d) / (c*c + d*d); imaginary = (b*c – a*d) / (c*c + d*d); printf(“Quotient: %f + %fi\n”, real, imaginary); return 0; } 实际需要输入4个实数
计 算 3.3分支结构 机 序·分支结构(选择结构)的含义 设 根据某一条件的判断结果,确定程序的流程,即选择哪 计 个程序分支中的处理块去执 基 础 最基本的分支结构是二路分支结构 rlli A 真 入口 出口 条件 假 B 分支结构 以条件判断为起点,如果判断结果为真,则执行A处理块 的操作,否则执行B处理块的操作 清华大学计算中心 http://learn.tsinghua.edu.cn 6
清华大学计算中心 http://learn.tsinghua.edu.cn 6 计 算 机 程 序 设 计 基 础 3.3 分支结构 • 分支结构(选择结构)的含义 – 根据某一条件的判断结果,确定程序的流程,即选择哪 一个程序分支中的处理块去执行 – 最基本的分支结构是二路分支结构 – 以条件判断为起点,如果判断结果为真,则执行A处理块 的操作,否则执行B处理块的操作 入口 分支结构 真 假 出口 A B 条件