專利名稱:兼具靜態(tài)互動與動態(tài)互動的程序的設計方法
技術領域:
本發(fā)明涉及一種程序語言的設計方法,且特別涉及一種兼具靜態(tài)互動與動態(tài) 互動的程序的設計方法。
背景技術:
程序設計為目前資訊科技產(chǎn)業(yè)蓬勃發(fā)展不可或缺的重要一環(huán),而這方面的人 才在培訓上卻是不容易,目前于坊間或?qū)W校皆有諸多這方面的課程可供修習,但是 在成效上未必可以達到預期的效果。
程序設計為訓練邏輯思考的重要課程,傳統(tǒng)程序設計的教學,大多先介紹程 序內(nèi)容與程序撰寫方法,再將程序執(zhí)行結果顯示于電腦屏幕,以觀看其程序是否撰 寫正確,并達到預期的功能,此種方法雖然可以讓程序設計者藉由屏幕輸出了解程 序執(zhí)行結果,卻無法使其有實際"參與"程序執(zhí)行過程的體驗,此外,程序范例多 以電子化問題為主,例如,交易作業(yè)、成績計算等,對剛接觸程序設計者而言,往 往過于艱深單調(diào),無法引發(fā)學習興趣,因而降低學習效果。
發(fā)明內(nèi)容
本發(fā)明的目的是在提供一種兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,分 別使用一般電子化問題與機器人控制問題,說明同一種程序撰寫方法。
根據(jù)本發(fā)明的上述目的,提出一種兼具靜態(tài)互動與動態(tài)互動的程序的設計方
法,至少包含下列步驟
(a) 決定程序的一撰寫方法;
(b) 根據(jù)該撰寫方法,提供多個待解問題,包含一靜態(tài)待解問題與一動態(tài)待 解問題;
(c) 根據(jù)該靜態(tài)待解問題,主要使用該撰寫方法撰寫一第一執(zhí)行程序,并顯 示該第一執(zhí)行程序的執(zhí)行結果于一顯示裝置上,使程序設計者可于該顯示裝置觀看 該第 一執(zhí)行程序的執(zhí)行結果;以及(d)根據(jù)該動態(tài)待解問題,主要使用與靜態(tài)互動相同的撰寫方法撰寫一第二 執(zhí)行程序,并傳輸該第二執(zhí)行程序至一可程序化移動裝置上,以使該可程序化移動 裝置依據(jù)該第二執(zhí)行程序進行作動,由此使程序設計者可觀看該第二執(zhí)行程序的執(zhí) 行結果。
在一實施例中,該方法更包含
一程序測試的步驟,決定其中一待解問題,讓程序設計者在一特定時間內(nèi)進 行程序的撰寫,然后對于程序設計者所撰寫程序的執(zhí)行結果與該待解問題進行比 對,以驗證其所撰寫程序的準確性,作為評定程序優(yōu)劣的標準。
通過一般電子化問題(靜態(tài)互動模式)與機器人控制(動態(tài)互動模式)的雙 軌進行方式,可提升程序設計者對于程序設計的興趣并激發(fā)創(chuàng)造力,使程序設計者 理解并活用程序設計方法。
為讓本發(fā)明的上述和其他目的、特征、優(yōu)點與實施例能更明顯易懂,附圖的 詳細i兌明如下
圖1繪示依照本發(fā)明的一種兼具靜態(tài)互動與動態(tài)互動的系統(tǒng)的示意圖。。 圖2繪示依照本發(fā)明一較佳實施例的一種兼具靜態(tài)互動與動態(tài)互動的程序的 設計方法的流程圖。
圖3繪示依照本發(fā)明的一種可程序化移動裝置的示意圖。 圖4a繪示為圖3中的一種可程序化移動裝置向前走的示意圖。 圖4b繪示為圖3中的一種可程序化移動裝置向后走的示意圖。 圖4c繪示為圖3中的一種可程序化移動裝置向左轉(zhuǎn)的示意圖。 圖4d繪示為圖3中的一種可程序化移動裝置向右轉(zhuǎn)的示意圖。
主要元件符號說明
100系統(tǒng)110:輸入裝置
120中央處理單元130:存儲裝置
140顯示裝置150:可程序化移動裝置
200流程210—-240:步驟
300可程序化移動裝置310:第一馬達
311第一輪312:第二輪320:第二馬達 321:第三輪
322:第四輪
具體實施例方式
請參照圖1,其繪示依照本發(fā)明的一種兼具靜態(tài)互動與動態(tài)互動的系統(tǒng)的示意 圖。該系統(tǒng)IOO包含有一輸入裝置110、 一中央處理單元120、 一存儲裝置130、 一顯示裝置140以及一可程序化移動裝置150。該輸入裝置110為一可將數(shù)據(jù)輸入 的媒介,藉由該輸入裝置110將數(shù)據(jù)輸入至該中央處理單元120,并儲存于該存儲 裝置130,可選擇的將輸入數(shù)據(jù)的執(zhí)行結果輸出至該顯示裝置140和該可程序化移 動裝置150。
在本實施例中,該輸入裝置110為一鍵盤,用以將所欲撰寫的程序輸入該中 央處理單元120并儲存于該存儲裝置130。該顯示裝置150為一屏幕,用以顯示所 撰寫輸入程序的執(zhí)行過程與結果。該可程序化移動裝置160為一具有驅(qū)動馬達的機 器人,用以根據(jù)所撰寫輸入程序的要求而進行所對應的動作,產(chǎn)生另一種不同于該 顯示裝置150的程序執(zhí)行結果的表現(xiàn)方式。
請參照圖2,其繪示依照本發(fā)明一較佳實施例的一種兼具靜態(tài)互動與動態(tài)互動 的程序的設計方法的流程圖。在本發(fā)明一較佳實施例中,采用一般電子化問題(靜 態(tài)互動模式)與機器人控制(動態(tài)互動模式)的雙軌并行方式進行程序的設計方法, 該方法200至少包含下列步驟
如步驟210所示,決定程序的一撰寫方法, 一開始先設訂一程序撰寫方法, 例如回圈、選擇、物件導向觀念、類別、多載、繼承、封裝等方法。
如步驟220所示,根據(jù)該撰寫方法,提供多個待解問題,包含一靜態(tài)待解問 題與一動態(tài)待解問題,而且全程釆用一致的該些待解問題,當程序設計者完成該些 待解問題,可在過程中調(diào)整程序功能與改變程序撰寫方法來解決相同的該些待解問 題。在本實施例中,該靜態(tài)待解問題為一般電子化問題,且特別是關于一種"畫矩 形與三角形"問題,而該動態(tài)待解問題為機器人控制問題,且特別是關于一種"控 制機器人前進、后退、轉(zhuǎn)彎以及停止"問題。
如步驟230所示,根據(jù)該靜態(tài)待解問題,主要使用該撰寫方法撰寫一第一執(zhí) 行程序,并顯示該第一執(zhí)行程序的執(zhí)行結果于一顯示裝置上,使程序設計者可于該 顯示裝置觀看該第 一執(zhí)行程序的執(zhí)行結果。
如步驟240所示,根據(jù)該動態(tài)待解問題,主要使用該撰寫方法撰寫一第二執(zhí)
6行程序,并傳輸該第二執(zhí)行程序至一可程序化移動裝置上,以使該可程序化移動裝 置依據(jù)該第二執(zhí)行程序進行作動,由此使程序設計者可觀看該第二執(zhí)行程序的執(zhí)行 結果。
在本實施例中,步驟230為一靜態(tài)互動的步驟,其中的待解問題為一 "畫矩 形與三角形"問題。首先,該第一執(zhí)行程序以傳統(tǒng)結構式寫法,來進行解決該"畫 矩形與三角形"問題的程序撰寫。
在本實施例中,該第一執(zhí)行程序需先進行前置處理器的呼叫,控制所需的頭 檔,接著宣告函數(shù),然后進行主程序與副程序的撰寫,完成后,進行程序的組譯與 除錯,最后執(zhí)行該所撰寫的程序,于一顯示裝置上觀看其程序執(zhí)行結果。
在該顯示裝置上所顯示的第 一執(zhí)行程序的執(zhí)行結果為出現(xiàn)一提示訊息 為"THIS PROGRAM DRAWS A RECTANGLE OR A TRIANGLE ON THE SCREEN" 、 " Enter 1 to draw a rectangle"以及"Enter 2 to draw a triangle:", 當使用該輸 入裝置IIO輸入"1"時,則在該顯示裝置140上會出現(xiàn)一矩形圖案,當使用一輸 入裝置110輸入"2"時,則在該顯示裝置140上會出現(xiàn)一三角形圖案,在每一次 顯示完該些圖案后,會出現(xiàn)另一提示訊息為"Doyouwant to continue (y/n):", 當輸入"y"時,則該程序繼續(xù)執(zhí)行,當輸入"n"時,則該程序停止執(zhí)行。
在發(fā)明另一實施例中,提供另一種程序撰寫方式,釆用物件導向方法來進行 解決該「畫矩形與三角形」問題的程序撰寫。首先,輸入和輸出所需頭檔,接著定 義一個名為「 shape」的類別、定義一個名為「 Triangle」的類別以及定義一個名 為r Rectangle」的類別,接著進行主程序的撰寫,該主程序使該顯示裝置顯示出 一提示訊息,要求輸入變數(shù)做為一長度A與一長度B的變數(shù)。
接著將不同的指標變數(shù)定義為分別對應的r shape J 、 「 Triangle」以及 rRectangle」的一個例子,接著指定輸出寬度與精度,分別為5個字元與3位數(shù), 然后進行動態(tài)連結將三角形與矩形輪廓顯示于該顯示裝置上,并同時依據(jù)所輸入的 長度A與長度B的變數(shù),計算出其各別的面積。例如當輸入長度A與長度B的變 數(shù)分別為11. 234和8. 346,則程序計算出其三角形與矩形面積分別為46. 9與93. 8。
在本實施例中,步驟240為一動態(tài)互動的步驟,其中的待解問題為一 r控制 機器人前進、后退、轉(zhuǎn)彎以及停止」問題。首先,該第二執(zhí)行程序以傳統(tǒng)結構式寫 法來進行解決該r控制機器人前進、后退、轉(zhuǎn)彎以及停止J問題的程序撰寫。
首先,需先進行前置處理器的呼叫,控制所需的頭檔,接著定義變數(shù)與宣告 函數(shù),然后進行主程序與副程序的撰寫。在主程序中,先設定感應器名稱并將其啟動,接著使用"for"回圏逐一執(zhí)四個函數(shù),分別為控制機器人向前走的函數(shù)、向
后走的函數(shù)、向左轉(zhuǎn)的函數(shù)以及向右轉(zhuǎn)的函數(shù)。
其中該主程序包含設定起始值與執(zhí)行條件,在本實施例中,該起始值設定為4, 每執(zhí)行一次則自動加1,其執(zhí)行四個函數(shù)的判斷條件分別為當起使值除以一預設值 的余數(shù)為0時,則執(zhí)行向前走的函數(shù);當起使值除以一預設值的余數(shù)為1時,則執(zhí) 行向后走的函數(shù);當起使值除以一預設值的余數(shù)為2時,則執(zhí)行向左轉(zhuǎn)的函數(shù);當 起使值除以一預設值的余數(shù)為3時,則執(zhí)行向右轉(zhuǎn)的函數(shù)。主程序最后還包括一個 機器人停止函數(shù)。在本實施例中,該預設值為4。
請參照圖3,其繪示為本發(fā)明的一種可程序化移動裝置的示意圖。該可程序化 移動裝置300包含有一第一馬達310以及一第二馬達320。其中該第一馬達310用 以同時驅(qū)動一第一輪311與一第二輪312。該第二馬達320用以同時驅(qū)動一第三輪 321與一第四輪322。
請參照圖4a,其繪示為圖3中的一種可程序化移動裝置向前走的示意圖。向 前走的函數(shù)的副程序撰寫用以驅(qū)動該第一馬達310以及該第二馬達320,使其同時 往同一方向正轉(zhuǎn),使該可程序化移動裝置300向前運動。請參照圖4b,其繪示為 圖3中的一種可程序化移動裝置向后走的示意圖。該向后走的函數(shù)的副程序撰寫用 以驅(qū)動該第一馬達310以及該第二馬達320,使其同時往同一方向逆轉(zhuǎn),使該可程 序化移動裝置300向后運動。請參照圖4c,其繪示為圖3中的一種可程序化移動 裝置向左轉(zhuǎn)的示意圖。該向左轉(zhuǎn)的函數(shù)的副程序撰寫用以驅(qū)動該第二馬達320,此 時因為只有該第三輪321與該第四輪322轉(zhuǎn)動,因此該可程序化移動裝置300向左 邊運動。請參照圖4d,其繪示為圖3中的一種可程序化移動裝置向右轉(zhuǎn)的示意圖。 該向右轉(zhuǎn)的函數(shù)的副程序撰寫用以驅(qū)動該第一馬達310,此時因為只有該第一輪 311與該第二輪312轉(zhuǎn)動,因此該可程序化移動裝置300向右邊運動。
完成后,進行程序的組譯與除錯,最后執(zhí)行該所撰寫的程序,通過一可程序 移動裝置的動作情況,觀看其程序執(zhí)行的過程與結果,該可程序化移動裝置300 會根據(jù)所撰寫的程序,進行前進、后退、轉(zhuǎn)彎以及停止等動作。
在發(fā)明另一實施例中,亦提供另一種程序撰寫方式,采用物件導向方法來進 行解決該「控制機器人前進、后退、轉(zhuǎn)彎以及停止」問題。首先,控制所需的頭檔, 其中包括與光源感應器相關和與馬達相關的頭檔。接著定義一個名為「 Turn-left J 的類別、定義一個名為r Turn—left —in—curve」的類別以及定義一個名為 r Turn—left —in—pivot J的類另'h
8接著進行主程序的撰寫,該主程序?qū)⒉煌闹笜俗償?shù)定義為分別對應的
「Turn—left J 、 「 Turn—left —in—curve J以及r Turn—left —in—pivot J的一個例 子,接著進行動態(tài)連結,執(zhí)行每一個類別中的每一個函數(shù)。完成后,進行程序的組 譯與除錯,將該撰寫的程序輸入至該可程序化移動裝置,則該可程序化移動裝置則 會根據(jù)程序的功能動作,進行向左轉(zhuǎn)彎以及原地向左旋轉(zhuǎn)等動作。
在本實際例中,其中在該動態(tài)互動的步驟中,使用一樂高機器人作為一可程 序化移動裝置,程序設計者必須使用(:語法或0++物件導向語法,控制該可程序移 動裝置前進、后退、轉(zhuǎn)彎以及停止。
在本發(fā)明另一較佳實施例中,設計方法在上述的步驟240之后,更可包含一 程序測試的步驟,讓程序設計者在一特定時間內(nèi)進行程序的撰寫,然后對于程序設 計者所撰寫程序的執(zhí)行結果與待解問題進行比對,以驗證其所撰寫程序的準確性, 作為評定程序優(yōu)劣的標準。
雖然本發(fā)明已以一較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何熟 習此技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作各種的更動與潤飾,因此本 發(fā)明的保護范圍當視后附的權利要求書所界定者為準。
權利要求
1. 一種兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,包含有(a)決定程序的一撰寫方法;(b)根據(jù)該撰寫方法,提供多個待解問題,包含一靜態(tài)待解問題與一動態(tài)待解問題;(c)根據(jù)該靜態(tài)待解問題,主要使用該撰寫方法撰寫一第一執(zhí)行程序,并顯示該第一執(zhí)行程序的執(zhí)行結果于一顯示裝置上,使程序設計者可于該顯示裝置觀看該第一執(zhí)行程序的執(zhí)行結果;以及(d)根據(jù)該動態(tài)待解問題,主要使用該撰寫方法撰寫一第二執(zhí)行程序,并傳輸該第二執(zhí)行程序至一可程序化移動裝置上,以使該可程序化移動裝置依據(jù)該第二執(zhí)行程序進行作動,由此使程序設計者可觀看該第二執(zhí)行程序的執(zhí)行結果。
2. 如權利要求1所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其中步 驟(d)之后更包含(e) —程序測試的步驟,決定其中一待解問題以給定程序設計者在一特定時 間內(nèi)進行程序的撰寫,然后比對各該撰寫程序的執(zhí)行結果。
3. 如權利要求2所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其中步 驟(e)所決定的待解問題為 一靜態(tài)待解問題。
4. 如權利要求2所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其中步 驟(e)所決定的待解問題為 一動態(tài)待解問題。
5. 如權利要求1或3所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其 中該靜態(tài)待解問題為于該顯示裝置顯示一矩形與三角形問題。
6. 如權利要求1或4所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其 中該動態(tài)待解問題為撰寫程序控制該可程序化移動裝置前進與停止。
7. 如權利要求1或4所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其 中該動態(tài)待解問題為撰寫程序控制該可程序化移動裝置后退與停止。
8. 如權利要求1或4所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其中該動態(tài)待解問題為撰寫程序控制該可程序化移動裝置轉(zhuǎn)彎。
9. 如權利要求1或4所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其 中該動態(tài)待解問題為撰寫程序控制該可程序化移動裝置前進、后退、轉(zhuǎn)彎以及停止。
10. 如權利要求1所述的兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,其中該 撰寫方法為回圈方法、選擇方法、物件導向觀念方法、類別方法、多載方法、繼承 方法或去t裝方法。
全文摘要
一種兼具靜態(tài)互動與動態(tài)互動的程序的設計方法,結合一靜態(tài)互動的步驟以及一動態(tài)互動的步驟,其中該靜態(tài)互動的步驟將使用程序撰寫方法所撰寫程序的執(zhí)行結果,顯示于一顯示裝置,通過該顯示裝置,觀看其執(zhí)行結果;該動態(tài)互動的步驟將使用與靜態(tài)互動相同的程序撰寫方法所撰寫程序的執(zhí)行結果,傳輸至一可程序化移動裝置上,使該可程序化移動裝置能依據(jù)所撰寫的程序進行作動。
文檔編號G06F9/44GK101464793SQ20071030053
公開日2009年6月24日 申請日期2007年12月20日 優(yōu)先權日2007年12月20日
發(fā)明者柯千禾 申請人:大葉大學