SCILAB第五章-初階程式設計 撰文者: 1.中央大學大氣系 楊善文 2. (如對本文有貢獻者,記得在此留名。)

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

大學入學考試中心 九十六學度學科能力測驗試題 國文科 -哈利波特番外篇-
中小学教育网课程推荐网络课程 小学:剑桥少儿英语 小学数学思维训练 初中:初一、初二、初三强化提高班 人大附中同步课程
2011级高考地理复习(第一轮) 第三篇 中国地理 第一章 中国地理概况 第五节 河流和湖泊.
(教育学博士,曾任中学副校长,兼职南京大学博士后)
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
中國古典文獻學 主講:羅積勇教授.
南美洲 吉林省延吉一高中 韩贵新.
06学年度工作意见 2006年8月30日.
第1节 光的干涉 (第2课时).
勾股定理 说课人:钱丹.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
資料結構使用Java 第1章 資料結構與Java程式複習.
Chapter 5 遞迴 資料結構導論 - C語言實作.
MATLAB簡介 MATLAB程式設計《入門篇》
Chapter 5 迴圈.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
物件導向程式設計 CH1, CH2.
簡易C++除錯技巧 長庚大學機械系
第1章 認識Arduino.
2-3 基本數位邏輯處理※.
第四章 流程控制(一) if,if-else 與 switch
Java程式概觀.
生物資訊程式語言應用 Part 3 Perl Language.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
Visual Basic 物件導向程式設計簡介.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
雲端計算.
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
程式設計實習課(四) ----C 函數運用----
Python 基本介紹.
第一單元 建立java 程式.
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
第 19 章 XML記憶體執行模式.
雲端計算.
JAVA 程式設計 資訊管理系 - 網路組.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
輸入&輸出 函數 P20~P21.
Introduction to C Programming
使用VHDL設計 七段顯示器 通訊工程系 一年甲班 姓名 : 蘇建宇 學號 : B
CH05. 選擇敘述.
期末考.
緩衝區溢位攻擊 學生:A 羅以豪 教授:梁明章
撰寫MATLAB基礎財務程式 柯婷瑱.
挑戰C++程式語言 ──第8章 進一步談字元與字串
Welcome 实验:筷子提米.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
MiRanda Java Interface v1.0的使用方法
线段 射线 直线.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
期末報告第一題 通訊四甲 B 湯智瑋.
迴圈(重複性結構) for while do while.
適用於多選一 可減少if 與 else配對混淆的錯誤.
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
Chapter 4 Multi-Threads (多執行緒).
C++ 程式語言.
Unix指令4-文字編輯與程式撰寫.
JUDGE GIRL 使用介紹 & 常見問題 TAs :
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

SCILAB第五章-初階程式設計 撰文者: 1.中央大學大氣系 楊善文 2. (如對本文有貢獻者,記得在此留名。)

程式語言 程式語言常分為直譯式語言與編譯式語言。 直譯式語言:程式邊讀取程式碼,邊執行程式。直到程 式碼結束或是出現語法錯誤為止。UNIX shell script, Scilab, Matlab......屬之。 編譯式語言:程式碼寫完後,先經由編譯器讀取確定無 誤後,並轉成執行檔(機器碼),讓電腦執行。C , C++ ,Fortran......屬之。 Scilab也有程式設計的功能,多用於作矩陣的資料處理 兼繪圖。

初學者是否適合以Scilab或Matlab當作第一個學習的程式語言? 依附於特定軟體,對於程式碼可攜性較弱,必須要在不同機 器都安裝的相同的此軟體才能用。 執行一個程式就要開一個軟體:耗費記憶體空間。 如果只是想要處理資料但不需要繪圖,用C或Fortran寫一支 外部獨立的程式來工作是比較好的方法。 先學C再來學Scilab程設會有較好的工作效果。(由難而易)

寫程式前的基本觀念 迴圈:當條件式符合你所定義的情形時,程式就會一直 執行到不合為止。當程式一直無法執行到不合定義的情 形時,則會無限制的執行下去(假設電腦壽命夠長,也沒 有外在終止程式的系統呼叫),稱為無限迴圈。 條件式:當你列出了一堆條件時,若程式當時狀態符合 你其中一項條件時,它就會執行你在那個條件時,所要 求它的動作。不合者程式自動忽略過此區域。

各類算符 大於:> 小於:< 大於等於:>= 小於等於:<= 是否等於:== 是否不等於:~= AND:& (注意:是'&',不是'&&',跟C不一樣) OR:| (單'|'而非雙'|')

程式碼與Scilab的解讀 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條件,只要有其中一個成 立,就會執行該段程式碼。

程式中止與跳離迴圈 當程式出現無限迴圈的時候,中止程式的方式是:[Ctrl] + [ C ] 跳離迴圈的方式除了當程式不符合迴圈的判斷式而自動 離開外,也可以在迴圈內插入break指令。

for迴圈 for和while大概是初學程式者最常用的迴圈指令了。for 的功用是每執行一次該迴圈內程式碼,就會計數一次, 直到累計的值超過宣告的范圍為止。 用法: for 變數範圍 ......... <=迴圈內要執行的程式碼 end <=迴圈之後常需跟著end指令,來確 認迴圈內的程式碼範圍。

for迴圈的範例程式 clear i=1 for i=1:5 i End 執行結果:右圖

另一個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

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.

標準輸出函式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中的輸出字串區內。

範例三:修改後的九九乘法表 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

條件判斷if.....end if指令後面接的條件判段式,隔行開始到之後的結束句 end之前,為該條件的程式碼範圍。當條件符合時,即 會執行該段程式碼,不合則略過。if也常被包入更大的迴 圈內,作判斷一些細節之用。 例子:見之前的範例三。 語法: if 條件句 ........ <==程式碼 end

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'); if c>a | b>a <== or代表多條件只要其中一個成立就會執行 printf("不知道\n");

while迴圈 while迴圈的設計是當只要符合條件句,就會一直執行下 去,而不會for在宣告條件句時,就要宣告它的範圍了。 故while只要程式撰寫一有疏失,就很容易產生無限迴圈 的現象。 用法: While 條件式 <==類似if的條件式樣式 ....... end

while的使用範例 i=8; printf("\n"); while i>3 printf('ZZZzzz......\n'); i=i-1; <==如果這行被注解掉,程式就會無限執行下去 end

雙條件判斷:if .... then .... else 說明:當符合條件一時,則執行程式碼一,否則就執行 程式碼二。也可以使用連續if...end達到相同功能。 用法: if 條件一 then 執行程式一 else 執行程式二 end

if-then-else的範例 clear a=1; b=2; c=3; if a>b then printf("a>b"); end 執行結果:a<b

綜合範例:利用迴圈將資料填入矩陣 製造一個10x10的單位矩陣: clear i=1;j=1;U=[]; for i=1:10 for j=1:10 if i==j U(i,j)=1; end if i~=j U(i,j)=0; U