3判断和决策–选择程序设计.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3判断和决策–选择程序设计

高级语言程序设计 第3章 判断与决策 —选择程序设计 学习目标:判断与决策问题求解 算法表示方法 决策/判断问题分析 判断决策条件 选择结构 复杂条件表示 回顾前面已经解决过的问题,分析其特点 顺序处理问题 用顺序结构表示 稍稍复杂一点的问题,只用顺序结构是不够的,需要用选择结构表示判断与决策(本章的内容),需要用循环结构表示重复(下一章)。 巧妙的使用这三种结构就可以解决复杂的问题 问题 让成绩合格的学生通过 判断成绩是否合格 给定的一个整数是偶数吗? 奇偶判断 按成绩把学生分成两组:合格与不合格 判断成绩是大于等于60还是小于60 按成绩把学生分成多组 判断成绩落在那个范围 判断某年是否为闰年 流程图 起始框 椭圆 处理框 矩型 判断框 钻石 流向线 结构化程序的特点 单入口 单出口 问题1:让成绩合格的学生通过 问题描述: 假设有一个计算机打字训练教室,大一刚入学的同学都要到这个训练教室练习打字。电脑自动考核,你的成绩在60分以上视为合格。训练教室的门口有一个电脑控制的栏杆,它是一个“智能栏杆”,知道每一个参加训练同学的当前训练成绩,因此当你走进它时,他会获取你的学号,如果你的成绩大于或等于60,它将自动打开,允许你路过。可想而知你的成绩要是小于60会是什么样子。请你一定要认真训练,不然你就不可能从那个教室里出来噢?。你知道这个“智能栏杆”的程序怎么设计吗? 输入样例1:80 输出样例1:good! you passed! 输入样例2:55 输出样例2:无 分析 一个输入—成绩 判断条件:成绩=60 一个输出或没有输出 当成绩=60时,输出good! you passed! 算法设计(描述算法) 伪码表示法: 第一步:输入成绩; 第二步:如果成绩大于或等于60, 输出good! you passed!。 代码实现 #includestdio.h int main(void) { int grade; //while( 1 ) //{ scanf(%d,grade); if (grade = 60) printf(good! you passed!\n); //} return 0; } 要讨论的几个问题 逻辑判断如何表达? grade=60 关系运算: 大于,小于, 大于等于=,小于等于=, 还有等于==,不等于!=运算 关系表达式 grade=60 grade==80 逻辑判断的结果是什么? 逻辑真(true)、逻辑假(false) 关系运算的结果或者为真或者为假 逻辑常量 1 逻辑真(true) 0 逻辑假(false) 关系表达式的值或者为1或者为0 例:输出两个整数的关系表达式的值 关系运算的优先级 例1: 设有 “ int a, b, c, status; a = 1; b = 2; c = 3;”,分析一下下面两个语句中各种运算的顺序: (1) printf(“%d\n”, a+bc); //算术运算与关系运算混合 (2) status = a b; //赋值运算与关系运算混合 关系运算的优先级低于算术运算,高于赋值运算,而关系运算中比较大小的四个运算,,=,=的优先级又高于判断相等的两个运算==,!=。 关系运算的结合性 例2:设有 “int a = 30,b = 20, c = 2,stauts;”,下面语句正确吗? status = a b c; 如果正确status的值会是多少? 关系运算是左结合的 逻辑变量 c99—_Bool逻辑类型 c++—bool逻辑类型, 但要包含stdbool.h C/C++如何表示逻辑判断? 选择结构(单分支、双分支、多分支) 单分支选择结构 — if 结构 if (判断条件) 条件为真时执行的语句 其它语句 if (grade = 60) printf(good! you passed!\n); return 0; 注意写法:缩进格式 if (grade = 60)后面没有;号 也可以写成单行 if (grade = 60) printf(good! you passed!\n); 再看几个例子: 例1 .比较两个整数的大小 输入样例1:2 3 输出样例1: 测试用例2:3 2 测试用例3:3 3 例2:判断整数是偶数吗? 分析: 一个输入 判断其是否为偶数 判断条件 number%2==0? 如果条件为真

您可能关注的文档

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档