發表文章

目前顯示的是 9月, 2025的文章

2+tan^2(x) 的積分

Integration of 2+tan^2(x)  求解 $\int (2+\tan^2 x)dx$ 解: $$\int (2+\tan^2 x)dx = \int \left[1+(1+\tan^2 x)\right ]dx\;\;\;\;\;\;\;\;\;$$ $$\;\;\;\;\;\;\;\;=\int \left[1+\sec^2 x\right]dx$$ $$\;\;\;\;\;\;\;\;\;\;\;=\int dx + \int d(\tan x)$$ $$\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=x+\tan x+C\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; C \in R$$ 上面的解題過程中,有用到下列的不定積分的基本性質 $\int f(x)dx \pm g(x)dx= \int f(x)dx \pm \int g(x)dx$ 以及兩個關係式 $1+\tan^2 x = \sec^2 x$ 其來源是 $$\cos^2 x + \sin^2 x = 1$$ 將等號兩邊同除以 $\cos^2 x$, $$\frac{\cos^2 x+\sin^2 x}{\cos^2 x}=\frac{1}{\cos^2 x}$$ 即可得 $$1+\tan^2 x = \sec^2 x$$ $d(\tan x) = \sec^2 x\;dx$ 因為 $$d(\tan x) = d\left( \frac{\sin x}{\cos x}\right)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;$$ $$\;\;=\left[\frac{\cos x\cos x-(-\sin x)\sin x}{\cos^2 x}\right]dx$$ $$=\left(\frac{\cos^2 x+\sin^2 x}{\cos^2 x}\right) dx\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;$$ $$=\left( \frac{1}{\cos^2 ...

氣泡排序演算法的理解

圖片
Understanding Bubble Sort Algorithm 氣泡排序法的原理是:在一個原本無序多個數字所組成的列表中,從頭開始將相鄰的數字逐一比較大小,如果是要由小至大排序,前面的數字若是大於後面的數字,則兩者須交換位置。如此相鄰繼續逐一比較下去,就可找到最大數字,無論有無發生交換,該數字最終會被排在最末端的位置。接下來,剛剛找到的最大數字以外的其它數字,再進行新一回的相鄰的數字逐一比較大小。一樣前面的數字若是大於後面的數字,則兩者須互相交換位置,如此相鄰逐一比較下去,就可找到次大的數字,且該數字會被排在倒數第二的位置。以此模式繼續多回比較,最後就可將列表中的數字由小至大排序。 如圖一所示,現在列表中有 5 個數字 {48, 24, 17, 20, 31} 要進行排序,若是採用氣泡排序法,因為相鄰的數字都要進行比較,則第一回要比較 4 次。此數目 4 其實就是這 5 個待排序數字的間隔數。 圖一     5 個數字排序, 第一回總共要比較 4 次 如圖二所示,這 5 個數字若是要由小至大排序,則相鄰數字在逐一比較 4 次後,就可找到最大值 48 ,且其經多次交換後就會被排至最末的位置。此時,只剩 4 個小於或等於 48 的數字需要進行新一回的比較。  圖二    第一回比較情形 圖三     第二回剩 4 個數字要排序,總共要比較 3 次 如圖四所示,第二回相鄰數字逐一比較 3 次後,就可找到次大的數字 31。接下來只剩 3 個數字尚未排序。而這剩下的 3 個數字,只須比較 2 次,就可以找到倒數第三大數字,如圖五所示。 圖四     第二回比較情形 圖五     第三回比較情形 最後一回只剩下兩個數字尚未排序,故只需一次比較,就完成整個列表數字的排序,如圖六所示。 圖六     第四回比較情形 下面以一程式示範氣泡排序法:   C++ #include <iostream> using namespace std; int  number[ ] = { 48, 24, 17, 20, 31 }; void bubble_sort(int x[ ]); int...

[C++] 陣列基礎練習題

圖片
Basic Array Problems in C++ Programming 本文提供幾個一、二維陣列相關的基礎練習題,其中包括陣列配合指標使用的基本題,以讓讀者熟悉陣列與指標的使用。 宣告一可儲存 5 個整數的陣列,可讓使用者輸入 5 個整數,計算並輸出其平均值 #include <iostream> using namespace std; const int maxSize = 5; int   number[maxSize]; double average( int x[ ], int arraySize);   int main( ) {         for ( int i = 0; i < maxSize; i++)         {                 cout << "輸入第" << i << "個元素整數值:";                 cin >> number[i];         }         cout << "陣列元素平均值為:" << average(number, maxSize) << "\n";         return 0; }   double average(int x[ ], int arraySize) {          int sum = 0;         for ( int  i = 0; i < arraySize; i++)                 sum += x[i];...

IC 555 無穩態多諧振盪器的原理與振盪頻率推導

圖片
Working Principle and Frequency Derivation of IC 555 Astable Multibrator 如圖一所示,為一 IC555 組成的無穩態多諧振盪器。首先我們先說明此振盪器的原理,接著再來推導此振盪器的振盪頻率公式。 圖一    IC 555 無穩態多諧振盪器電路 IC 555 無穩態多諧振盪器的原理 IC 555 的內部電路,如圖二所示。 圖二    IC 555 內部電路圖 (1) 如圖一所示,電源打開瞬間 $V_2$ 與 $V_6$ 為 $0\; V$,此時 IC555 內部 RS 正反器的 $S$= "1" 且 $R$ ="0"  ( 參見圖二 ) ,導致 $Q$ = "1"  ($\overline Q $= "0") ,使得 $V_3 $= "1",且放電電晶體不導通,因此與 IC 555 第二腳與第六腳連接的電容會被充電。 (2) 當電容的充電電壓介於 $0\;V$ 與 $\frac{V_{cc}}{3}$ 之間時,RS 正反器的 $S$ = "1" 且 $R$  ="0",導致 $Q$= "1"  ($\overline Q $ = "0") ,使得 $V_3 $= "1",放電電晶體不導通,電容的充電動作持續。 (3) 當電容的充電電壓介於 $\frac{V_{cc}}{3}$ 與 $\frac{2V_{cc}}{3}$ 之間時,RS 正反器的 $S$  = "0" 且 $R$ ="0",$Q$ 與 $\overline Q$ 維持原狀態,即 $Q$ = "1" ($\overline Q $= "0") ,使得 $V_3$ = "1",放電電晶體不導通,電容的充電動作持續。 (4) 當電容電壓被充至大於 $\frac {2V_{cc}}{3}$ 時,RS 正反器的 $S$ = "0" 且 $R$ = "1",導致 $Q$ = "0" ($\...

堆疊 (C++)

圖片
  C++ Stacks 堆疊是一種 有序串列 (ordered list) 的資料結構,而元素的加入與刪除都是在稱之為頂端 (top) 的同一端處理,且遵循 後進先出 (Last-In, Fist-Out; LIFO)  的原則。當我們將元素加入堆疊的動作稱之為 推入 (push) ;反之,將元素從堆疊中刪除的動作則稱之為 彈出 (pop) 。  圖一     堆疊的推入 (push) 與彈出 (pop)

電子輪盤電路

圖片
LED Roulette Circuit using 555 Timer and 4017 Decade Counter 電子輪盤電路是由 IC555 無穩態多諧振盪電路 (astable multivibrator) 、 IC4017 十進制計數器 (Decade Counter with Decoded Output)  以及 電晶體 2SC1384 延時電路 所組成。完整的電路圖,如圖一所示。 圖一     電子輪盤電路

如何讓 Blogger 產生文字方塊

圖片
  How to Add a Text Block in Blogger 一般部落格文章的寫作,若有重要的文字段落或程式碼需要強調,常會想用文字方塊,藉以突出重點與方便讀者閱讀。然而目前 Blogger 平台的文章寫作,在 撰寫模式 下並沒有提供新增文字方塊的工具可供撰寫者使用。文章撰寫者若要加入文字方塊,可以採取的方法是:切換至 HTML 模式 ,加入可控制網頁外觀與樣式的 CSS (Cascading Style Sheets,階層式樣式表 )  的文字方塊樣式資訊,並新增文章所屬網頁的 HTML 編輯區中文字方塊預定位置的 <div> 標籤的 class 屬性後,再切換回撰寫模式,就可以將需要強調的重點文字段落或程式碼寫進文字方塊內。  不過,務必留意的是:對於沒有 HTML 與 CSS 基礎的讀者而言,並 不建議 使用以下介紹的方法來產生簡單的文字框,以免出現因 HTML 網頁在設定或插入 CSS  文字框樣式資訊發生 錯誤時,無法自行修正或回復,造成文章出現無法 顯示出 預期 效果或甚至亂碼 的情況。讀者在使用下列方法前,務必斟酌並自負其可能的風險。 接下來就開始來介紹如何手動新增一個如下的簡單文字方塊: