【文章內(nèi)容簡(jiǎn)介】
c == ?1? ) value += ( int ) power( 2 , i ) 。 } //調(diào)用 power()函數(shù) cout “十進(jìn)制數(shù):” value endl 。 } double power ( double x , int n ) //power()函數(shù)的定義性聲明 { double t = 1 。 while ( n ) t *= x 。 return t 。 } 運(yùn)行: 請(qǐng)輸入一個(gè) 8位二進(jìn)制數(shù): 11010001↙ 十進(jìn)制數(shù): 209 【 例 】 (求 π的值, arctan(x) 用級(jí)數(shù)計(jì)算,直到某項(xiàng)絕對(duì)值不大于 1015為止。 ) include include void main ( ) { double a , b 。 double arctan ( double x ) 。 //arctan()函數(shù)的引用性聲明,即原型聲明 a = 16 * arctan ( 1 / 5. ) 。 //調(diào)用 arctan()函數(shù),且如果寫成 1/5,結(jié)果就都是 0 b = 4 * arctan ( 1 / ) 。 //調(diào)用 arctan()函數(shù),且如果寫成 1/239,結(jié)果就都是 0 cout “π= ” ( ab ) endl 。 } double arctan ( double x ) //arctan()函數(shù)的定義性聲明 { double t = x , sum = 0 。 for ( int sign=1 , i=1 。 fabs( t / i ) 1e15 。 i+=2 ) { sum += sign * t / i 。 t = t * x * x 。 sign *= 1 。 } return sum 。 } ?????????????? 23 91a r c t a n451a r c t a n16? ?????? 753)a r c t a n ( 753 xxxxx運(yùn)行: π= 【 例 】 (找出 11~999 之間的數(shù) m,使之滿足 m、 m m3均為回文數(shù)。 回文:各位數(shù)字左右對(duì)稱的整數(shù)。例: 1 112=12 113=1331,則輸出 11。) 分析:從最低位開始,用除 10取余的方法,依次取出該數(shù)的各位數(shù)字; 按反序重新構(gòu)成新的數(shù),若新數(shù)與原數(shù)完全相等,則原數(shù)為回文。 include void main ( ) { bool symm ( int n ) 。 //symm()函數(shù)的引用性聲明,即原型聲明 for ( int m=11 。 m=999 。 m++ ) if ( symm( m ) amp。amp。 symm( m*m ) amp。amp。 symm( m*m*m ) ) cout “m=” m “\tm*m=” m*m “\tm*m*m=” m*m*m endl 。 } bool symm ( int n ) //symm()函數(shù)的功能是判斷整數(shù) n是否是回文 { for ( int i=n , m=0 。 i != 0 。 i = i/10 ) m = m*10 + i%10 。 // m是新構(gòu)的數(shù) return ( m == n ) 。 } 運(yùn)行: m=11 m*m=121 m*m*m=1331 m=101 m*m=10201 m*m*m=1030301 m=111 m*m=12321 m*m*m=1367631 【 例 】 (求如下公式, r 和 s 值鍵盤輸入, SIN(x)用級(jí)數(shù)計(jì)算,計(jì)算精度為 103。) include include void main ( ) { double tsin ( double ) 。 double k , r , s 。 cout “請(qǐng)輸入 r 和 s 的值:” 。 cin r s 。 if ( r*r = s*s ) k = sqrt ( tsin( r ) * tsin( r ) + tsin( s ) * tsin( s ) ) 。 else k = tsin( r*s ) / 2 。 cout “r = ” r “\ts = ” s “\t k = ” k endl 。 } double tsin ( double x ) { double sum = 0 , t = x 。 for ( int i=1, sign=1, p=1 。 fabs( t/p ) = 1e3 。 sign *= 1 ) { sum += sign * t / p 。 t = t * x * x 。 i += 2 。 p = p * i * (i1) 。 } return sum 。 } ?????????222222r)*(21r)()(ssrS I NssS I NrS I Nk當(dāng)當(dāng)????????????? 1121753)!12()1(!7!5!3!1 nnnnxxxxxS I N x ?運(yùn)行: 請(qǐng)輸入 r 和 s 的值: 3 1↙ r = 3 s = 1 k = 全局變量及其作用域 ? 關(guān)于全局變量: ① 作用: 若程序中的某個(gè)變量要被多個(gè)函數(shù)所訪問,可將其定義為全局變量。 ② 全局變量: 指 定義在函數(shù)之外的變量。 ③ 作用域: 全局變量可以定義在函數(shù)外的任何位置,一旦在某個(gè)位置定義了全局變量,其后的任何函數(shù)均可以訪問該全局變量。 ④ 存儲(chǔ)類型: 全局變量存放在全局?jǐn)?shù)據(jù)區(qū)(靜態(tài)區(qū)),分配該區(qū)時(shí)內(nèi)存自動(dòng)初始化為 0,因此全局變量若不做初始化,其初值為 0。 ⑤ 生存期: 全局變量在程序開始運(yùn)行時(shí)就在全局區(qū)分配,程序運(yùn)行結(jié)束才被釋放。 局部變量及其作用域 ? 關(guān)于局部變量: ① 塊的概念: 指程序中用花括號(hào)“ { }”括起來的一個(gè)程序段,稱為一個(gè)塊。 ② 局部變量: 指定義在函數(shù)之內(nèi)或某個(gè)塊內(nèi)的變量。 ③ 作用域: 局部變量可以定義在塊內(nèi)的任何位置,一旦在塊內(nèi)的某個(gè)位置定義了局部變量,只能在該塊內(nèi)該位置之后的那個(gè)區(qū)域內(nèi)才可以訪問該局部變量。 ④ 存儲(chǔ)類型: auto自動(dòng)類型局部變量、 static靜態(tài)類型局部變量。 ⑤ auto自動(dòng)局部變量: 存放在局部數(shù)據(jù)區(qū)(棧區(qū)),分配棧區(qū)時(shí)內(nèi)存不做初始化,因此 auto局部變量若不做初始化,其初值不確定。 ⑥ static靜態(tài)局部變量: 存放在全局?jǐn)?shù)據(jù)區(qū)(靜態(tài)區(qū)), 分配該區(qū)時(shí)內(nèi)存自動(dòng)初始化為 0,因此 static局部變量若不做初始化,其初值為 0。 C++程序的內(nèi)存布局 ? 操作系統(tǒng)為一個(gè) C++程序運(yùn)行定義了四個(gè)內(nèi)存區(qū)域: ① 代碼區(qū) ━━ 存放程序代碼。 ② 全局?jǐn)?shù)據(jù)區(qū)(靜態(tài)區(qū)) ━━ 存放全局變量、 static靜態(tài)局部變量。全局變量在程序開始運(yùn)行時(shí)就在該區(qū)分配; static靜態(tài)局部變量在程序運(yùn)行中第一次進(jìn)入其作用域時(shí)在該區(qū)分配。二者都是直到程序運(yùn)行結(jié)束才被釋放。 ③ 局部數(shù)據(jù)區(qū)(棧區(qū)) ━━ 存放 auto局部變量。 在程序運(yùn)行到其作用域時(shí)在棧區(qū)分配,但怎樣分配在編譯時(shí)就已經(jīng)確定。 auto局部變量在離開其作用域時(shí)即被釋放。 ④ 動(dòng)態(tài)數(shù)據(jù)區(qū)(自由存儲(chǔ)區(qū)、堆區(qū)) ━━ 存放運(yùn)行時(shí)由 new運(yùn)算符動(dòng)態(tài)創(chuàng)建的變量。動(dòng)態(tài)創(chuàng)建的變量在編譯時(shí)無法為它們預(yù)定存儲(chǔ)空間,系統(tǒng)根據(jù)運(yùn)行時(shí)的具體要求在該區(qū)進(jìn)行分配。在該區(qū)的變量必須用 delete運(yùn)算符才能將其釋放。 標(biāo)識(shí)符的作用域 ? 作用域: 指程序中標(biāo)識(shí)符(如變量名