建站工具 ip,做网站前端多少钱,湖南省建设工程招标网,小型网络架构[导读]#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后#xff0c;受到了广大老师和家长的好评#xff0c;非常感谢各位的认可和厚爱。作为回馈#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》#xff0c;这是解读系列的第12讲。
判断三角形#…
[导读]超平老师的Scratch蓝桥杯真题解读系列在推出之后受到了广大老师和家长的好评非常感谢各位的认可和厚爱。作为回馈超平老师计划推出《Python蓝桥杯真题解析100讲》这是解读系列的第12讲。
判断三角形本题是2019年~2020年举办的第11届蓝桥杯青少组Python编程选拔赛真题(具体日期不详)。题目要求根据输入的3个正整数判断以它们作为三条边的边长能否形成一个三角形并判断三角形的形状。
先来看看题目的要求吧。
一.题目说明
编程实现
用户输入三个正整数以逗号英文标点分隔并判断以这三个正整数作为三条边的边长能否形成一个三角形并判断三角形的形状。
提示
任意一个三角形中两边之和大于第三边。
Python语法提示
将三个以逗号分隔输入的整数可以使用如下方法进行转换、分离
str input()
nums eval(str)
输入描述
一次将三个正整数输入之间以逗号分隔。正整数的取值范围在1-200。
输出描述
1). 以这三个正整数作为三条边的边长如能形成三角形则在第一行输出能组成三角形如不能则输出不能组成三角形
2). 如果能组成三角形并且为直角三角形则在第二行输出是直角三角形。如果三角形为等腰三角形则输出是等腰三角形如果不是以上两种情况则输出是普通三角形。
样例1输入
3, 4, 5
样例1输出
边长为3, 4, 5的三条边能组成三角形
这个三角形是直角三角形
样例2输入
4, 4, 6
样例2输出
边长为4, 4, 6的三条边能组成三色形
这个三角形是等腰三角形
样例3输入
4, 5, 9
样例3输出
边长为4, 5, 9的三条边不能组成三色形
评分标准 30 分能接受用户输人、并正确判断能否组成三角形不论程序的输入输出格式是否正确 50分在满足30 分的基础上正确判断三角形的形状且程序的输入输出格式符合样例要求。
二.思路分析
这是一道涉及数学和几何图形的编程题目考查的知识点包括条件语句、常见运算符以及三角形相关知识。
我们从如下两个维度来分析本题 编程 数学
1. 编程
从编程的角度来讲这是一个典型的选择结构为方便理解可以绘制流程图如下 需要解决的问题有如下3个
1). 如何获取输入数据
2). 怎么按照题目要求输出
3). 条件该怎么写
先看第一个问题在Python编程中使用input()函数获取的是字符串本题输入的是3个数字数字之间使用逗号隔开因此需要使用split()函数进行分割再使用列表推导式得到3个整数其代码如下
a, b, c [int(i) for i in input().split(,)]
这是获取用户输入数字的通用方法一定要熟练掌握。
接着是第二个问题本题输出的时候还需要带上三条边的边长通常可以使用占位符来输出用法如下
print(边长为%d,%d,%d的三条边能组成三角形%(a,b,c))
当然你也可以使用f字符串或者format()函数来进行格式化输出。
至于第三个问题条件怎么写这就涉及到数学知识了。
2. 数学
本题中的三角形判断包括三个问题
1). 是否构成三角形
2). 是否为直角三角形
3). 是否为等腰三角形
先来看第一个问题判断是否构成三角形题目给出了提示信息”任意一个三角形中两边之和大于第三边“。
“三角形两边之和大于第三边”这是任意一个三角形都必定具备的基本性质。它的具体含义如下
任给一个三角形ABC其边长分别为a、b、c则以下三个不等式必定同时成立
a b ca c bb c a
第二个问题是否为直角三角题目没有给出任何提示这就需要考生熟悉勾股定理了。
勾股定理是一个基本的几何定理指直角三角形的两条直角边的平方和等于斜边的平方。 中国古代称直角三角形为勾股形并且直角边中较小者为勾另一长直角边为股斜边为弦所以称这个定理为勾股定理也有人称商高定理在西方则被称为毕达哥拉斯定理。
第三个问题则比较简单只要有两条边相等说明是等腰三角形了。
思路有了接下来我们就进入具体的编程实现环节。
三.编程实现
根据上面的思路分析我们编写代码如下 代码不难理解强调4点
1). 两边之和大于第3边一定要同时考虑三种情形并且是逻辑与的关系
2). 使用勾股定理时由于不知道哪一个是最长的边所以需要考虑三种情形但它们之间是逻辑或的关系
3). 判断等腰三角形时也需要考虑三种情形它们之间是逻辑或的关系
4). 注意运算符的优先级算术运算 比较运算 逻辑运算因此这里不用加括号。
至此整个程序就全部完成了你可以输入不同的数据进行测试。
四.思考与总结
本题的分数为50分代码在10行左右涉及到的知识点包括 输入处理尤其是数字串的输入 输出处理重点是格式化的用法 条件语句包括双分支、多分支及嵌套 逻辑运算 运算符的优先级
题目代码不多关键是要熟悉三角形的特性尤其是使用勾股定理来判断是否为直角三角形。这充分说明了数学的重要性没有良好的数学知识储备想要解决类似题目是不现实的。
超平老师给你留几道思考题
1). 在判断三角形时会不会出现等腰直角三角形为什么呢
2). 如何判断是否为等边三角形
3). 如何判断锐角和钝角三角形呢
你还有什么好的想法和创意吗也非常欢迎和超平老师分享探讨。
如果你觉得文章对你有帮助别忘了点赞和转发予人玫瑰手有余香
需要源码的可以移步至“超平的编程课”gzh。