第一篇:表值函數(shù)是數(shù)據(jù)庫中一種較為特殊的函數(shù)類型
表值函數(shù)是數(shù)據(jù)庫中一種較為特殊的函數(shù)類型,它的返回值不再只是一個數(shù)值或一個字符串,而是一張數(shù)據(jù)表。也就是說表值函數(shù)返回的是 table 數(shù)據(jù)類型。對于內聯(lián)表值函數(shù),沒有函數(shù)主體;表是單個 SELECT 語句的結果集。使用表值函數(shù)的時候,把函數(shù)直接當成是表或視圖使用,表值函數(shù)的參數(shù)傳入方法與標量函數(shù)沒有區(qū)別。
第二篇:§4.4幾種特殊類型函數(shù)的積分
§4? 4幾種特殊類型函數(shù)的積分
一、有理函數(shù)的積分
有理函數(shù)的形式?
有理函數(shù)是指由兩個多項式的商所表示的函數(shù)? 即具有如下形式的函數(shù):
P(x)a0xn?a1xn?1?????an?1x?an?? Q(x)b0x?b1x?????bm?1x?bm
其中m和n都是非負整數(shù)??a0? a1? a2? ? ? ? ? an及b0? b1? b2? ? ? ? ? bm都是實數(shù)?并且a0?0? b0?0? 當n?m時? 稱這有理函數(shù)是真分式? 而當n?m時? 稱這有理函數(shù)是假分式?假分式總可以化成一個多項式與一個真分式之和的形式? 例如
x3?x?1?x(x2?1)?1?x?1?x2?1x2?1x2?1
真分式的不定積分?
求真分式的不定積分時? 如果分母可因式分解? 則先因式分解? 然后化成部分分式再積分?
????例1 求?
????解 x?3dx?x?5x?6?x2?5x?6dx??(x?2)(x?3)dx??(x?3?x?2dx x?3x?365
??6dx??5dx?6ln|x?3|?5ln|x?2|?C?x?3x?2
提示?(A?B)x?(?2A?3B)x?3??A?B?(x?2)(x?3)x?3x?2(x?2)(x?3)
A?B?1? ?3A?2B?3? A?6? B??5?
分母是二次質因式的真分式的不定積分?
例2 求?
????解 x?2dx?x?2x?3?x2?2x?3dx??(2x2?2x?3?3x2?2x?3)dx x?212x?21
?1?22x?2?3?212x?2x?3x?2x?3
d(x2?2x?3)d(x?1)1?3???2 2x?2x?3(x?1)2?()2
x?1?C??1lnx(2?2x?3)?3arct21(2x?2)?3提示? 2x?2?2??1?2x?2?3?21x?2x?3x?2x?32x?2x?3x?2x?3
????例3 求?
????解 1dx? x(x?1)111?x(x?1)2dx??[x?x?1?(x?1)2]dx 1
??1dx??1dx??1
2dx?ln|x|?ln|x?1|?1?C? x?1xx?1(x?1)
提示? 1?1?x?x??1?1 x(x?1)(x?1)x(x?1)x(x?1)??1?x?x?1
2?1?1?1
2?x(x?1)(x?1)xx?1(x?1)
二、三角函數(shù)有理式的積分
三角函數(shù)有理式是指由三角函數(shù)和常數(shù)經(jīng)過有限次四則運算所構成的函數(shù)? 其特點是分子分母都包含三角函數(shù)的和差和乘積運算? 由于各種三角函數(shù)都可以用sin x 及cos x 的有理式表示?故三角函數(shù)有理式也就是sin x、cos x 的有理式?
用于三角函數(shù)有理式積分的變換:
把sin x、cos x表成tanx的函數(shù)? 然后作變換u?tanx? 22
2tax2tax
??2u?x?2sixcox?sin222sec221?u1?tan22
2x1?tan?1?u2?2x2x?sin?cosx?cos22sec1?u22
變換后原積分變成了有理函數(shù)的積分?
????例4 求?1?sinxdx?sinx(1?cosx)
2????解 令u?tanx? 則sinx?2u
2? cosx?1?u
2? x?2arctan u ?dx?2
2du?21?u1?u1?u
(1?2u
2)2du?1(u?2?1du 于是?1?sinxdx??2?usinx(1?cosx)2u(1?1?u21?u2
221?u1?u
2?1(u?2u?ln|u|)?C?1tan2x?tanx?1ln|tx|?C?4222222
????解 令u?tanx? 則2
(1?2u
2?2
2du?1?sinxdx??2sinx(1?cosx)2u(1?1?u)1?u
1?u21?u2
2?1(u?2u?ln|u|)?C?1?(u?2?1du222u
?1tan2x?tanx?1ln|tx|?C?42222
說明: 并非所有的三角函數(shù)有理式的積分都要通過變換化為有理函數(shù)的積分???例如?cosx1?1?sinxdx??1?sinxd(1?sinx)?ln(1?sinx)?C?
三、簡單無理函數(shù)的積分
無理函數(shù)的積分一般要采用第二換元法把根號消去? ????例5 求?x?1dx?x
????解 設x?1?u? 即x?u2?1? 則
?x?1dx?u?2udu?2u2 ?u?1?u?1x
?2?(1?1)du?2(u?arctanu)?C 1?u
?2(x?1?arctx?1)?C?
????例6 求?dx?1?x?2
????解 設x?2?u? 即x?u3?2? 則
2dx1u2????3udu?3??1?1 1?u1?x?21?u
21u?3?(u?1?du?3(?u?ln|1?u|)?C 1?u2
?3x?2)2?x?2?ln|1?x?2|?C?2
????例7 求?dx?(1?x)x????解 設x?t 6? 于是dx ?6t 5d t ?從而
dx6t5dt?6t2dt1??(1?3x)x?(1?t)t?1?t?6?(1?1?t2dt?6(t?arctant)?C
?6(?arctx)?C?
????例8 求?1?xdx? xx
????解 設?x?t? 即x?1? 于是 t?1x
?x1?xdx?(t2?1)t??2t ?x(t?1)2??2?tdt??2?(1?1)dt t?1t?1
??2t?ln|t?1|?C t?1
?x?ln?x??C??2? x?x?
練習
1?求?dx?2?cosx
x21?t2
?則有dx???dtcosx?2221?t1?t解?作變換t?tan
2dt
221tdx1??1?t2?2?? ?ddt?t1?t2?cosx3?t231?()22?21?t3
?2
arctant
?C?2
31xtan)?C?23
sin5x2?求?dx?cos4x
24(1?cosx)2sin5xsinx解??dx???dcosx???dcosx 44cos4xcosxcosx
21???(1??)dcosx 24cosxcosx
??cosx?
3?求?
解?21??C?3cosx3cosx?3x?1dx?x2?3x?23x?13x?174??dx??(dx?)dx(x?2)(x?1)x2?3x?2x?2x?1
11dx?4?dx x?2x?1
?7ln|x?2|?4ln|x?1|?C?
?7?
第三篇:藏頭詩是詩歌中一種特殊形式的詩體
藏頭詩是詩歌中一種特殊形式的詩體,它以每句詩的頭一個字嵌入你要表達的內容中的一個字。全詩的每句中的頭一個字又組成一個完整的人名、地名、企業(yè)名或一句祝福。藏頭詩涵義深、品位高、價值重,可謂一字千金。
藏頭詩瑣談
在中華詩歌百花園里,除了常見的詩、詞、曲以外,還存在大量的另類詩歌----雜詩。具有代表性有:回環(huán)(文)詩、剝皮詩、離合詩、寶塔詩、字謎詩、轆轤詩、八音歌詩、藏頭詩、打油詩、詼諧詩、集句詩、聯(lián)句詩、百年詩、嵌字句首詩、絕弦體詩、神智體詩等40多種。這些雜體詩各有特點,有些純粹是游戲,有些則具有一定的思想性和藝術性,深受人們的喜愛,流傳至今。
藏頭詩,又名“藏頭格”,是雜體詩中的一種,有三種形式:一種是首聯(lián)與中二聯(lián)六句皆言所寓之景,而不點破題意,直到結聯(lián)才點出主題;二是將詩頭句一字暗藏于末一字中;三是將所說之事分藏于詩句之首。現(xiàn)在常見的是第三種種,每句的第一個字連起來讀,可以傳達作者的某種特有的思想。所以,藏頭詩從誕生之日起,便打上了游戲和實用雙重印跡。
由于藏頭詩“俗文化”的特性,注定其難登大雅之堂,不為正史和正集收錄,從古至今,藏頭詩多在民間流傳,或散見于古典戲曲、小說。如《水滸傳》中梁山為了拉盧俊義入伙,“智多星”吳用和宋江便生出一段“吳用智賺玉麒麟”的故事來,利用盧俊義正為躲避“血光之災”的惶恐心理,口占四句卦歌:
蘆花叢中一扁舟,俊杰俄從此地游。
義士若能知此理,反躬難逃可無憂。
暗藏“盧俊義反”四字,廣為傳播。結果,成了官府治罪的證據(jù),終于把盧俊義“逼”上了梁山。廬劇《無雙緣》中,雙寫也以藏頭詩表明心志:“早妝未罷暗凝眉,迎戶愁看紫燕飛,無力回天春已老,雙棲畫棟不如歸?!卑挡亍霸缬瓱o雙”四字。
文人士大夫中也不乏藏頭詩高手。比如明朝大學問家徐渭(字文長)游西湖,面對平湖秋月勝景,即席寫下了七絕一首:
平湖一色萬頃秋,湖光渺渺水長流。
秋月圓圓世間少,月好四時最宜秋。
其中就藏頭“平湖秋月”四字。在當今的文化人中,也有人能將藏頭詩用的恰到好處。香港鳳凰臺當家小旦吳小莉當作客“華西都市報”時,即送上賀詞:
華夏之光,西部翹楚,都會雄風,市鎮(zhèn)豪情,報業(yè)先鋒。
仔細讀來也是一首藏頭詩,每句詩的第一個字連起來就是“華西都市報”。
隨著網(wǎng)絡時代的到來,網(wǎng)絡交流的興盛,藏頭詩在網(wǎng)上更是大行其道,不僅有專門的網(wǎng)站“中國藏頭詩網(wǎng)”,各詩詞論壇寫手也創(chuàng)作出大量的、以網(wǎng)名為主題的藏頭詩。如筆者應網(wǎng)友唐生之邀所作藏頭詩“續(xù)清華我好喜歡你”兩首之一:
續(xù)續(xù)連連百步階,清光暗淡鎖重霾。
華山無路不艱險,我輩有時當遣差。
好景天然收鳥道,喜顏著意現(xiàn)形骸。
歡歌絕頂呼紅日,你與唐生共興懷。
在當今市場經(jīng)濟條件下,一些人人心浮燥、急功近利,也將目光投向了這一傳統(tǒng)詩種,幻想靠走偏門或得名、或得利。于是出現(xiàn)以藏頭詩為商品貨利、號稱“擺攤賣詩第一人”的余樂平先生。他用名字給人作詩,在旅游旺季十分紅火,最多時月收入達到近萬元。31歲的??谇嗄晖鯅^以藏頭詩為突破口創(chuàng)“世界紀錄”,用一千余首藏頭詩評點了一千余名古今中外名人,企圖據(jù)此申報吉尼斯世界紀錄。
如《劉曉慶》:
劉姐門前盛小花,曉保川上多麻辣。
慶幸唐宮溢風華,沉浮一生只為家。
《謝霆鋒》
謝客醉斟共杯潺,霆空無雨云自散。
鋒寒久別飲沙場,吟盡離騷盟風涼。
《張藝謀》
張弓不為步后羿,藝高何處不可取。
謀籌生擒奧斯卡,力斬嘎納金棕櫚。
等等。
近年,教育界也開始注意到此類怪異詩體,認為藏頭詩對加快青少年大腦運作效率、豐富詞匯、提高語文水平有一定的促進作用。3月30日,來自北京文聯(lián)、北京民間文藝家協(xié)會等組織的相關人士在北京市崇文門回民小學宣布“學寫藏頭詩,打造民間文學傳承基地”正式啟動。這種讓兒童嘗試怪異詩創(chuàng)作的做法一經(jīng)傳出,便在學界引起爭論。中國民協(xié)副主席,北京民協(xié)主席趙書認為:“藏頭詩是我國特有的文化現(xiàn)象,作為一種民間文化遺產(chǎn),應該滲透在對小學生的教育中,這樣才能得以傳承。”
當然,藏頭詩和其他文學形式一樣,如果使用不當也會帶來不必要的麻煩。2004年11月15日,便民眼鏡城在《遷安時訊》報上登載由自己提供廣告詞的廣告,內容為:便民誠信規(guī)模大,民心所向送光明。
偉業(yè)不亢又不卑,大膽創(chuàng)新非昔比。
廣告詞的每句話在報上上下排列,四句的第一字連起來是“便民偉大”,最后一字連起念是“大明卑比”。該廣告刊載后被大明眼鏡有限公司告上法庭。法院審理認為,便民眼鏡城公開抬高自己貶低他人,損害了大明眼鏡有限公司的名譽,是違法行為。鑒于被告存在著主觀故意過錯,判決便民眼鏡城在《遷安時訊》報上為大明眼鏡有限公司恢復名譽,并賠禮道歉。
第四篇:拷貝構造函數(shù)的參數(shù)類型必須是引用
拷貝構造函數(shù)的參數(shù)類型必須是引用
在C++中,構造函數(shù),拷貝構造函數(shù),析構函數(shù)和賦值函數(shù)(賦值運算符重載)是最基本不過的需要掌握的知識。但是如果我問你“拷貝構造函數(shù)的參數(shù)為什么必須使用引用類型?”這個問題,你會怎么回答? 或許你會回答為了減少一次內存拷貝? 很慚愧的是,我的第一感覺也是這么回答。不過還好,我思索一下以后,發(fā)現(xiàn)這個答案是不對的。
原因:
如果拷貝構造函數(shù)中的參數(shù)不是一個引用,即形如CClass(const CClass c_class),那么就相當于采用了傳值的方式(pass-by-value),而傳值的方式會調用該類的拷貝構造函數(shù),從而造成無窮遞歸地調用拷貝構造函數(shù)。因此拷貝構造函數(shù)的參數(shù)必須是一個引用。
需要澄清的是,傳指針其實也是傳值,如果上面的拷貝構造函數(shù)寫成CClass(const CClass* c_class),也是不行的。事實上,只有傳引用不是傳值外,其他所有的傳遞方式都是傳值。
先從一個小例子開始:(自己測試一下自己看看這個程序的輸出是什么?)
[cpp] view plain copy #include
using namespace std;
class CExample
{
private:
int m_nTest;
public:
CExample(int x): m_nTest(x)
//帶參數(shù)構造函數(shù)
{
cout << “constructor with argument”< } // 拷貝構造函數(shù),參數(shù)中的const不是嚴格必須的,但引用符號是必須的 CExample(const CExample & ex) //拷貝構造函數(shù) { m_nTest = ex.m_nTest; cout << “copy constructor”< } CExample& operator =(const CExample &ex) //賦值函數(shù)(賦值運算符重載) { cout << “assignment operator”< m_nTest = ex.m_nTest; return *this; } void myTestFunc(CExample ex) { } }; int main(void) { CExample aaa(2); CExample bbb(3); bbb = aaa; CExample ccc = aaa; bbb.myTestFunc(aaa); return 0; } 這個例子的輸出結果是: [cpp] view plain copy constructor with argument // CExample aaa(2); constructor with argument // CExample bbb(3); assignment operator // bbb = aaa; copy constructor // CExample ccc = aaa; copy constructor // bbb.myTestFunc(aaa); 如果你能一眼看出就是這個結果的話,恭喜你,可以站起來扭扭屁股,不用再往下看了。 如果你的結果和輸出結果有誤差,那拜托你謙虛的看完。 第一個輸出: constructor with argument // CExample aaa(2); 如果你不理解的話,找個人把你拖出去痛打一頓,然后嘴里還喊著“我是二師兄,我是二師兄.......” 第二個輸出:constructor with argument // CExample bbb(3); 分析同第一個 第三個輸出: assignment operator // bbb = aaa; 第四個輸出: copy constructor // CExample ccc = aaa; 這兩個得放到一塊說。肯定會有人問為什么兩個不一致。原因是,bbb對象已經(jīng)實例化了,不需要構造,此時只是將aaa賦值給bbb,只會調用賦值函數(shù),就這么簡單,還不懂的話,撞墻去!但是ccc還沒有實例化,因此調用的是拷貝構造函數(shù),構造出ccc,而不是賦值函數(shù),還不懂的話,我撞墻去! 第五個輸出: copy constructor // bbb.myTestFunc(aaa); 實際上是aaa作為參數(shù)傳遞給bbb.myTestFunc(CExample ex),即CExample ex = aaa;和第四個一致的,所以還是拷貝構造函數(shù),而不是賦值函數(shù),如果仍然不懂,我的頭剛才已經(jīng)流血了,不要再讓我撞了,你就自己使勁的再裝一次吧。 通過這個例子,我們來分析一下為什么拷貝構造函數(shù)的參數(shù)只能使用引用類型。 看第四個輸出: copy constructor // CExample ccc = aaa; 構造ccc,實質上是ccc.CExample(aaa);我們假如拷貝構造函數(shù)參數(shù)不是引用類型的話,那么將使得 ccc.CExample(aaa)變成aaa傳值給ccc.CExample(CExample ex),即CExample ex = aaa,因為 ex 沒有被初始化,所以 CExample ex = aaa 繼續(xù)調用拷貝構造函數(shù),接下來的是構造ex,也就是 ex.CExample(aaa),必然又會有aaa傳給CExample(CExample ex), 即 CExample ex = aaa;那么又會觸發(fā)拷貝構造函數(shù),就這下永遠的遞歸下去。 所以繞了那么大的彎子,就是想說明拷貝構造函數(shù)的參數(shù)使用引用類型不是為了減少一次內存拷貝,而是避免拷貝構造函數(shù)無限制的遞歸下去。 附帶說明,在下面幾種情況下會調用拷貝構造函數(shù): a、顯式或隱式地用同類型的一個對象來初始化另外一個對象。如上例中,用對象c初始化d; b、作為實參(argument)傳遞給一個函數(shù)。如CClass(const CClass c_class)中,就會調用CClass的拷貝構造函數(shù); c、在函數(shù)體內返回一個對象時,也會調用返回值類型的拷貝構造函數(shù); d、初始化序列容器中的元素時。比如 vector e、用列表的方式初始化數(shù)組元素時。string a[] = {string(“hello”), string(“world”)};會調用string的拷貝構造函數(shù)。 如果在沒有顯式聲明構造函數(shù)的情況下,編譯器都會為一個類合成一個缺省的構造函數(shù)。如果在一個類中聲明了一個構造函數(shù),那么就會阻止編譯器為該類合成缺省的構造函數(shù)。和構造函數(shù)不同的是,即便定義了其他構造函數(shù)(但沒有定義拷貝構造函數(shù)),編譯器總是會為我們合成一個拷貝構造函數(shù)。 另外函數(shù)的返回值是不是引用也有很大的區(qū)別,返回的不是引用的時候,只是一個簡單的對象,此時需要調用拷貝構造函數(shù),否則,如果是引用的話就不需要調用拷貝構造函數(shù)。[cpp] view plain copy #include using namespace std; class A { private: int m_nTest; public: A() { } A(const A& other) //構造函數(shù)重載 { m_nTest = other.m_nTest; cout << “copy constructor”< } A & operator =(const A& other) { if(this!= &other) { m_nTest = other.m_nTest; cout<<“Copy Assign”< } return *this; } }; A fun(A &x) { return x; //返回的不是引用的時候,需要調用拷貝構造函數(shù) } int main(void) { A test; fun(test); system(“pause”); return 0; } 分享一道筆試題目,編譯運行下圖中的C++代碼,結果是什么?(A)編譯錯誤;(B)編譯成功,運行時程序崩潰;(C)編譯運行正常,輸出10。請選擇正確答案并分析原因。 [cpp] view plain copy class A { private: int value; public: A(int n) { value = n; } A(A other) { value = other.value; } void Print() { cout< } }; int main(void) { A a = 10; A b = a; b.Print(); return 0; } 答案:編譯錯誤。在復制構造函數(shù)中傳入的參數(shù)是A的一個實例。由于是傳值,把形參拷貝到實參會調用復制構造函數(shù)。因此如果允許復制構造函數(shù)傳值,那么會形成永無休止的遞歸并造成棧溢出。因此C++的標準不允許復制構造函數(shù)傳值參數(shù),而必須是傳引用或者常量引用。在Visual Studio和GCC中,都將編譯出錯。