人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》64.docx

人教A版高中数学必修3《1.2基本算法语句1.2.1输入语句、输出语句和赋值语句》64.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
海伦 -秦九韶公式 海伦公式又译作希伦公式、海龙公式、希罗公式、海伦-秦九韶公式,传说是古代的叙拉古 国王 希伦 (Heron, 也称海龙) 二世发现的公式, 利用三角形的三条边长来求取三角形面积。 但根据 Morris Kline 在 1908 年出版的著作考证,这条公式其实是 阿基米德 所发现,以托希 伦二世的名发表(未查证 )。 原理简介 中国宋代的数学家秦九韶也提出了“三斜求积术”,它与海伦公式基本一样。 假设在平面内,有一个三角形,边长分别为 a、b、c,三角形的面积 S 可由以下公式求得: 而公式里的 p 为半周长(周长的一半): 注 1:Metrica( 《论》)手抄本中用 s 作为半周长,所以 和 两种写法都是可以的,但多用 p 作为半周长。 由于任何 n 边的多边形都可以分割成( n-2 )个三角形,所以海伦公式可以用作求多边形面积的公式, 但需要先知道分割用的对角线的长度。 比如说测量土地的面积的时候,不用测三角形的高 ,只需测两点间的距离, 就可以方便地导出答案。 证明过程 与海伦在他的著作 Metrica( 《度量论》)中的原始证明不同,在此我们用三角公式和公式变形来证明。设三角形的三边 a、b、c 的对角分别为 A、B、C,则余 弦定理为下述推导 [1] cosC = (a^2+b^2-c^2 )/2ab S=1/2*ab*sinC =1/2*ab* √( 1-cos^2 C) =1/2*ab* √[1 -(a^2+b^2-c^2 )^2/4a^2*b^2] =1/4* √[4a^2*b^2 -(a^2+b^2-c^2 ) ^2] =1/4* √[ ( 2ab+a^2+b^2-c^2 )( 2ab-a^2-b^2+c^2 )] =1/4* √[(a+b)^2 -c^2][c^2-(a-b)^2] =1/4* √[(a+b+c)(a+b -c)(a-b+c)(-a+b+c)] 设 p=(a+b+c)/2 则 p=(a+b+c)/2,p-a=(-a+b+c)/2,p-b=(a-b+c)/2,p-c=(a+b-c)/2, 上式 =√[(a+b+c)(a+b -c)(a-b+c)(-a+b+c)/16] =√[p(p -a)(p-b)(p-c)] 所以,三角形 ABC面积 S=√[p(p -a)(p-b)(p-c)] C语言版例题: 如图四边形 ABCD内接于圆 O中, SABCD =,AD = 1,AB = 1,CD = 2. 求:四边形可能为等腰梯形。 解:设 BC = x 由海伦公式的推广,得: 4- x)( 2+x)2 =27 x4-12x2-16x+27 = 0 x2(x2 —1)- 11x(x - 1)- 27(x -1) = 0 x- 1)( x3+x2-11x- 27) = 0 x = 1 或 x3+x2-11x-27 = 0 当 x = 1 时, AD = BC = 1 ∴ 四边形可能为等腰梯形。 在程序中实现( VBS): dim a,b,c,p,q,s a=inputbox( 请输入三角形第一边的长度 ) b=inputbox( 请输入三角形第二边的长度 ) c=inputbox( 请输入三角形第三边的长度 ) a=1*a b=1*b c=1*c p=(a+b+c)*(a+b-c)*(a-b+c)*(-a+b+c) q=sqr(p) s=(1/4 )*q msgbox( 三角形面积为 s),, 三角形面积 在 VC中实现 #includestdio.h #includemath.h main() int a,b,c,s; printf( 输入第一边 \n); scanf(%d,a); printf( 输入第二边 \n); scanf(%d,b); printf( 输入第三边 \n); scanf(%d,c); s=(a+b+c)/2; printf( 面积为: %f\n,sqrt(s*(s-a)*(s-b)*(s-c))); C#版: using System; using System.Collections.Generic; using System.Text; namespace CST09078 class Program static void Main(string[] args) double a,b,c,p,s; Console.WriteLine( 输入第一条边的长度: \n); a = Convert.ToDouble(Console.ReadLine()); Console.WriteLine( 输入第二条边的长度: \n); b = Convert.ToDouble(Console.ReadLine()); Console.WriteLine

您可能关注的文档

文档评论(0)

155****7807 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档