浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

习题3-5 三角形判断 (15 分)

给定平面上任意三个点的坐标(x​1​​,y​1​​)、(x​2​​,y​2​​)、(x​3​​,y​3​​),检验它们能否构成三角形。

输入格式:

输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x​1​​、y​1​​、x​2​​、y​2​​、x​3​​、y​3​​。

输出格式:

若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。

输入样例1:

4 5 6 9 7 8

输出样例1:

L = 10.13, A = 3.00

输入样例2:

4 6 8 12 12 18

输出样例2:

Impossible


思路:先用两点间距离公式求出三边边长。(d=√[(x₂ - x₁)²+(y₂ - y₁)²])
   再用海伦公式判断是否能组成三角形,并求出面积。
  
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
    double x1 ,x2, x3, y1, y2, y3, a, b, c, L, A, s, delta;
	
    scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
    a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));//两点间距离公式,下同。
    b=sqrt(pow(x2-x3,2)+pow(y2-y3,2));
    c=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
    s=(a+b+c)/2;
    delta=(s-a)*(s-b)*(s-c);//用delta判别是否能成为三角形
    if(delta<=0) 
    printf("Impossible\n"); else {     L=2*s;     A=sqrt(s*delta);     printf("L = %.2lf, A = %.2lf\n",L,A); } return 0; }

 科普:海伦-秦九韶公式

    希羅公式Heron's formulaHero's formula),又译希罗公式希伦公式海龙公式,亦称“海伦-秦九韶公式”。此公式是亚历山大港的海伦发现的,并可在其于公元60年的《Metrica》中找到其证明,利用三角形的三条边长来求取三角形面积。亦有认为早于阿基米德已经懂得这条公式,而由于《Metrica》是一部古代数学知识的结集,该公式的发现时期很有可能先于海伦的著作。

    假设有一个三角形,边长分别为浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),三角形的面积浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)可由以下公式求得:浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),其中浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)。中国南宋末年数学家秦九韶发现或知道等价的公式,其著作《数书九章》卷五第二题即三斜求积。“问沙田一段,有三斜,其小斜一十三里,中斜一十四里,大斜一十五里,里法三百步,欲知为田几何?”答曰:“三百十五顷.”其术文是:“以小斜幂并大斜幂,减中斜幂,余半之,自乘于上;以小斜幂乘大斜幂,减上,余四约之为实,……开平方得积。”若以大斜记为浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),中斜记为浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),小斜记为浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),秦九韶的方法相当于下面的一般公式:

                          浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),其中浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

像其他中国古代的数学家一样,他的方法没有证明。根据现代数学家吴文俊的研究,秦九韶公式可由出入相补原理得出。一些中国学者将这个公式称为秦九韶公式

由于任何浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)边的多边形都可以分割成浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)个三角形,所以海伦公式可以用作求多边形面积的公式。比如说测量土地的面积的时候,不用测三角形的高,只需测两点间的距离,就可以方便地导出答案。

利用三角公式和代数式变形来证明[编辑]

与海伦在他的著作《Metrica》中的原始证明不同,在此我们用三角公式和公式变形来证明。设三角形的三边{\displaystyle a,b,c}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)的对角分别为{\displaystyle A,B,C}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),则余弦定理

{\displaystyle \cos C={\frac {a^{2}+b^{2}-c^{2}}{2ab}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

利用和平方差平方平方差等公式,从而有

{\displaystyle {\begin{aligned}\sin C&={\sqrt {1-\cos ^{2}C}}\\&={\sqrt {(1+\cos C)(1-\cos C)}}\\&={\sqrt {\left(1+{\frac {a^{2}+b^{2}-c^{2}}{2ab}}\right)\left(1-{\frac {a^{2}+b^{2}-c^{2}}{2ab}}\right)}}\\&={\sqrt {\left[{\frac {(a+b)^{2}-c^{2}}{2ab}}\right]\left[{\frac {c^{2}-(a-b)^{2}}{2ab}}\right]}}\\&={\frac {\sqrt {(a+b+c)(a+b-c)(c+a-b)(c-a+b)}}{2ab}}\\&={\frac {\sqrt {(2s)(2s-2c)(2s-2b)(2s-2a)}}{2ab}}\\&={\frac {2}{ab}}{\sqrt {s(s-c)(s-b)(s-a)}}\end{aligned}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
{\displaystyle {\begin{aligned}A&={\frac {1}{2}}ab\sin C\\&={\frac {ab}{2}}\cdot {\frac {2}{ab}}{\sqrt {s(s-a)(s-b)(s-c)}}\\&={\sqrt {s(s-a)(s-b)(s-c)}}\end{aligned}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

利用勾股定理和代数式变形来证明[编辑]

浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
{\displaystyle b^{2}=h^{2}+d^{2}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
{\displaystyle a^{2}=h^{2}+(c-d)^{2}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
{\displaystyle a^{2}-b^{2}=c^{2}-2cd}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
{\displaystyle d={\frac {-a^{2}+b^{2}+c^{2}}{2c}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
{\displaystyle {\begin{aligned}h^{2}&=b^{2}-\left({\frac {-a^{2}+b^{2}+c^{2}}{2c}}\right)^{2}\\&={\frac {(2bc-a^{2}+b^{2}+c^{2})(2bc+a^{2}-b^{2}-c^{2})}{4c^{2}}}\\&={\frac {((b+c)^{2}-a^{2})(a^{2}-(b-c)^{2})}{4c^{2}}}\\&={\frac {(b+c-a)(b+c+a)(a+b-c)(a-b+c)}{4c^{2}}}\\&={\frac {2(s-a)\cdot 2s\cdot 2(s-c)\cdot 2(s-b)}{4c^{2}}}\\&={\frac {4s(s-a)(s-b)(s-c)}{c^{2}}}\end{aligned}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
{\displaystyle {\begin{aligned}A&={\frac {ch}{2}}\\&={\sqrt {{\frac {c^{2}}{4}}\cdot {\frac {4s(s-a)(s-b)(s-c)}{c^{2}}}}}\\&={\sqrt {s(s-a)(s-b)(s-c)}}\end{aligned}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

用旁心来证明[编辑]

设{\displaystyle \bigtriangleup ABC}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)中,{\displaystyle {\overline {AB}}=c,{\overline {BC}}=a,{\overline {CA}}=b}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

{\displaystyle I}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)为内心,{\displaystyle I_{a},I_{b},I_{c}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)为三旁切圆。

{\displaystyle \because \angle I_{a}BI=\angle I_{a}CI=90^{\mathsf {o}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

{\displaystyle \therefore I_{a}CIB}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)四点共圆,并设此圆为圆{\displaystyle O}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

  1. 过{\displaystyle I}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)做铅直线交{\displaystyle {\overline {BC}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)于{\displaystyle P}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),再延长{\displaystyle {\overleftrightarrow {IP}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),使之与圆{\displaystyle O}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)交于{\displaystyle Q}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)点。再过{\displaystyle I_{a}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)做铅直线交{\displaystyle {\overline {BC}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)于{\displaystyle R}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)点。
  2. 先证明{\displaystyle \Box I_{a}QPR}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)为矩形:{\displaystyle \because \angle QPR=90^{\mathsf {o}},\angle I_{a}RP=90^{\mathsf {o}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),又{\displaystyle \angle I_{a}QI=\angle I_{a}BI=90^{\mathsf {o}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)(圆周角相等)。{\displaystyle \therefore \Box I_{a}QPR}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)为矩形。因此,{\displaystyle {\overline {I_{a}R}}={\overline {QP}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
  3. {\displaystyle {\overline {PI}}=}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)内切圆半径{\displaystyle ={\frac {\bigtriangleup }{\frac {a+b+c}{2}}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分),{\displaystyle {\overline {I_{a}R}}=}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)旁切圆半径{\displaystyle ={\frac {\bigtriangleup }{\frac {b+c-a}{2}}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)。且易知{\displaystyle {\overline {BP}}={\frac {c+a-b}{2}},{\overline {PC}}={\frac {a+b-c}{2}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)。由圆幂性质得到:{\displaystyle {\overline {PC}}\times {\overline {PB}}={\overline {PQ}}\times {\overline {PI}}={\overline {I_{a}R}}\times {\overline {PI}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)。故{\displaystyle {\frac {a+b-c}{2}}\times {\frac {c+a-b}{2}}={\frac {\bigtriangleup }{\frac {a+b+c}{2}}}\times {\frac {\bigtriangleup }{\frac {b+c-a}{2}}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分){\displaystyle \Rightarrow \bigtriangleup ={\sqrt {{\frac {a+b+c}{2}}\times {\frac {b+c-a}{2}}\times {\frac {a+c-b}{2}}\times {\frac {a+b-c}{2}}}}}浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)
 

 

上一篇:wiki搬运,排序算法


下一篇:支持向量机算法