SCILAB_Chap5
- 格式:pdf
- 大小:250.83 KB
- 文档页数:24
Fichier : /tmp/SCILAB_Chap5.odp
寫程式前的基本觀念
迴圈:當條件式符合你所定義的情形時,程式就會一直 執行到不合為止。當程式一直無法執行到不合定義的情 形時,則會無限制的執行下去 ( 假設電腦壽命夠長,也 沒有外在終止程式的系統呼叫 ) ,稱為無限迴圈。 條件式:當你列出了一堆條件時,若程式當時狀態符合 你其中一項條件時,它就會執行你在那個條件時,所要 求它的動作。不合者程式自動忽略過此區域。
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 9
另一個 for 迴圈的例子:九九乘法表
程式碼中的 printf() 函式,即為在螢幕上做標準輸出。用法: printf(' 輸出字串 ', 輸出變數 1, 輸出變數 2,......);( 之後還會介 紹到。 ) 範例碼 ( 雙迴圈的使用 ) : clear i=1; j=1; for i=1:9 for j=1:9 printf('%d x %d = %d\n',i,j,i*j); end end
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 7
for 迴圈
for 和 while 大概是初學程式者最常用的迴圈指令了。 for 的功用是每執行一次該迴圈內程式碼,就會計數一 次,直到累計的值超過宣告的范圍為止。 用法: for 變數範圍 ......... <= 迴圈內要執行的程式碼 end <= 迴圈之後常需跟著 end 指令,來確 認迴圈內的程式碼範圍。
Conférencier : Prénom Nom Date : Transparent 12
Fichier : /tmp/SCILAB_Chap5.odp
範例三:修改後的九九乘法表
clear i=1;j=1; printf('\n'); for i=1:9 for j=1:9 printf('%dx%d=%d ',i,j,i*j); if i*j<10 printf(' '); end if j==9 printf('\n'); end end end
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 15
if 與邏輯判斷的整合範例
a=3; b=5; c=1; printf("\n"); if a>b & a>c printf('a 比較大 \n'); end if b>a & b>c <== and 要全部成立才能執行 printf('b 比較大 \n'); end if c>a | b>a <== or 代表多條件只要其中一個成立就會執行 printf(" 不知道 \n"); end
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 5
程式碼與 Sc il ab 的解讀
A > B :如果 A>B 條件成立,則執行該段程式碼。 A <= B : A<B 和 A=B 皆算是條件成立,執行該段程式 碼。 A==B :當 A 的數值等於 B 的數值時條件成立。 A==B 和 A=B 是不同的, A=B 主要是對它作邏輯上的判斷。 A==B 則是判斷 A 和 B 的內涵值。 A~=B :當 A 值不等於 B 值時,條件成立。 A 條件 & B 條件:當 A 條件式和 B 條件式都成立,才會執 行該段程式碼。 A 條件 | B 條件:當 A 條件或 B 條件,只要有其中一個成 立,就會執行該段程式碼。
Conférencier : Prénom Nom Date : Transparent 22
Conférencier : Prénom Nom Date : Transparent 10
Fichier : /tmp/SCILAB_Chap5.odp
Débat
Proposez quelques idées touchant au coeur du sujet présenté N'ayez pas peur de provoquer un peu vos auditeurs pour les inciter à prendre part au débat.
雙條件判斷: if .... th en ... . el se
說明:當符合條件一時,則執行程式碼一,否則就執行 程式碼二。也可以使用連續 if...end 達到相同功能。 用法: if 條件一 then 執行程式一 else 執行程式二 end
Conférencier : Prénom Nom Date : Transparent 21
while 迴圈
while 迴圈的設計是當只要符合條件句,就會一直執行下 去,而不會 for 在宣告條件句時,就要宣告它的範圍 了。故 while 只要程式撰寫一有疏失,就很容易產生無 限迴圈的現象。 用法: While 條件式 <== 類似 if 的條件式樣式 ....... end
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 19
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 20
Conférencier : Prénom Nom Date : Transparent 6
Fichier : /tmp/SCILAB_Chap5.odp
程式中止與跳離迴圈
當程式出現無限迴圈的時候,中止程式的方式是: [Ctrl] + [ C ] 跳離迴圈的方式除了當程式不符合迴圈的判斷式而自動 離開外,也可以在迴圈內插入 break 指令。
Conférencier : Prénom Nom Date : Transparent 13
Fichier : /tmp/SCILAB_Chap5.odp
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 14
SC ILA B 第五章 - 初階程式設計
撰文者: 1. 中央大學大氣系 楊善文 2. ( 如對本文有貢獻者,記得在此留名。 )
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 1
程式語言
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 4
各類算符
大於: > 小於: < 大於等於: >= 小於等於: <= 是否等於: == 是否不等於: ~= AND : & ( 注意:是 '&' ,不是 '&&' ,跟 C 不一樣 ) OR : | ( 單 '|' 而非雙 '|')
Fichier : /tmp/SCILAB_Chap5.odp
if-then-else 的範例
clear a=1; b=2; c=3; if a>b then printf("a>b"); else printf("a<b"); end 執行結果: a<b
條件判斷 if.....end
if 指令後面接的條件判段式,隔行開始到之後的結束句 end 之前,為該條件的程式碼範圍。當條件符合時,即 會執行該段程式碼,不合則略過。 if 也常被包入更大的 迴圈內,作判斷一些細節之用。 例子:見之前的範例三。 語法: if 條件句 ........ <== 程式碼 end
Conférencier : Prénom Nom
Fichier : /tmp/SCILAB_Chap5.odp
Date :
Transparent 11
標準輸出函式 printf
printf 這個函式,對於一些會 C 的讀者應該並不覺得陌 生吧, Scilab 下的 printf 幾乎和 C 的 printf 語法完全一 樣。 Printf 的字串除了可以用 ' ' 也可以用 '' '' 。 從之前範例看到 printf 中含有許多 %d 。 %d 主要控制著 在輸出字串中該變數要位於哪個位置。例如: i=1;j=2;printf('abcd%dzzzz%d',i,j); ( 第一個 %d 是 i 的,第二個 %d 是 j 的,以此類推。 ) 輸出結果: abcd1zzzz2 %d 代表以整數輸出。 %f 代表以浮點數輸出。 %c 是單一 字元。 %s 是輸出整個字串。 '\n' 是換行符號,需放在 printf 中的輸出字串區內。