資料庫系統理論(二)

結構化程式設計

定義:是指將一個「大系統」分解成許多具有「獨立功能」的「小模組」。

優點:
1.程式容易閱讀。
2.減少程式維護的成本。
3.減少程式邏輯的錯誤。
4.提高程式的生產力。
5.降低程式的複雜性及測試時間。
缺點:
1.程式比較多,故比較佔記憶體空間。
2.程式比較多,固執行速度比較慢。

結構化程式必須遵守的原則

1.每一個結構只能有一個入口及出口。
2.少用goto的指令
3.採用「由上而下」的觀念設計程式。

前測試迴圈

定義:先判斷條件式,再執行迴圈。
作法:「執行前」先檢查是否符合條件式,若符合,則執行迴圈;若不符合,則跳出迴圈。
語法:
while (條件式)
{
敘述區塊;
}
實例:
想到公園跑步。
假設我們想到公園跑步,則在我們出門時,一定會先判斷「是否有颳風下雨」,如果是的話,就會「待在家中....」繼續等待,直到沒有颳風下雨為止。


後測試迴圈

定義:先執行迴圈,再判斷條件式
作法:「判斷前」會先執行一次之後,再執行條件式判斷,不符合則跳出迴圈,但至少會執行一次迴圈。
語法:
do
{
敘述區塊;
}
while (條件式);
實例:
假設我們已經在公園跑步了一段時間,如果「沒有遇到颳風下雨」,則繼續「跑步....」。直到「颳風下雨」才停止跑步。

break語法的迴圈情況


contine語法的迴圈情況

資料庫系統理論(一)

Chapter2 資料型態與變數宣告及運算

 變數
*整數型態
十六進位制,以0x開頭
*布林型態
條件成立會顯示(1),條件不成立會顯示(空字串)
注意~在PHP程式語言中,(=)的真正意義是(指定運算子),並非數學中的(等於)。
*變數命名原則
$i_int 變數宣告整數
$f_float 變數宣告整浮點型態
$s_string 變數宣告為字串型態
$b_bool 變數宣告為布林型態

*字串常數
常數的優點
1.減少程式錯誤的機會。
2.讓程式更易於閱讀。
3.使程式較容易修正。

*運算子的分類
1.指定運算子 (例如 = )
2.算術運算子 (例如 +、-、*、/ )
3.關係運算子 (又稱比較運算子 例如 >、<、= ...)
4.邏輯運算子 (例如 AND、OR、NOT ...)
撰寫程式時,若遇到數學上的符號 = 時,都會有疑問,那就是:何時才是真正的等號;何時才能當作指定運算子來使用。基本上,在PHP中等的等號(=)大部分都是(指定運算子)來使用

關係運算子
運算子功能條件式執行結果
== (等於)判斷A與B是否相等$A=$BFlase
!=或 <>(不等於)判斷A是否不等於B$A!=$BTrue
< (小於)判斷A是否小於B$A<$BTrue
<=(小於等於)判斷A是否小於等於B$A<=$BTrue
>(大於)判斷A是否大於B$A>$B Flase
>=(大於等於)判斷A是否大於等於B$A>=$BFlase

邏輯運算子
運算子順序意義運算式運算結果為True的條件
!(邏輯 Not)1Not AA必為假
&&(邏輯 And)2A  and BA、B必須為真
||(邏輯 Or)3A Or B A、B中至少一個為真

複合指定運算式
運算子功能簡化的表示法相當於執行結果
(設I的初始值為3)
指定符號$I=2;$I=2;$I=2;
+=相加後再指定給變數$I+=2;$I=$I+2;$I=5;
-=相減後再指定給變數$I-=2;$I=$I-2;$I=1;
*=相乘後再指定給變數$I*=2;$I=$I*2;$I=6;
/=相除後再指定給變數$I/=2;$I=$I/2;$I=1.5;

後面有個小孩抱著嗎?

PHP4-chap7

正規表式

程式碼

//'7'正規表示式
$session_name = $session_txt['7.1'];
echo $session_name."<br>";
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
    ereg()   int ereg(string pattern, string string [, array regs])<br>
    這函式會以pattern 中所指定的正規表示式來搜尋對應字串,並以陣列方式傳回。	
<br>
</fieldset>
";
echo $message."<br>";

//$datesever=$_SERVER['REQUEST_TIME'];
//echo $datesever."<br>";
$datestr=date("m-d-Y");
echo $datestr."<br>";
$date = $datestr;

if (ereg("([0-9]{1,2})-([0-9]{1,2})-([0-9]{4})", $date, $regs)){
	echo ("$regs[2].$regs[1].$regs[3]");
}else{
	echo ("Invalid date format: $date");
}
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
    ereg_replace()   (string pattern, string replace, string string )<br>
    這是個將字串中的pattern 以replacement來代替的函式。這個函式會傳回所找到並加以修改<br>
	過的字串加以運用。
	
<br>
</fieldset>
";
echo $message."<br>";

$num = '10';
$string = 'Ten Little Indians sitting ....';
echo "Befor: ". $string."<br>";
$string = ereg_replace('Ten', $num, $string);
echo "After: ". $string."<br>";

echo $breakstr."<br>";
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
    eregi()   int ereg(string pattern, string string [, array regs])<br>
	這個函式和ereg()相同,只不過它忽略了對應到字母字元的狀況。<br>
	eregi_replace()   (string pattern, string replace, string string )<br>
	這個函式和ereg_replace()相同,只不過它忽略了對應到字母字元的狀況。<br>
<br>
</fieldset>
";
echo $message."<br>";
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
    split()   array split(string pattern, string string [, int limit])<br>
	這個函式會傳回一個字串陣列,其中每一個都是以正規表示式pattern所形成的子字串的邊界所<br>
	區隔而成的字串。當limit引數有指定時,則所傳回的陣列會包含最多limit個元素,而其餘的<br>
	元素則包含在string引數中。<br>
	spliti()和split()相同,只不過它在對應字母時會忽略大小寫。
<br>
</fieldset>
";
echo $message."<br>";

$date = "19/Sep/1966 is my date of birth";

$array_date = split('[/.-]', $date, 4);
echo "Day: ".$array_date[0]. "Month: ".$array_date[1]."
		Year:". $array_date[2];
echo "<br>";
echo $array_date[3];


echo $breakstr."<br>";