《C语言第三章》PPT课件.ppt

上传人:san****019 文档编号:7343855 上传时间:2020-03-20 格式:PPT 页数:83 大小:2.72MB
返回 下载 相关 举报
《C语言第三章》PPT课件.ppt_第1页
第1页 / 共83页
《C语言第三章》PPT课件.ppt_第2页
第2页 / 共83页
《C语言第三章》PPT课件.ppt_第3页
第3页 / 共83页
点击查看更多>>
资源描述
第三章算法基础与程序控制结构 信息学院自动化仪表研究所 本章主要内容 程序设计方法简述算法与流程图算法的两种表示法两种流程图三种基本结构选择结构程序设计if else语句switch语句循环结构程序设计四种循环语句常用算法枚举法 穷举法 归纳法 递推法 一 程序设计方法简述1 计算机处理问题的过程 例一 让某学生解方程ax2 bx c 0求解过程 分析问题这是一个一元二次方程 代数问题 须中学代数知识 确定处理方案用求根公式 确定解题步骤确定a b c的值求出b2 4ac的值如果b2 4ac 0 双实根 X1 X2 如果b2 4ac 0 单实根 X1 X2 如果b2 4ac 0 双复根 X1 X2 根据上述步骤计算 写出答案 整理 分析结果 一 程序设计方法简述1 计算机处理问题的过程 NikiklausWirth提出 完整的程序设计应该是 程序 算法 数据结构 程序设计方法 语言工具和环境 灵魂 加工对象 工具 2 编程要诀 自顶向下 逐步求精 先大纲 后文章 用这种方法逐步分解 直到作者认为可以直接将各小段表达为文字语句为止 这种方法就叫做 自顶向下 逐步细化 如同写文章 分几部分 每部分几个问题 每个问题几点 优点 不易顾此失彼 易于检查 减少后期修改工作量对于面向过程的程序设计语言 程序 数据结构 算法对比 文章 材料 构思 2 编程要诀 自顶向下 逐步求精 先大纲 后文章 自顶向下 逐步细化方法的优点 考虑周全 结构清晰 层次分明 作者容易写 读者容易看 如果发现某一部分中有一段内容不妥 需要修改 只需找出该部分修改有关段落即可 与其它部分无关 我们提倡用这种方法设计程序 这就是用工程的方法设计程序 一 程序设计方法简述3 程序测试 目的发现程序中的错误 Bug 程序错误 语法错误 编译系统检查 逻辑错误 编程人员检查 方法与技术测试是以程序通过了编译 没有语法和连接错误为前提 在此基础上运行一组数据 来检测程序的逻辑错误 这一组测试数据应是以 任何程序都是有错误的 为前提精心设计出来的 它不仅应含有被测程序各种情况下的代表性输入数据 还应包括程序执行这些数据后预期的结果 其他著名计算机软件科学家E W Dijkstra曾断言 程序测试只能证明错误的存在 而不能证明错误的不存在 可以证明 除了很小的程序外 无论使用任何方法 要想做到彻底的测试 即发现程序中的所有错误 是不现实的 常见所谓 版 商业软件 就是软件正式发行前的测试版本 二 算法与流程图1 算法 algorithm P14 算法 解题思路 解题步骤等 算法表示方式 伪码 pseudocode 用人类语言的形式 通常是英语 表示算法 伪码不在计算机上执行 仅供程序员缩写程序之前构思时用 注意伪码程序只包含执行语句 没有声明语句 后者仅仅是给编译器提供的信息 流程图 flowchart 用图示方式表示算法编程依据 便于检查 编程时用使用流程图的优点 不易出错 便于编程 便于别人阅读和检查程序 通常编程的技术路线是 用伪码和自顶向下 逐步求精的方法来制定算法 然后再编写相应的C语言程序 复杂程序处理部分宜用流程图表示程序处理的过程 二 算法与流程图1 算法 algorithm 示例 根据学生成绩输出评定结果 伪码语句示例之一ifstudent sgradesgreaterthanorequalto60display Passed elsedisplay Failed 伪码语句示例之二如果学生成绩大于或等于60显示 及格 否则显示 不及格 C语言源程序段示例if grade 60 printf Passed elseprintf Failed 二 算法与流程图2 传统流程图P19 特点 直观形象 使用流线 缺点 占面积大 使用流线任意转移 易出现 乱麻 现象 造成编程与阅读程序困难 二 算法与流程图3 N S结构化流程图P26 27 77年美学者I Nassi和B Scheiderman提出 特点 取消流线 不允许流程任意转移 只能从上而下顺序执行 规定三种基本结构的流程图单元 由这些基本结构象搭积木似的组成各种算法 结构化设计 优点算法清晰 流程不会无规律乱转移 二 算法与流程图4 三种基本结构P23 26 通常情况下 程序中的语句是以所编写的顺序一句接一句地执行 这种执行方法称为 顺序执行 许多C语句能够让程序员指定不按编写顺序执行下一条执行语句 这种执行方法称为 控制转移 Bohm和Jacopini的研究证实 所有的程序都能够只用三种控制结构编写 即 顺序结构 选择结构 selectionstructure 循环结构 repetitionstructure 顺序结构是C语言的基本结构 除非指示转移 否则计算机自动以语句编写的顺序一句一句地执行C语句 任何C语言程序都是由七种控制结构 顺序结构 三种选择结构和三种循环结构 构成的 二 算法与流程图4 三种基本结构P23 26 顺序结构A块 B块顺序执行 每块代表一个或一组操作 二 算法与流程图4 三种基本结构P23 26 选择结构条件p成立时执行a块 否则执行b块 if选择结构条件为真时执行某个指定的操作 条件为假时跳过该操作 单路选择 if else选择结构条件为真时执行某个指定的操作 为假时执行另一个指定的操作 双路选择 switch选择结构根据表达式的值执行众多不同操作中的某个指定的操作 多路选择 二 算法与流程图4 三种基本结构P23 26 循环结构分当型和直到型两类 当型先判断 只要条件为真就反复执行A块 为假则结束循环 直到型先执行A块 再判断条件是否为真 为真则继续执行循环体 为假则结束循环 C语言提供了三种循环结构 即while循环结构 do while循环结构和for循环结构 三 选择结构程序设计1 if语句P91 三种形式 if 表达式 语句 图5 5a if 表达式 语句1 else语句2 图5 5b if 表达式1 语句1 图5 6 elseif 表达式2 语句2 elseif 表达式n 语句n else语句n 1 e1 e2 e3是if else语句在特定情况下的变体 if else 选择结构的一种最常用形式if 表达式 语句1 else语句2 语句3表达式值非0时 执行语句1 然后语句3 表达式值为0时 执行语句2 然后语句3else部分可以没有 if 表达式 语句1 语句3当表达式值为0时 直接执行语句3if else嵌套使用时 注意else和谁配对的问题 else if if的一种扩展形式if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 else语句4 语句5 else部分可以没有 三 选择结构程序设计1 if语句示例 例一 以下程序的作用是什么 main charc printf Input scanf c 将小写字母转换为大写字母 三 选择结构程序设计1 if语句示例 例二 以下程序的执行结果是什么 main intx 2 y 1 z 2 if x y if y 0 z 0 elsez 1 printf d n z 哦 原来是因为else总是与靠近它的if配套 常见错误 if x 0 if x 2 if 10 y x 1 例三 if a b 1 if a c 2 if a d flag 1 3 elseflag 2 4 elseflag 3 5 问题 第四行和第五行的else语句与哪一个if语句相匹配呢 三 选择结构程序设计1 if语句示例 分析 匹配方案可以有很多种 2 4 1 5 3 4 2 5 1 4 1 if a b if a c if a d flag 1 elseflag 2 elseflag 3 程序含义 当c a b时 flag 32 程序含义 当ab if a c if a d flag 1 elseflag 2 以上是一个完整的复合语句 elseflag 3 三 选择结构程序设计1 if语句示例 3 if a b if b c printf a b c n elseprintf a b n 尽管书写格式如此 真实的正确的含义是 if a b if b c printf a b c n elseprintf a b n 通过加 可以改变配对关系 if a b if b c printf a b c n elseprintf a b n 课后完成下例 体型判断 按 体指数 对肥胖程度进行划分 体指数t 体重w 身高h 2 w单位为公斤 h单位为米 当t 27时 为肥胖 编程从键盘输入你的身高h和体重w 根据给定公式计算体指数t 然后判断你的体重属于何种类型 用3种方法编程 算法1 用不带else子句的if语句编程算法2 用在if子句中嵌入if语句的形式编程算法3 用在else子句中嵌入if语句的形式编程 三 选择结构程序设计2 switch语句P98 switch语句的一般形式 switch e casec1 语句组1 casec2 语句组2 casecn 语句组n default 语句组n 1 可缺省 c1 cn常量 整数 字符 常量表达式如3 4 不含变量或函数 default 不是c1 cn的情况 位置不一定在最后 三 选择结构程序设计2 switch语句示例 main chars scanf c 输入 C 求输出结果 结果 60 69 60错误输入 三 选择结构程序设计2 switch语句示例 main chars scanf c 我的成绩应该是60 69 什么 60 错误输入 怎么会这样 不好意思 我属于C级 运行结果 60 69 60错误输入 三 选择结构程序设计2 switch语句示例 解决方法 break语句 main chars scanf c 这才差不多 break 运行结果 60 69 三 选择结构程序设计2 switch语句示例 解决方法 break语句 main chars scanf c 讨论switch s 语句中的s实际上并非真正的条件选择 而只是一种跳转指示 与if语句不同 表示下面应该跳转到什么位置继续执行 而各case实际上只是一个跳转处的标记 当程序跳转到某个case处时 并非只执行此case行的程序组 而是从此处开始一直向下执行各条语句 直到整个switch开关体结束 如果要使每个case处相当于一种if s else的效果 必须在其语句组最后加上break语句 三 选择结构程序设计2 switch语句示例 main intx 1 y 0 a 0 b 0 switch x case1 switch y case0 a break case1 b break case2 a b break case3 a b printf a d b d n a b 说明1 每个case常量表达式的值必须互不相同 否则会出现互相矛盾的结果 2 允许多个case共用一个执行语句 求程序运行结果 结果 a 2 b 1 如果x 2 结果 a 1 b 1 如果x 3 结果 a 1 b 1 提出问题 提问 从键盘上输入10个整数并求和 怎么编程 回答 在程序中写10个scanf语句 还可以写 d d 提问 从键盘上输入500个整数并求和 怎么编程 回答 这个 嗯 不会让我写500个 让我们换一个角度来看待这些问题 以上问题的实质是 将scanf函数重复执行N遍 我们可以引出一个概念 循环 简单而言 循环是在循环条件为真时计算机反复执行的一组指令 循环体 四 循环结构程序设计 四 循环结构程序设计 循环控制通常有两种方式 计数控制事先能够准确知道循环次数时用之用专门的循环变量来计算循环的次数 循环变量的值在每次执行完循环体各语句后递增 达到预定循环次数时则终止循环 继续执行循环结构后的语句 标记控制事先不知道准确的循环次数时用之由专门的标记变量控制循环是否继续进行 当标记变量的值达到指定的标记值时 循环终止 继续执行循环结构后的语句 四 循环结构程序设计 在C语言中可用以下语句构成循环 if gotowhiledo whilefor其中if goto是通过编程技巧 if语句和goto语句组合 构成循环功能 而且goto语句将影响程序流程的模块化 使程序可读性变差 所以结构化程序设计主张限制goto语句的使用 其他三种语句是C语言提供的循环结构专用语句 四 循环结构程序设计 循环结构两大要素 循环条件p结束循环的条件表达式循环体A循环执行的语句或语句组设置循环条件要特别注意确定 循环变量的初值循环变量的终值循环变量的变化规律 名词解释无限循环死循环 名词解释空循环 四 循环结构程序设计1 if goto语句循环结构P106 例一 main intn 0 sum 0 loop sum n n if sum 10000 gotoloop printf n d n n 例二 main intn 0 sum 0 loop if sum 10000 gotoend sum n n gotoloop end printf n d n n 直到型 当型 四 循环结构程序设计2 while语句循环结构P107 例三 main intn 0 sum 0 while sum 10000 sum n n printf n d n n 当型 一般形式while 条件表达式 循环体 用于构成当型循环 先判断后执行 条件为真继续循环 直到条件为假时结束循环 注意 条件表达式或循环体内应有改变条件使循环结束的语句 否则可能陷入 死循环 四 循环结构程序设计3 do while语句循环结构P108 例四 main intn 0 sum 0 do sum n n while sum 10000 printf n d n n 一般形式do 循环语句 组 while 条件表达式 用于构成直到型循环 先执行后判断 条件为真继续循环 直到条件为假时结束循环 注意 条件表达式或循环体内同样应有改变条件使循环结束的语句 否则可能陷入 死循环 直到型 直到sum超过10000为止 四 循环结构程序设计3 do while语句循环结构示例 例五 从键盘输入一个整数12456 分析以下程序运行结果 main intnum c printf 请输入一个整数 scanf d 取得num的个位数 输出num的个位数 直到num 10为0 结果 65421将各位数字反序显示出来 for语句格式for 表达式1 表达式2 表达式3 语句 for语句的执行流程 循环初始条件 循环控制条件 执行语句 成立 不成立 执行for循环之后的语句 执行表达式3 执行表达式1 循环体 for语句等价于下列语句 表达式1 while 表达式2 语句 表达式3 四 循环结构程序设计4 for语句循环结构P110 例六 求 i 1 2 3 4 99 100 i 1 100 main inti s 0 for i 1 i 100 i s s i printf Sum d n s for语句的变化形式for语句中的三个表达式中的任意一个都是可以省略的 但是分号不能省略 1 省略表达式2 则 for 表达式1 表达式3 就形成了一个死循环 2 省略表达式1和表达式3 则 for 表达式2 等同于 while 表达式 据此结论 所有用while语句实现的循环都可以用for语句实现 3 表达式1 2 3全省略 则 for 等同于 while 1 四 循环结构程序设计4 for语句循环结构P110 四 循环结构程序设计5 其他循环控制结构P114 break结束循环在switch中退出switch结构 在循环中结束循环 continue结束本次循环循环 短路 跳过循环体后面的语句 开始下一轮循环 goto跳转跳到循环体外指定标号处 注意 goto语句只能从循环内向外跳转 反之不可 main inta y a 10 y 0 do a 2 y a if y 50 break while a 14 printf a d y d n a y 变量跟踪ay100121214 216 12 2814 216 28 4414 216 44 60 break语句使用注意 1 在嵌套循环中 break语句仅能退出一层 当前 循环 2 若在循环语句中包含了switch语句 那么switch语句中的break语句仅能使控制退出switch语句 3 break语句并不是程序设计中必不可少的语句 可以通过改变程序的结构去掉 四 循环结构程序设计5 其他循环控制结构P114 break结束循环在switch中退出switch结构 在循环中结束循环 continue结束本次循环循环 短路 跳过循环体后面的语句 开始下一轮循环 goto跳转跳到循环体外指定标号处 注意 goto语句只能从循环内向外跳转 反之不可 求以下程序段执行后x和i的值 inti x for i 1 x 1 i 10 break if x 2 1 x 5 continue x 3 结果 x的值为10 i的值为6 变量跟踪ix11 626 333 848 555 106 四 循环结构程序设计5 其他循环控制结构P114 break结束循环在switch中退出switch结构 在循环中结束循环 continue结束本次循环循环 短路 跳过循环体后面的语句 开始下一轮循环 goto跳转跳到循环体外指定标号处 注意 goto语句只能从循环内向外跳转 反之不可 main inti 1 while i 15 if i 3 2 continue elseprintf d i printf n 变量跟踪i i 3输出i1 2222 303 414 5255 60 main inti k 0 for i 1 i k while k i i k if k 3 0 gotoloop loop printf d d i k 四 循环结构程序设计5 其他循环控制结构P114 break结束循环在switch中退出switch结构 在循环中结束循环 continue结束本次循环循环 短路 跳过循环体后面的语句 开始下一轮循环 goto跳转跳到循环体外指定标号处 注意 goto语句只能从循环内向外跳转 反之不可 结果 2 3 四 循环结构程序设计6 Whiledo whilefor语句的选用 同一个问题 可以用while语句来解决 也可用do while语句或者for语句来解决 但在实际应用中 我们要根据具体情况来选用不同的循环语句 选用的一般原则如下 如果循环次数在循环之前就已确定 一般用for语句 如果循环次数是根据循环体的执行情况确定的 一般选用while语句或者dowhile语句 intn 10 charc inta 10 do c getchar for i 0 i n i printf c c scanf d 当循环体执行一次时 用dowhile语句 反之 如果循环体可能一次也不执行时 用while语句 charc charc doc getch c getchar while c Q printf c c printf c c while c Q c getch 6 Whiledo whilefor语句的选用 四 循环结构程序设计7 循环嵌套 例 在屏幕上打印一个八行七列的星号矩形 includemain inti for i 0 i 7 i printf printf n for i 0 i 7 i printf printf n for i 0 i 7 i printf printf n What s循环嵌套 一个循环的循环体中套有另一个循环叫循环嵌套 这种嵌套的过程可以一直重复下去 二重循环 多重循环 前几节所学的三种循环结构 While do while和for可以互相嵌套 自由组合 例 打印出这个三角形0112223333444445555556666666777777778888888889999999999 四 循环结构程序设计7 循环嵌套 main inti j for i 0 i 9 i for j 0 j i j printf d i printf n 五 常用算法 1 枚举法 穷举法 笨人之法 把所有可能的情况一一测试 筛选出符合条件的各种结果进行输出 例一 百元买百鸡 用一百元钱买一百只鸡 已知公鸡5元 只 母鸡3元 只 小鸡1元 3只 分析 这是个不定方程 三元一次方程组问题 三个变量 两个方程 x y z 1005x 3y z 3 100设公鸡为x只 母鸡为y只 小鸡为z只 百元买百鸡问题分析 百元买百鸡问题分析 main intx y z for x 0 x 100 x for y 0 y 100 y for z 0 z 100 z if x y z 100 结果 x 0 y 25 z 75x 4 y 18 z 78x 8 y 11 z 81x 12 y 4 z 84 讨论此为 最笨 之法 要进行101 101 101 1030301次运算 百元买百鸡问题分析 讨论 令z 100 x y只进行101 101 10201次运算 前者的1 main intx y z for x 0 x 100 x for y 0 y 100 y z 100 x y if 5 x 3 y z 3 0 100 printf cocks d hens d chickens d n x y z 取x 19 y 33只进行20 34 680次运算 第1种运算的0 067 例二 雨水淋湿了算术书的一道题 8个数字只能看清3个 第一个数字虽然看不清 但可看出不是1 编程求其余数字是什么 3 2 8 9 分析设分别用A B C D E五个变量表示自左到右五个未知的数字 其中A的取值范围为2 9 其余取值范围为0 9 条件表达式即为给定算式 main intA B C D E for A 2 A 9 A for B 0 B 9 B for C 0 C 9 C for D 0 D 9 D for E 0 E 9 E if A B 10 3 C A B 10 3 C 8009 D 100 E 10 printf 2d 2d 2d 2d 2d n A B C D E 结果 32864 例二 雨水淋湿了算术书的一道题 8个数字只能看清3个 第一个数字虽然看不清 但可看出不是1 编程求其余数字是什么 3 2 8 9 例三 求100 200之间不能被3整除也不能被7整除的数 分析 求某区间内符合某一要求的数 可用一个变量 穷举 所以可用一个独立变量x 取值范围100 200 for x 100 x 200 x if x 3 0 如果是求指定条件的奇数呢 如果是求指定条件的偶数呢 x 101 x 200 x x 2 x 100 x 200 x x 2 2 归纳法 递推法 智人之法 通过分析归纳 找出从变量旧值出发求新值的规律 五 常用算法 例一 编程求 i 1 2 3 4 99 100 i 0 100 分析i 0S0 0 初值 i 1S1 0 1 S0 1i 2S2 1 2 S1 2i 3S3 1 2 3 S2 3i 4S4 1 2 3 4 S3 4 i nSn 1 2 3 4 n Sn 1 n 例一 编程求 i 1 2 3 4 n n 100 程序 main inti n s 0 printf n scanf d 运行结果 n 100Sum 5050 如果是 i 1 1 2 1 3 1 n呢 算法类型小结 累加型 累加型 类型诸如 求其前n项之和的编程题 累加型算法若设i为循环变量 s为前n项累加之和 则程序的基本结构为 s 0 for i 1 i n i s s 例二 编程求1 1 2 1 3 1 4 1 5 1 99 1 100 分母为奇数时 相加分母为偶数时 相减 法1 从变化规律分析 程序 main inti floats 0 for i 1 i 100 i if i 2 s s 1 i elses s 1 i printf Sum f n s 运行结果 Sum 1 000000 错在哪里 例二 编程求1 1 2 1 3 1 4 1 5 1 99 1 100 法2 这是个累加型算法的编程题 程序 includemain inti floats 0 for i 1 i 100 i s s pow 1 i 1 i printf Sum f n s 程序 includemain inti k 1 floats 0 for i 1 i 100 i s s k i k k printf Sum f n s 累加型算法程序基本结构为 s 0 for i 1 i n i s s 错在哪里 运行结果 Sum 0 688172 运行结果 Sum 1 000000 例三 编程求n n由键盘输入 分析i 0S0 1 S0 初值 i 1S1 1 1 S0 1i 2S2 1 2 S1 2i 3S3 1 2 3 S2 3i 4S4 1 2 3 4 S3 4 i nSn 1 2 3 4 n Sn 1 n 例三 编程求n n由键盘输入 程序 main inti n s 1 printf n scanf d 运行结果 n 5Sum 120 运行结果 n 8Sum 25216 Why 算法类型小结 阶乘型 阶乘型 类型诸如 求其前n项之积的编程题 阶乘型算法若设i为循环变量 s为前n项相乘之积 则程序的基本结构为 s 1 for i 1 i n i s s 例四 编程求 n 1 2 3 n n由键盘输入 外循环为累加型内循环为阶乘型 法1 从变化规律分析 程序 main inti j n floats s1 printf 请输入n scanf d 运行结果 n 5Sum 153 如果n值较大 可改为printf Sum e n s main inti n floats s1 printf 请输入n scanf d 法二 通过单循环实现 运行结果 N 20Sum 2 56133e 18 用printf Sum e n s 运行结果 输入N 5Sum 153 例五 P116例6 7兔子繁殖问题 斐波那契数列问题 著名意大利数学家斐波那契 Fibonacci 1202年提出一个有趣的问题 某人想知道一年内一对兔子可以生几对兔子 他筑了一道围墙 把一对大兔关在其中 已知每对大兔每个月可以生一对小兔 而每对小兔出生后第三个月即可成为 大兔 再生小兔 问一对大兔一年能繁殖几对小兔 分析 表示大兔 表示小兔 由分析可以推出 每月新增兔子数Fn 1 1 2 3 5 8 13 21 34 斐波那契数列 月份n兔子数Fn1F1 12F2 13F3 2 F1 F24F4 3 F2 F35F5 5 F3 F4 nFn Fn 1 Fn 2 例五 P116例6 7兔子繁殖问题 斐波那契数列问题 main intf1 1 f2 1 f 2 i s 2 n printf Inputn scanf d 对照 P116例6 7 例六 编程显示以下图形 共N行 N由键盘输入 此类题目分析的要点是 通过分析 找出每行空格 与行号i 列号j及总行数N的关系 其循环结构可用右图表示 分析 设N 5 第1行4个空格 5 11个 2 行号 1第2行3个空格 5 23个 2 行号 1第3行2个空格 5 35个 2 行号 1第4行1个空格 5 47个 2 行号 1第5行0个空格 5 59个 2 行号 1 由此归纳出 第i行的空格数N i个 第i行的 数是2i 1个 例六 main inti j N printf 请输入N scanf d 除了以上例题 要求根据教材掌握 1 求按指定精度近似值问题 例6 6 2 判断一个数是否素数问题 例6 8 3 密码问题 例6 10 判断一个数是否素数问题 例6 8另一种解法 includemain intm k i clrscr printf x scanf d 把i m 1改为i sqrt m 1 比较i的值 第三章作业 一 编程题1 编写一个程序 计算 32768 32767之间任意整数 由键盘输入 中各位奇数的平方和 2 设有一四位数abcd ab cd 2 编写一个程序 求a b c d 3 鸡兔问题 鸡兔共30只 脚共有90个 编写一个程序 求鸡 兔各多少只 4 编写一个程序 求S值 n由键盘输入 程序检验参考 x 6 66 n 8时 s 40 955 x 6 66 x 15时 s 1 511 第三章作业 一 编程题5 编写一个程序 求前n项之和S值 其中n 1 x 0 n由键盘输入 12x35x813xS 2x35x813x21 程序检验参考 x 6 66 n 8时 s 16 492 x 6 66 x 15时 s 28 469 6 利用泰勒级数sin x 计算sin x 的值 要求最后一项的绝对值小于10 5 并统计出此时累加了多少项 7 三色球问题 若一个口袋中放有12个球 其中有3个红色的 3个白色的 6个黑色的 从中任取8个球 问共有多少种不同的颜色搭配 程序检验参考 x 6时 sin x 0 279415 count 13 8 编程打印以下图案 1 2 3 4 输出下三角形乘法九九表123456789 12436948121651015202561218243036714212835424981624324048566491827364554637281 从键盘输入h值 输出用 号组成的正菱形 例 输入h 4 输出的图形如下 分析 1 h为上三角形的高度 总行数为 2 对于第j行 若要输出m个空格和n个 号 3 当j h时 为上三角 则 m n 4 当时 为下三角 则 m n 1234567 空格数量3 号数量1231507152331 2h 1h j2j 1h j 2h 1j h总宽度 空格 2h 1 2 j h 4h 1 2j 算法设计for j 1 j 2 h 1 j 控制打印行 若为上三角j h则 m h j n 2j 1否则 m j h n 4h 1 2j重复打印m个空格重复打印n个 换行 加细循环体 if j h m h j n 2 j 1 else m j h n 4 h 1 2 j for k 1 k m k printf for k 1 k n k printf printf n 结构化程序设计的核心思想 采用顺序 选择和循环三种基本结构作为程序设计的基本单元只有一个入口 只有一个出口 无死语句 即不存在永远都执行不到的语句 无死循环 即不存在永远都执行不完的循环 采用 自顶向下 逐步求精 和模块化的方法进行结构化程序设计 break语句的执行流程 break break while语句 for语句 do while语句 continue语句的执行流程
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!