4-4 程式設計之邏輯結構.

Slides:



Advertisements
Similar presentations
1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
Advertisements

說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
課程名稱:程式設計 授課老師:________
第四章 控制结构.
赋值语句与输入、输出语句.
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
Access数据库程序设计 总复习.
电在我们日常生活、现代化社会中的应用: 电 是 什 么?.
算法和程序设计 第4课 分支结构的算法设计 •.
第五章 数组.
四 VBScript编程基础.
Chapter 5 迴圈.
Visual Basic程序设计.
成才之路 · 语文 人教版 · 必修2 路漫漫其修远兮 吾将上下而求索.
BLANK overview.
VB內建函數與應用.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
課程名稱:程式設計 授課老師:________
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第5章 数组 Visual Basic程序设计.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
ASP动态网页设计实用教程 主讲教师: 开课单位:.
算法与程序设计.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
数学3(必修)—— 算 法 ALGORITHM 苏州大学数学科学学院 徐稼红
流程控制、陣列 台南市聖功女子高級中學 毛全良.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
程式語言Visual Basic 傳址與傳值
第12章 VBA模块设计.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
第5章 Visual Basic控制结构 之 常用算法举例
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
Visual Basic程序设计.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数.
小结 郭清溥.
Visual Basic 程序设计教程.
Ch04 VB.NET的流程控制 網頁程式設計.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
CH05. 選擇敘述.
期末考.
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
單元名稱:結構化程式設計 報告人 劉洲溶.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
程式語言與邏輯 結構化程式設計:迴圈控制 報告人:國立台灣師大附中 李啟龍 老師 學年度資訊科技概論研習.
算法与Visual Basic程序基础(二)
網頁設計第十二課.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
1.2.3 循环语句.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構 2 A

4-4 If判斷敘述: If-Then敘述的語法: 語法1:If 條件式 Then 程式敘述 語法2: If 條件式 Then 程式敘述區塊 End If

4-4 流程控制–條件結構(5/18) If判斷敘述: If-Then-Else敘述的語法: 語法: If 條件式 Then 條件式為真(True)程式敘述區塊 Else 條件式為假(False)程式敘述區塊 End If

4-4 流程控制–條件結構(9/18) 巢狀If判斷敘述:If判斷敘述中還有If判斷敘述,常用來處理當抉擇不只2種的情況。 例1: y = InputBox("請輸入出生年次:") If y >= 60 Then If y <=69 Then '60~69年間出生者 Print "草莓族" Else '70年(含)後出生者 Print "水蜜桃族" End If Else '59年(含)前出生者 Print "芭樂族"

逐一過濾條件的 ElseIf 例子 4-4 以前面判斷一正整數 N 為幾位數的程式為例,利用 ElseIf 逐一過濾條件,程式會變得比較容易閱讀,如下: If N < 10 Then Print N; "一位數" ElseIf N < 100 Then Print N; "二位數" ElseIf N < 1000 Then Print N; "三位數" Else Print N; "四位數(含)以上" End If

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構

4-4 流程控制–條件結構(13/18) Select Case判斷敘述:用來處理多重選擇的條件判斷敘述。 下一行程式敘述 條件運算式? Case Else 程式敘述 區塊N+1 Case 1 區塊1 Case 2 區塊2 Case N 區塊N …

4-4 流程控制–條件結構(14/18) Select Case判斷敘述: Select Case的語法: 程式敘述區塊1 Case 條件式2 程式敘述區塊2 . Case 條件式N 程式敘述區塊N Case Else 程式敘述區塊N+1 End Select

4-4 流程控制–條件結構(15/18) Select Case判斷敘述: Select Case的範例: 例1: age = InputBox("請輸入出生年次:") Select Case age Case Is <= 59:Print "芭樂族" '59年(含)前出生者 Case 60 To 69:Print "草莓族" '60~69年間出生者 Case else:Print "水蜜桃族" '70年(含)後出生者 End Select

一流程圖如圖所示,依流程順利執行後, 列印B的值為何? 4-4 (A)34 (B)40 (C)45 (D)49 10 9 8 7 6 N 5 Y C

執行下面的Visual Basic程式碼後,輸出的資料為何? 4-4 執行下面的Visual Basic程式碼後,輸出的資料為何? (A)error (B)large (C)medium (D)small。 C

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構

4-4 流程控制–重覆結構(2/21) For-Next迴圈敘述: For-Next的語法: 語法: For 控制變數 = 起始值 To 終止值 Step 增值(減值) 程式敘述區塊 Next 控制變數

4-4 流程控制–重覆結構(3/21) For-Next迴圈敘述: For-Next的範例: 例1: sum = 0 '設定變數sum的初始值 For i = 1 To 10 Step 1 'Step 1可省略不寫 sum = sum + i Next i Print "1 + 2 + 3 +… + 10 = ", sum

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構

Basic語言的片段程式如下: 上述片段程式執行後,下列何者正確? 4-4 Basic語言的片段程式如下: 上述片段程式執行後,下列何者正確? (A)SUM=10 (B)SUM=17 (C)SUM=21 (D)SUM=23。 C

求執行下列BASIC程式後,輸出 b值的結果為何? 4-4 求執行下列BASIC程式後,輸出 b值的結果為何? (A)0 (B)20 (C)120 (D)140。 B

在BASIC語言中利用下述程式計算出 (1*2)-(2*3)+(3*4)-(4*5)+(5*6)的值,則空格中要填入什麼內容? 4-4 (A)-1+S (B)S-2 (C)N-S (D)-1*S。 D

下列Visual Basic語言片段程式的執行結果為何? 4-4 (A)N=2 (B)N=3 (C)N=4 (D)N=5。 B

巢狀迴圈 4-4 在迴圈裡面也可以又有迴圈,這種情形即稱為巢狀迴圈,例如: For I = 1 To 3 Print " 外迴圈變數 " 外迴圈變數 1 內迴圈變數 1 內迴圈變數 2 內迴圈變數 3 外迴圈變數 2 內迴圈變數 1 內迴圈變數 2 內迴圈變數 3 For I = 1 To 3 Print " 外迴圈變數 " ; I For J = 1 To 3 外 內 Print , " 內迴圈變數 外迴圈變數 3 內迴圈變數 1 內迴圈變數 2 內迴圈變數 3 " ; J 迴 迴 Next J 圈 圈 Print Next I

巢狀迴圈 4-4 例子: 結果印出: For I = 1 To 5 Print "I ="; I, "J ="; For J = 1 To I ' 內迴圈的執行次數,由外迴圈 Print J; ' 變數 I 的值來控制。 Next J Print Next I I = 1 J = 1 I = 2 J = 1 2 I = 3 J = 1 2 3 I = 4 J = 1 2 3 4 I = 5 J = 1 2 3 4 5

巢狀迴圈 4-4 例子: I J ;I 結果印出: Sum=55 Sum=15 Sum=35 6 Sum=0 For I = 1 To 5 For J = 1 To I ' 內迴圈的執行次數,由外迴圈 sum=sum +1 ' 變數 I 的值來控制。 Next J Next I Print “Sum=“;sum I J ;I I = 1 J = 1 I = 2 J = 1 2 I = 3 J = 1 2 3 I = 4 J = 1 2 3 4 I = 5 J = 1 2 3 4 5 結果印出: Sum=55 Sum=15 Sum=35 6

4-4 FOR I=1 TO 5 FOR J=1 TO 6 5*6*3=90 FOR K=1 TO 3 5*6=30 A=A+1 NEXT K B=B+1 NEXT J C=C+1 NEXT I PRINT A,B,C 5*6*3=90 5*6=30 5 90 30 5

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構

流程控制–重覆結構(8/21) 4-4 While-Wend迴圈敘述: While-Wend迴圈敘述的語法: 語法: While 條件式 程式敘述區塊 Wend

4-4 流程控制–重覆結構(10/21) While-Wend迴圈敘述: While-Wend的範例: 例2: i = 1 : power = 1 N = InputBox(“輸入N值:”,“ 計算2的N次方") While i <= N power = power * 2 i = i + 1 Wend Print " 2 的 " & N & " 次方= " & power

4-4 A=100:B=22 A B C C=A MOD B WHILE C<>0 100 22 12 A=B:B=C WEND B 的值為何 A B C 100 22 12 22 12 10 12 10 2 10 2

流程控制–重覆結構(13/21) 4-4 Do-Loop前測式迴圈敘述:先檢測迴圈之執行條件,再依結果決定是否執行的迴圈。 Do While 條件式? Do Until 條件式? 語法1:Do While 條件式 程式敘述區塊 Loop 語法2: Do Until 條件式 F T T F 程式敘述區塊 程式敘述區塊 下一行程式敘述 下一行程式敘述

4-4 流程控制–重覆結構(14/21) Do-Loop前測式迴圈敘述: Do-While-Loop的範例: I 6 5 4 F E D C word = "ABCDEF" i = Len(word) Do While i > 0   Print Mid(word, i, 1);   i = i - 1 Loop I 6 5 4 F E D C B A 3 2 1

4-4 流程控制–重覆結構(15/21) Do-Loop前測式迴圈敘述: Do-Until-Loop的範例: word = "ABCDEF" i = Len(word) Do Until i <= 0   Print Mid(word, i, 1);   i = i - 1 Loop Do While i > 0

4-4 流程控制–重覆結構(16/21) Do-Loop後測式迴圈敘述:先執行迴圈內的敘述一次,再檢測迴圈條件,以決定是否繼續執行迴圈。 Do While 條件式? Do迴圈程式 敘述區塊 下一行程式敘述 T F Until 條件式? Do迴圈程式 敘述區塊 下一行程式敘述 F T 語法1: Do 程式敘述區塊 Loop While 條件式 語法2: Do Loop Until 條件式

4-4 流程控制–重覆結構(17/21) Do-Loop後測式迴圈敘述: Do-Loop-While的範例: i = 1 Do N = Int(Rnd( ) * 10) Print " 第 " & i & " 個亂數是 " & N i = i + 1 Loop While i <= 4

4-4 流程控制–重覆結構(18/21) Do-Loop後測式迴圈敘述: Do-Loop-Until的範例: i = 1 Do N = Int(Rnd( ) * 10) Print " 第 " & i & " 個亂數是 " & N i = i + 1 Loop Until i > 4

4-4 A=15:B=27 A B X Y X=A:Y=B DO UNTIL A=B 15 27 15 27 IF A>B THEN A=A-B IF A<B THEN B=B-A LOOP PRINT (X/A);”/”;(Y/A) A B X Y 15 27 15 27 15 12 15 27 3 12 15 27 3 9 15 27 3 6 15 27 3 3 15 27 5/9

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構 99 95 86 70 45 9 B

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構

4-4 程式設計之邏輯結構

4-5 Visual Basic程式設計基礎

4-5 Visual Basic程式設計基礎 10 10 10 10

4-5 Visual Basic程式設計基礎

4-5 Visual Basic程式設計基礎 Int(rnd*33) +10

4-5 Print Abs(-49^0.5) Print Sqr(100) Print Exp(0) Print Log(1) Print Exp(Log(5)) Print Sgn (-49^0.5) 7 10 1 5 -1

4-5 23 Print Oct(19) Print Hex(31) Print &O21 Print &H21 Print Sgn(Exp(Log(5))) Print Hex(Abs (-100^0.5)) 1F 17 33 1 A

4-5 數值函數 19 Print Int(19.6) Print Cint(19.6) Print Fix(19.6) Print Int(-19.6) Print Cint(-19.6) Print Fix(-19.6) 20 19 -20 -20 -19

4-5 數值函數 Print Int(19.3) Print Cint(19.3) Print Fix(19.3) Print Int(-19.3) Print Cint(-19.3) Print Fix(-19.3) 19 19 19 -20 -19 -19

4-5 數值函數 Print SIN(3.14/2) Print SIN(0) Print COS(3.14/2) Print COS(0) Print INT(RND*33)+20 Print INT(RND*100)/10+1 1 1 20~52 1~10.9

4-5 內建函數 (3) 時間日期函數:專門用來處理時間及日期資料的函數 函數名稱及語法 說明 Date( ) 傳回系統的日期  傳回系統的日期  Time( )  傳回系統的時間  Now( )  傳回系統的日期與時間  Minute(時間)  傳回時間資料中的分鐘資料  Second(時間)  傳回時間資料中的秒數資料  Year(日期)  傳回日期資料中的年份資料  Month(日期)  傳回日期資料中的月份資料  Day(日期)  傳回日期資料中的日期資料

時間日期函數 4-5 Print Date Print Time Print Now Print Year(Now) Print Month(Date) 11/16/2018 1:09 上午 11/16/2018 1:09 AM 11/16/2018 11/16/2018

下列BASIC程式語言函數運算,何者正確? 4-5 下列BASIC程式語言函數運算,何者正確? (A)FIX(5.8)=6 (B)INT(5.8)=5 (C)RND(5.8)=5 (D)SGN(5.8)=5。 B

4-5 Visual Basic程式設計基礎

4-5 Visual Basic程式設計基礎

下列Visual Basic敘述何者正確? 4-5 下列Visual Basic敘述何者正確? (A)Print Left$("ASDF", 2)的結果為DF (B)Print Sgn(–90) * Abs(–90)的結果為90 (C)Print Cint(3.75) + Sqr(9)的結果為7 (D)Print Sqr(9)的結果為–9 C

下列有關Visual Basic敘述何者正確: 4-5 下列有關Visual Basic敘述何者正確: (A)Print Len("I WILL BE BACK")的執行結果為16 (B)Print Oct(10)的執行結果為12 (C)Print Int(-5.6)的執行結果為-5 (D)Print Fix(-5.6)的執行結果為-6 B

字串函數 4-5 65 Print Asc(“A”) Print Chr(65) A A=“Hccvs 最棒” Print Left(A,3) Print Right(A,3) Print Mid(A,3,2) Print Mid(A,3) A Hcc 最棒 cv cvs 最棒

4-5 字串函數 A=“Hccvs 最棒” Print Len(A) Print Left(Right(A,Len(A)-3+1),2) Print String(10,”$”) Print String(5,65) Print String(5,”abc”) Print Ucase(“abC78trS”) 8 cv RIGHT(A,6) CVS 最棒 $$$$$$$$$$ AAAAA aaaaa ABC78TRS

4-5 Visual Basic程式設計基礎

MsgBox “記得來投票”, 16, “模範生選拔" 敘述,當執行程式時,"記得來投票"將出現在訊息交談窗中的哪個位置? 4-5 MsgBox “記得來投票”, 16, “模範生選拔" 敘述,當執行程式時,"記得來投票"將出現在訊息交談窗中的哪個位置? (A)訊息文字 (B)標題文字 (C)輸入欄的預設值 (D)說明檔代碼 A

4-5 Visual Basic程式設計基礎 5 2,1

4-5 Visual Basic程式設計基礎 K=GAME(5) =5*GAME(4) =5*4*GAME(3)

4-5 FAB(4) =FAB(3)+FAB(2) =FAB(2)+FAB(1) +FAB(1)+FAB(0) =FAB(1)+FAB(0) Function FAB( A as Integer) If A<=1 Then FAB=1 Else FAB=FAB(A-1)+FAB(A-2) Endif End Function Private Sub Form_activate() Dim N As Integer N=4 Print FAB(N) Endsub FAB(4) =FAB(3)+FAB(2) =FAB(2)+FAB(1) +FAB(1)+FAB(0) =FAB(1)+FAB(0) +1+1+1 =5

4-5 K FNP(K) T 1 2 2 2 6 8 20 3 12 40 4 20 Function FNP( X) FNP=X*X+X End Function Private Sub Form_activate() FOR K=1 TO 4 T=T+FNP(K) NEXT K PRINT T Endsub K FNP(K) T 1 2 2 2 6 8 3 12 20 4 20 40

4-5 執行下列程式後,印出的結果為: (A)65 (B)105 (C)125 (D)305 300 5 5 5*5*4*3 5,4,3 D

常見的資料結構 4-5 佇列(QUEUE):排隊(FIFO) C F D Y T F D Y T A D Y T A B 入口 出口 ABX

4-5 常見的資料結構 堆疊(STACK):堆貨物(LIFO) C A A A F C C A A 出口 入口 POP PUSH A PUSH C F C A POP C A PUSH F

副程式呼叫使用堆疊結構 4-5 C A A A F C C A A PUSH A POP PUSH C POP PUSH F 主程式 : A 呼叫副程式a 副程式a : C 呼叫副程式 c : End sub 副程式c : F 呼叫副程式 f : End sub 副程式 f : End sub PUSH A C POP A A A PUSH C F POP C PUSH F C A A 使用結構化程式設計的程式

4-5 Visual Basic程式設計基礎

4-5 Visual Basic程式設計基礎 Form_activate a=3 b=8 4 傳址呼叫(Call By Ref) 傳值呼叫(Call By Val) 4 8 play x y=8 10

4-5 Visual Basic程式設計基礎 Form_activate a=3 b=8 傳值呼叫(Call By Val) 傳址呼叫(Call By Ref) 10 3 10 play X=3 y 4

4-5 傳址呼叫(Call By Ref) Form_activate A=0 1 傳值呼叫(Call By Val) good S Sub Good(s As Integer) S=S+1 End Sub Sub Bad(byval T As Integer) T=T-2 Private Sub Form_activate() Dim A As Integer A=0 Call Good(a) Call Bad(a) Print A Endsub Form_activate A=0 1 傳值呼叫(Call By Val) good S Bad T T=1 -1 1

4-5 傳值呼叫(Call By Val) 傳址呼叫(Call By Ref) 2 1 1 Sub Good(S As Integer) S=S+1 End Sub Private Sub Form_activate() Dim A As Integer A=0 Call Good(A) Print A Endsub (Byval S As Integer) 2 Call Good((A)) Call Good(A+2) 1 1

Sub add(x As Integer, y As Integer, z As Integer) For I=1 to 4 x=x+1 Private Sub Form_activate() Dim a As Integer Dim b As Integer Dim c As Integer a=2:b=3:c=0 Call add(a,b,(c)) Print a,b,c Endsub Sub add(x As Integer, y As Integer, z As Integer) For I=1 to 4 x=x+1 For J=1 to 3 y=y+1:z=x+y Next J Next I End Sub Form_activate a=2 b=3 c=0 6 15 傳址呼叫(Call By Ref) 傳值呼叫(Call By Val) 6 15 0 add x y z=0 21

4-6 使用陣列 在術語上,陣列中的每一項資料叫做一個元素(element),而用來指定某一個元素的 0、1、2、…順序叫做註標(subscript),如下: 名稱 資料順序 資料內容 陣列元素 X(0)~X(4) X 80 X(0) 1 21 X(1) 2 32 X(2) 陣列 X 3 43 X(3) 4 74 X(4) 陣列註標 0~4

4-6 陣列、排序及搜尋

4-6 陣列、排序及搜尋 DIM

4-6 陣列、排序及搜尋

4-6 陣列、排序及搜尋 11 88

4-6 陣列、排序及搜尋 9 18

4-6 陣列、排序及搜尋 A 1 2 3 4 K 2 3 2 4 3 5

4-6 27 12 8 9 21 72 DIM A(6), I , B AS INTEGER A(1)=27:A(2)=12:A(3)=8 FOR I=1 TO 3 B=A(I) A(I)=A(7-I) A(7-I)=B NEXT I FOR I=1 TO 6 PRINT A(I); A 1 2 3 4 5 6 I 27 12 8 9 21 72 72 1 2 21 3 9 8 12 27

4-6 DIM A(5,5) AS INTEGER DIM I,J AS INTEGER FOR I=0 TO 5 FOR J=0 TO 5 IF (I>J) THEN A(I,J)=A(I-1,J) ELSEIF (I=J) THEN A(I,J)=I+J ELSE A(I,J)=I*J ENDIF NEXT J NEXT I 問A(3,1)=? A(3,1)=A(2,1) =A(1,1) =2

在BASIC語言中執行以下的程式碼後,螢幕輸出的資料為何? 4-6 在BASIC語言中執行以下的程式碼後,螢幕輸出的資料為何? (A)15 (B)5 (C)10 (D)21。 A(2)=A(1)+2=3 A(3)=A(2)+3=6 A A(4)=A(3)+4=10 A(5)=A(4)+5=15

4-6 執行下列程式片段後,K(3,3) 值為何? A (A)3 (B)4 (C)5 (D)12。 K(3,3)=K(2,2)+1 =1+1+1=3 A

下列Visual Basic程式片段執行後,A(1, 3) 的值與下列哪一個元素的值相同? 4-6 下列Visual Basic程式片段執行後,A(1, 3) 的值與下列哪一個元素的值相同? (A)A(2 , 0) (B)A(2 , 1) (C)A(2 , 2) (D)A(2 , 3) A(1,3)=2*1*(1+3)=8 A(2,0)=2*2*(2+0)=8 A

氣泡排序法:N個資料從大排到小 每回合做N-I個比較 共需N-1個回合 22 17 63 5 14 35 FOR I=1 TO N-1 NEXT I FOR J=1 TO N-I NEXT J 63 17 14 5 5 35 IF N(J)<N(J+1) THEN TEMP=N(J) N(J)=N(J+1) N(J+1)=TEMP ENDIF 17 14 14 35 5 63 22 63 22 17 35 14 5 63 22 22 35 17 14 5 17 14 5 22 35 63

選擇排序法:N個資料從大排到小 每回合做I+1 TO N個比較 共需N-1個回合 22 17 63 5 14 35 FOR I=1 TO N-1 NEXT I 63 22 FOR J=I+1 TO N NEXT J 17 22 5 14 35 IF N(I)<N(J) THEN TEMP=N(I) N(I)=N(J) N(J)=TEMP ENDIF 63 22 35 17 5 14 22 63 35 17 22 5 14 17 63 35 22 17 14 5 14 63 35 22 17 14 5

比較次數 N-1 次 比較次數=(N-1)+(N-2)+……..+2+1 N-2 次 =(((N-1)+1)*(N-1))/2 2 次 1 次

4-6 陣列、排序及搜尋

4-6 陣列、排序及搜尋

4-6 陣列、排序及搜尋 N N

4-6 陣列、排序及搜尋