




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、【例5.1】求給定(i dn)三角形的外心CB圖5.1 三角形外心YXAdefOEFD輸入三個(gè)頂點(diǎn)坐標(biāo)求垂直平分線e求垂直平分線f圖5.2 求三角形外心的PAD求e 、f交點(diǎn)OO點(diǎn)即為外心,輸出其坐標(biāo)第1頁(yè)/共59頁(yè)第一頁(yè),共60頁(yè)。 以e為例,求解(qi ji)垂直平分線圖5.3 求垂直平分線e求AC邊的中點(diǎn)E求AC邊的直線方程求過(guò)E點(diǎn)的與AC垂直的直線的直線方程第2頁(yè)/共59頁(yè)第二頁(yè),共60頁(yè)。假設(shè)A點(diǎn)坐標(biāo)為xa、yaB點(diǎn)坐標(biāo)為xb、ybC點(diǎn)坐標(biāo)為xc、ycAC邊的中點(diǎn)(zhn din)E的坐標(biāo)為xe、yeAC邊的直線方程表示為 Y=a1*X+b1AB邊的直線方程表示為Y=a2*X+b2A
2、C邊垂直平分線e的直線方程為Y=u1*X+v1AB邊垂直平分線f的直線方程為Y=u2*X+v2第3頁(yè)/共59頁(yè)第三頁(yè),共60頁(yè)。輸入三個(gè)頂點(diǎn)坐標(biāo)圖5.4 求三角形外心的完整PADxo=(u2-u1)/(v2-v1);yo=u1*xo+v1;O點(diǎn)即為外心,輸出其坐標(biāo)xe=(xa+xc)/2; ye=(ya+yc)/2;a1=(ya-yc)/(xa-xc);b1=ya-a1*xa;u1= -1/a1;v1= ye-u1*xexf=(xa+xb)/2;yf=(ya+yb)/2;a2=(ya-yb)/(xa-xb);b2=ya-a1*xa;u2= -1/a2;v2= yf-u2*xf第4頁(yè)/共59頁(yè)第
3、四頁(yè),共60頁(yè)。#include / 括入標(biāo)準(zhǔn)輸入輸出函數(shù)庫(kù)頭文件void main( ) / 主函數(shù)float xa,ya,xb,yb,xc,yc; /分別保存三角形三個(gè)頂點(diǎn)的X、Y方向坐標(biāo)float xe,ye;/ AC邊的中點(diǎn)E的坐標(biāo)float xf,yf;/ AB邊的中點(diǎn)F的坐標(biāo)float a1 , b1; / AC邊的直線(zhxin)方程系數(shù)float a2 , b2; / AB邊的直線(zhxin)方程系數(shù)float u1 , v1; / AC邊的垂直平分線的直線(zhxin)方程系數(shù)float u2 ,v2;/ AB邊的垂直平分線的直線(zhxin)方程系數(shù)float xo,y
4、o;/外心O的坐標(biāo)/* 輸入三個(gè)點(diǎn)的X、Y方向坐標(biāo) */printf(please input xa,ya,xb,yb,xc,yc:n);scanf(%f%f%f%f%f%f,&xa,&ya,&xb,&yb,&xc,&yc);第5頁(yè)/共59頁(yè)第五頁(yè),共60頁(yè)。/* 求AC邊垂直平分線e */xe=(xa+xc)/2; / 先求AC邊的中點(diǎn)Eye=(ya+yc)/2;a1=(ya-yc)/(xa-xc); /再求過(guò)A、C兩點(diǎn)的直線方程(fngchng)b1=ya-a1*xa; u1= -1/a1; / 求過(guò)E點(diǎn)的與AC垂直的直線的直線方程(fngc
5、hng)v1= ye-u1*xe;/* 求AB邊垂直平分線f */xf=(xa+xb)/2; / 先求AB邊的中點(diǎn)Eyf=(ya+yb)/2;a2=(ya-yb)/(xa-xb); /再求過(guò)A、B兩點(diǎn)的直線方程(fngchng)b2=ya-a1*xa;u2= -1/a2; / 求過(guò)F點(diǎn)的與AC垂直的直線的直線方程(fngchng)v2= yf-u2*xf;/* 求e,f交點(diǎn)O */xo=(u2-u1)/(v2-v1);yo=u1*xo+v1; /* 打印輸出 */printf(“外心坐標(biāo):x=%10.3f y=%10.3f n”,xo,yo); 計(jì)算過(guò)程一致(yzh),而參與運(yùn)算的數(shù)據(jù)不同第6
6、頁(yè)/共59頁(yè)第六頁(yè),共60頁(yè)?!纠?.2】用函數(shù)改寫(xiě)(gixi)例5.1的程序#include / 括入標(biāo)準(zhǔn)輸入輸出函數(shù)庫(kù)頭文件 1/* 求垂直平分線:參數(shù):兩個(gè)頂點(diǎn)r、s的x、y坐標(biāo) */float aa; /全局變量,用于保存?zhèn)鬟frs邊的垂直平分線的直線方程斜率 2 float lines( float xr,float yr,float xs,float ys ) /3 float xt,yt; / 中點(diǎn)(zhn din)T的坐標(biāo)4 float a , b; / 過(guò)r、s兩點(diǎn)的直線方程系數(shù)5 /* 先求中點(diǎn)(zhn din)T */ xt=(xr+xs)/2;/6 yt=(yr+ys)/
7、2; /7 /* 再求過(guò)r、s兩點(diǎn)的直線方程rs */ a=(yr-ys)/(xr-xs);/8 b=yr-a*xr; /9 /* 求過(guò)中點(diǎn)(zhn din)T的與rs垂直的直線方程 */ aa = -1/a; /計(jì)算斜率aa 10 return yt-aa*xt; /計(jì)算截距b,并帶著b值返回11第7頁(yè)/共59頁(yè)第七頁(yè),共60頁(yè)。void main( ) / 主函數(shù) 13 float xa,ya,xb,yb,xc,yc; /分別保存三角形三個(gè)頂點(diǎn)的X、Y坐標(biāo)14 float u1 , v1; / AC邊的垂直平分線的直線方程系數(shù)(xsh) 15 float u2 ,v2;/ AB邊的垂直平分
8、線的直線方程系數(shù)(xsh) 16 float xo,yo;/外心O的坐標(biāo) 17 /* 輸入三個(gè)點(diǎn)的X、Y方向坐標(biāo) 346 360 416 108 116 212 */ printf(please input xa,ya,xb,yb,xc,yc:n); /18 scanf(%f%f%f%f%f%f,&xa,&ya,&xb,&yb,&xc,&yc);第8頁(yè)/共59頁(yè)第八頁(yè),共60頁(yè)。/* 求AC邊垂直平分線e */v1=lines( xa, ya, xc, yc );/ 截距20u1=aa;/ 斜率(xil)21/* 求AB邊垂直平分線f */v2=
9、lines( xa, ya, xb, yb );/ 截距22u2=aa;/ 斜率(xil)23/* 求e,f交點(diǎn)O */xo= -(v2-v1)/(u2-u1); /24yo=u1*xo+v1; /25/* 打印輸出 */printf(“外心坐標(biāo):x=%10.3f y=%10.3f n”,xo,yo ); /26 第9頁(yè)/共59頁(yè)第九頁(yè),共60頁(yè)。子程序自頂向下、逐步求精”程序設(shè)計(jì)技術(shù)的基礎(chǔ) 從問(wèn)題的整體(最頂層)出發(fā),向下分解問(wèn)題。逐層細(xì)分,得到整個(gè)問(wèn)題的解決方法使用子程序技術(shù)分離了“做什么(shn me)”與“怎么做”程序邏輯結(jié)構(gòu)清晰,易寫(xiě),易讀,易懂。程序的設(shè)計(jì),調(diào)試,維護(hù)變得容易第10
10、頁(yè)/共59頁(yè)第十頁(yè),共60頁(yè)。5.2 函數(shù)(hnsh) 【例5.2】程序執(zhí)行過(guò)程 函數(shù)概念的組成(z chn) 函數(shù)定義 函數(shù)調(diào)用 使用函數(shù)注意事項(xiàng) 先定義該函數(shù)(標(biāo)準(zhǔn)庫(kù)函數(shù)除外)類似于數(shù)學(xué)中的函數(shù)定義。 再在表達(dá)式中調(diào)用該函數(shù)數(shù)學(xué)中計(jì)算某函數(shù)的一個(gè)特定值。第11頁(yè)/共59頁(yè)第十一頁(yè),共60頁(yè)。5.2.1 函數(shù)(hnsh)定義(function-declaration) 除標(biāo)準(zhǔn)庫(kù)函數(shù)外, 程序中使用函數(shù)必須先定義,然后再用“函數(shù)調(diào)用”調(diào)用它。 函數(shù)定義形式 類型(lixng)說(shuō)明符 標(biāo)識(shí)符 ( 參數(shù)列表 ) 復(fù)合語(yǔ)句第12頁(yè)/共59頁(yè)第十二頁(yè),共60頁(yè)。float dis( float xr,
11、float yr,float xs,float ys ) return sqrt( (xr-xs)*(xr-xs)+(yr-ys)*(yr-ys); 函數(shù)(hnsh)類型函數(shù)(hnsh)名字形參列表(li bio)復(fù)合語(yǔ)句函數(shù)體函數(shù)定義說(shuō)明符第13頁(yè)/共59頁(yè)第十三頁(yè),共60頁(yè)。 函數(shù)定義說(shuō)明符 上述形式的第一行稱“函數(shù)定義說(shuō)明符”,形式如下 TT F ( 參數(shù)(cnsh)列表)具體指明以下點(diǎn):函數(shù)的結(jié)果類型 由“類型說(shuō)明符”( TT )標(biāo)明;函數(shù)的名字 由類型說(shuō)明符后的“標(biāo)識(shí)符” ( F )標(biāo)明;函數(shù)的形式參數(shù)(cnsh)個(gè)數(shù)和每個(gè)形式參數(shù)(cnsh)的特性 由“參數(shù)(cnsh)列表”標(biāo)明。
12、第14頁(yè)/共59頁(yè)第十四頁(yè),共60頁(yè)。 函數(shù)類型 函數(shù)的結(jié)果類型 缺省 int 類型 結(jié)果類型不能是數(shù)組類型、函數(shù)類型 函數(shù)可以是無(wú)值的,即“無(wú)類型”void 參數(shù)列表(li bio)(parameter-list) 每個(gè)參數(shù)聲明具體說(shuō)明形式: 類型說(shuō)明符 標(biāo)識(shí)符 參數(shù)列表(li bio)形式 T id ,T id ,. ,T id 第15頁(yè)/共59頁(yè)第十五頁(yè),共60頁(yè)。 C允許使用無(wú)參函數(shù),無(wú)參函數(shù)的參數(shù)列表為空,或使用“空類型”的類型說(shuō)明符“void” TT F() TT F (void ) 復(fù)合語(yǔ)句(compound-statement)由聲明和語(yǔ)句列表組成(z chn) 聲明部分具體的
13、說(shuō)明本函數(shù)內(nèi)使用的其它量; 語(yǔ)句部分規(guī)定在本函數(shù)中要執(zhí)行的算法動(dòng)作。 函數(shù)定義的形式: TT F ( T id ,T id ,. ,T id ) . 第16頁(yè)/共59頁(yè)第十六頁(yè),共60頁(yè)。int f(int x, int y, float z)int f(int x,y ; float z)int f(int x,y , float z)第17頁(yè)/共59頁(yè)第十七頁(yè),共60頁(yè)。5.2.2 函數(shù)調(diào)用調(diào)用過(guò)程首先順序計(jì)算實(shí)參表中各實(shí)參值然后把這些值順序傳入形參表的各個(gè)(gg)形參中最后進(jìn)入函數(shù)執(zhí)行復(fù)合語(yǔ)句。一般形式F (U, U, ,U)F ( )例子lines( xa, ya, xc, yc )l
14、ines( xa, ya, xb, yb )printf(“外心坐標(biāo):x=%10.3f y=%10.3f n”,xo,yo)第18頁(yè)/共59頁(yè)第十八頁(yè),共60頁(yè)。主程序調(diào)用函數(shù)返回(fnhu)結(jié)束(jish)函數(shù)(hnsh)第19頁(yè)/共59頁(yè)第十九頁(yè),共60頁(yè)。參數(shù)結(jié)合規(guī)則(guz)靜態(tài)上看,實(shí)參表中的實(shí)參與被調(diào)用函數(shù)中形參表的形參,按位置從左向右依次一一對(duì)應(yīng)對(duì)應(yīng)位置上的形實(shí)參間要賦值兼容各個(gè)實(shí)參的計(jì)算次序是依賴于實(shí)現(xiàn)的。參數(shù)結(jié)合動(dòng)作計(jì)算實(shí)參表達(dá)式的值把實(shí)參的值按賦值轉(zhuǎn)換規(guī)則(guz),轉(zhuǎn)換成形參的類型。如果不能完成該轉(zhuǎn)換,則稱函數(shù)參數(shù)不一致,產(chǎn)生錯(cuò)誤把轉(zhuǎn)換后的實(shí)參值送入形參第20頁(yè)/共59頁(yè)
15、第二十頁(yè),共60頁(yè)。3int f (int x, int y) return x*y;void main()int a=3, b=2,x=9;int c;c=f(a+b,a+x);printf(“%dn”, c);printf(“%dn”, x);29程序(chngx)輸出為:609abx返回值xycmainf內(nèi)存(ni cn)5126060第21頁(yè)/共59頁(yè)第二十一頁(yè),共60頁(yè)。0 xyvzumainf內(nèi)存(ni cn)g返回值返回值n 由左至右#include stdio.h int x,y ; int f( int z ) x=x+1 ; return (z*z); int g( int
16、 u , int v ) void main() x=0 ; g(x,f(2) ; 02144第22頁(yè)/共59頁(yè)第二十二頁(yè),共60頁(yè)。0 xyvzumainf內(nèi)存(ni cn)g返回值返回值n 由右至左#include stdio.h int x,y ; int f( int z ) x=x+1 ; return (z*z); int g( int u , int v ) void main() x=0 ; g(x,f(2) ; 12144第23頁(yè)/共59頁(yè)第二十三頁(yè),共60頁(yè)。n 并行計(jì)算-不知道(zh do)結(jié)果n#include stdio.hn int x,y ; n int f( i
17、nt z ) n x=x+1 ; n return (z*z); n n int g( int u , int v ) n n n void main() n x=0 ; n g(x,f(2) ; n 代碼中參數(shù)值不能依賴(yli)計(jì)算次序!第24頁(yè)/共59頁(yè)第二十四頁(yè),共60頁(yè)。 根據(jù)(gnj)參數(shù)出現(xiàn)的位置 形式參數(shù)函數(shù)聲明(局部于函數(shù)的變量) int f(int x,int y) return x+y; 實(shí)際參數(shù)函數(shù)調(diào)用void main() int a=2,b=3; f(a+b, b); f(2+b,3); 第25頁(yè)/共59頁(yè)第二十五頁(yè),共60頁(yè)。 根據(jù)參數(shù)值的傳遞規(guī)則 值參當(dāng)調(diào)用函數(shù)
18、時(shí),把實(shí)參的值傳入(chun r)形參變量 變參 當(dāng)調(diào)用函數(shù)時(shí),把實(shí)參的地址值傳入(chun r)形參變量 C語(yǔ)言中的參數(shù)都是值參第26頁(yè)/共59頁(yè)第二十六頁(yè),共60頁(yè)。 函數(shù)返回 返回方式: return ; return 表達(dá)式; 函數(shù)運(yùn)行到復(fù)合語(yǔ)句末尾(mwi)(最后那個(gè)閉花括號(hào)“”)后。 例子 return sqrt( (xr-xs)* (xr-xs)+(yr-ys)* (yr-ys) ); return sqrt(s*(s-uv)*(s-uw)*(s-vw) );第27頁(yè)/共59頁(yè)第二十七頁(yè),共60頁(yè)。n 函數(shù)(hnsh)值有返回(fnhu)類型的函數(shù) int f (int x, i
19、nt y) if (x=y) return x; else return y;無(wú)返回(fnhu)類型的函數(shù) void g( int w) if (w=1) return; else x=3;第28頁(yè)/共59頁(yè)第二十八頁(yè),共60頁(yè)。有返回類型函數(shù)的函數(shù)值使用 return e; 向調(diào)用函數(shù)的主程序傳遞函數(shù)值return e ; 的執(zhí)行過(guò)程是:計(jì)算表達(dá)式e的值把表達(dá)式值按賦值轉(zhuǎn)換規(guī)則,轉(zhuǎn)換成函數(shù)的結(jié)果(ji gu)類型;返回語(yǔ)句中表達(dá)式的類型與函數(shù)的結(jié)果(ji gu)類型必須賦值兼容。用類型轉(zhuǎn)換后的值作為函數(shù)值,并帶著它返回到調(diào)用該函數(shù)處第29頁(yè)/共59頁(yè)第二十九頁(yè),共60頁(yè)。 無(wú)返回類型函數(shù)(h
20、nsh)的函數(shù)(hnsh)值 void g( int w) if (w=1) return; else x=3; 在函數(shù)(hnsh)調(diào)用處,所調(diào)函數(shù)(hnsh)無(wú)值可以帶回。 對(duì)于無(wú)類型函數(shù)(hnsh),在函數(shù)(hnsh)調(diào)用處不需要函數(shù)(hnsh)值,這種返回是正常的; 對(duì)于有類型函數(shù)(hnsh),在函數(shù)(hnsh)調(diào)用處極可能需要函數(shù)(hnsh)值參加下一步運(yùn)算,這將帶來(lái)不可預(yù)料的結(jié)果第30頁(yè)/共59頁(yè)第三十頁(yè),共60頁(yè)。5.2.3 先調(diào)用(dioyng)后定義函數(shù)原型為什么使用函數(shù)原型任何標(biāo)識(shí)符都必須聲明(shngmng),而且必須先聲明(shngmng)后使用在聲明(shngmng)定
21、義函數(shù)時(shí)必須保證函數(shù)聲明(shngmng)位置在使用前出現(xiàn)從程序行文順序上控制 一般比較難實(shí)現(xiàn)函數(shù)原型 方便靈活第31頁(yè)/共59頁(yè)第三十一頁(yè),共60頁(yè)。 一般(ybn)形式TT F ( T ,T ,. ,T );TT F ( T id ,T id ,. ,T id ); 例子 float f ( int, float, int, char ) ; float f ( int z, float u, int v, char w ) ;第32頁(yè)/共59頁(yè)第三十二頁(yè),共60頁(yè)。 函數(shù)原型的功能 滿足(mnz)了C標(biāo)識(shí)符先定義后使用的要求 并向編譯系統(tǒng)提供所調(diào)用函數(shù)的信息 函數(shù)返回類型 函數(shù)的參數(shù)個(gè)數(shù)
22、 函數(shù)參數(shù)特性等信息 程序設(shè)計(jì)風(fēng)格 最好把所有函數(shù)原型集中,放在主函數(shù)之前第33頁(yè)/共59頁(yè)第三十三頁(yè),共60頁(yè)。第34頁(yè)/共59頁(yè)第三十四頁(yè),共60頁(yè)。程序設(shè)計(jì)(chn x sh j)實(shí)例 重寫(xiě)打印字符矩陣 重寫(xiě)打印100以內(nèi)素?cái)?shù)(s sh) 驗(yàn)證 Pascal 定理 第35頁(yè)/共59頁(yè)第三十五頁(yè),共60頁(yè)。重寫(xiě)打印字符(z f)方陣 A B C D E F G H I A B C D E F G H I A B C D E F G H I A B B B C D E F G H I A B C D E F G H I A B C C C C C D E F G H I A B C D E
23、F G H I A B C D D D D D D D E F G H I A B C D E F G H I A B C D E E E E E E E E E F G H I A B C D E F G H I A B C D E F F F F F F F F F F FG H I A B C D E F E F G H I A B C D E E E E E E E E E F G H I A B C D E D E F G H I A B C D D D D D D D E F G H I A B C D C D E F G H I A B C C C C C D E F G H I
24、 A B C B C D E F G H I A B B B C D E F G H I A B A B C D E F G H I A B C D E F G H I A打印打印(d yn)前前 6 行行 打印打印(d yn)后后5行行xfor(x=A;x=A;x-)第36頁(yè)/共59頁(yè)第三十六頁(yè),共60頁(yè)。void writelinex(char);void main( ) char x ;for ( x=A;x=A;x-)writelinex(x);第37頁(yè)/共59頁(yè)第三十七頁(yè),共60頁(yè)。void writelinex(char u) / 打印(d yn)第u行char y ;int i
25、;for ( y=u; y=I;y+)printf ( “%c”, y);for ( y=A; y=u-1;y+)printf ( “%c”, y);for( i=1;i=(5-(u-A)*2; i+) printf ( “”); for( i=1;i=2*(u-A)+1;i+) printf ( “%c”, u);for( i=1;i=(5-(u-A)*2); i+)printf ( “”);for ( y=u+1; y=I;y+) printf ( “%c”, y); for ( y=A; y=u;y+) printf ( “%c”, y);printf ( “n”);第38頁(yè)/共59頁(yè)第
26、三十八頁(yè),共60頁(yè)。重寫(xiě)打印(d yn)100以內(nèi)素?cái)?shù) for (i=2;i=2;j-)return true i%j = 0第39頁(yè)/共59頁(yè)第三十九頁(yè),共60頁(yè)。#include “stdio.h”bool prime( int );void main( ) int i ; for ( i = 2 ;i = 2 ; j- ) if ( n%j = 0 )return false ; return true ;第40頁(yè)/共59頁(yè)第四十頁(yè),共60頁(yè)。驗(yàn)證(ynzhng) Pascal 定理 圓內(nèi)接六邊形三雙對(duì)邊延線的交點(diǎn)(jiodin)在一條直線上ABCDEFB1B2B3讀入六個(gè)極角的值求六個(gè)
27、頂點(diǎn)A, B, C, D, E, F 在直角坐標(biāo)系中的坐標(biāo)求三雙對(duì)邊交點(diǎn)B1, B2, B3 坐標(biāo)驗(yàn)證B1, B2, B3 是否在一條直線上開(kāi)始結(jié)束第41頁(yè)/共59頁(yè)第四十一頁(yè),共60頁(yè)。 將6個(gè)點(diǎn)的極坐標(biāo)轉(zhuǎn)換成直角坐標(biāo)(zh jio zu bio) 已知極角theta,矢徑r,求一點(diǎn)(y din)的直角坐標(biāo)(px, py)coordinatepx=r*cos(theta);py=r*sin(theta);returntrans_abcdef 轉(zhuǎn)換a xa , ya轉(zhuǎn)換b xb , yb轉(zhuǎn)換d xd , yd 轉(zhuǎn)換f xf , yf轉(zhuǎn)換e xe , ye轉(zhuǎn)換c xc , ycreturn第42
28、頁(yè)/共59頁(yè)第四十二頁(yè),共60頁(yè)。 求交點(diǎn)(jiodin)B1,B2,B3的坐標(biāo) 已知四點(diǎn)r, s, t, u求兩條直線(zhxin)交點(diǎn)Bthree_inter求AB 、DE交點(diǎn)B1求BC 、EF交點(diǎn)B2求CD 、FA交點(diǎn)B3returnintersection 求r, s ; t, u直線方程l1, l2求l1、l2交點(diǎn)Breturn第43頁(yè)/共59頁(yè)第四十三頁(yè),共60頁(yè)。 已知四點(diǎn)r, s, t, u求兩條直線(zhxin)l1,l2的方程 已知兩點(diǎn)坐標(biāo)px, py, qx, qy, 求直線(zhxin)的斜率a和截距bequtionreturn求r,s直線方程l1求t,u直線方程l2s
29、traightline b=(py*qx-qy*px)/(qx-px)return a=(py-qy)/(px-qx)第44頁(yè)/共59頁(yè)第四十四頁(yè),共60頁(yè)。 已知兩條直線方程(fngchng)斜率分別為ma, na; 截距mb, nb;求直線交點(diǎn)(wx, wy) 驗(yàn)證(ynzhng)B1, B2, B3是否在一條直線上interwx=(nb-mb)/(ma-na); wy=ma*px+mb; returntestreturn 求過(guò)B1, B2直線方程L判斷B3是否在直線L上第45頁(yè)/共59頁(yè)第四十五頁(yè),共60頁(yè)。/*PROGRAM Pascal theorem*/#include math.
30、h#include stdio.h#define PI 3.1415927#define eps 1e-5float radius; /* 圓的半徑 */float theta1, theta2, theta3, theta4, theta5, theta6; / * 六個(gè)極角的度數(shù) */float xa, ya, xb, yb, xc, yc, xd, yd, xe, ye, xf, yf; /* 六個(gè)頂點(diǎn)的直角坐標(biāo)(zh jio zu bio) */float b1_x, b1_y, b2_x, b2_y, b3_x, b3_y; /* 三個(gè)交點(diǎn)的直角坐標(biāo)(zh jio zu bio) *
31、/ float b12_a, b12_b; /*B1和B2構(gòu)成直線的斜率和截距*/第46頁(yè)/共59頁(yè)第四十六頁(yè),共60頁(yè)。/*主程序之前這段為“函數(shù)原型”以及各個(gè)函數(shù)返回結(jié)果所用變量*/void trans_abcdef();float px, py; /* 用來(lái)保存coordinate()轉(zhuǎn)換(zhunhun)的直角坐標(biāo) */void coordinate (float, float);void three_inter();void intersection (float, float, float, float, float, float, float, float);float l1_a
32、, l1_b, l2_a, l2_b; /* 兩條直線的斜率和截距 */void equation (float, float, float, float, float, float, float, float);float a, b; /* 直線方程的斜率和截距 */void straightline(float, float, float, float);float wx, wy; /* 直線交點(diǎn)的直角坐標(biāo) */void inter (float, float, float, float);int test (float, float, float, float, float, float
33、);第47頁(yè)/共59頁(yè)第四十七頁(yè),共60頁(yè)。/*主函數(shù)(hnsh)*/void main() /*讀入圓形的半徑*/ printf(please input the radius of the circle:); scanf(%f, &radius); /*讀入六個(gè)角*/ printf(please input six angle:); scanf(%f %f %f %f %f %f, &theta1, &theta3, &theta3, &theta4, &theta5, &theta6); trans_abcdef(); /*計(jì)算六個(gè)
34、定點(diǎn)坐標(biāo)*/ three_inter(); /*求三個(gè)交點(diǎn)*/ if( test(b1_x, b1_y, b2_x, b2_y, b3_x, b3_y) ) /*驗(yàn)證*/ printf(ok); else printf(There is an error when:n); printf(theta1=%d theta2=%dn, theta1, theta2); printf(theta3=%d theta4=%dn, theta3, theta4); printf(theta5=%d theta6=%dn, theta5, theta6); 第48頁(yè)/共59頁(yè)第四十八頁(yè),共60頁(yè)。/*計(jì)算六
35、個(gè)頂點(diǎn)(dngdin)坐標(biāo)*/void trans_abcdef() coordinate(radius, theta1); xa=px; ya=py; coordinate(radius, theta2); xb=px; yb=py; coordinate(radius, theta3); xc=px; yc=py; coordinate(radius, theta4); xd=px; yd=py; coordinate(radius, theta5); xe=px; ye=py; coordinate(radius, theta6); xf=px; yf=py;第49頁(yè)/共59頁(yè)第四十九頁(yè)
36、,共60頁(yè)。/*計(jì)算(j sun)一個(gè)頂點(diǎn)坐標(biāo)*/void coordinate(float r, float theta) /* 先把“角度”轉(zhuǎn)換成“弧度”,再轉(zhuǎn)換成直角坐標(biāo) */ px=r*cos(PI*theta/180); py=r*sin(PI*theta/180);第50頁(yè)/共59頁(yè)第五十頁(yè),共60頁(yè)。/*求三個(gè)交點(diǎn)(jiodin)*/void three_inter() intersection(xa, ya, xb, yb, xd, yd, xe, ye); b1_x=wx; b1_y=wy; intersection(xb, yb, xc, yc, xe, ye, xf, yf); b2_x=wx; b2_y=wy; intersection(xc, yc, xd, yd, xf, yf, xa, ya); b3_x=wx; b3_y=wy;第51頁(yè)/共59頁(yè)第五十一頁(yè),共60頁(yè)。/*已知四點(diǎn),求兩條直線(zhxin)交點(diǎn)*/void intersection(float rx, float ry, float sx, floa
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 日用百貨買(mǎi)賣(mài)合同
- 2025年泰安普通貨運(yùn)從業(yè)資格證模擬考試
- 公司內(nèi)部溝通平臺(tái)使用記錄表格(電子版)
- 商場(chǎng)多經(jīng)點(diǎn)位租賃合同
- 執(zhí)行和解協(xié)議書(shū)范例8篇
- 2025年高中化學(xué)新教材同步 必修第一冊(cè) 第1章 階段重點(diǎn)突破練(一)
- 小額放貸公司合同范本
- 按揭車(chē)轉(zhuǎn)讓合同范本
- 液晶聚合物L(fēng)CP戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 大學(xué)計(jì)算機(jī)基礎(chǔ)(Windows10+Office2016)PPT完整全套教學(xué)課件
- 精素材:描寫(xiě)植物的好詞好句好段
- 【高中語(yǔ)文】《登岳陽(yáng)樓》課件17張+統(tǒng)編版高中語(yǔ)文必修下冊(cè)
- 華師大版八年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)教案
- 四下語(yǔ)文學(xué)情分析-2
- 家園合作培養(yǎng)幼兒勞動(dòng)行為習(xí)慣的行動(dòng)研究
- 中國(guó)的能源安全 課件
- 鄭州市某路雨水污水改造工程施工組織設(shè)計(jì)
- 對(duì)口升學(xué)計(jì)算機(jī)組裝試卷答案
- 期末總結(jié)600字四篇
- DCDC中恒定導(dǎo)通時(shí)間控制模式COT介紹
評(píng)論
0/150
提交評(píng)論