1 / 29

設計自己需要的函式 (function) 與認識 if 邏輯的控制結構

設計自己需要的函式 (function) 與認識 if 邏輯的控制結構. 李大偉 交通大學. 課程內容. Java Script 與 HTML 的關係 什麼是自訂函式 —function (或是副程式)? 瞭解建立 function 的目的、語法 認識呼叫 function 的方法 認識函式中參數的用法 認識函式中 return 的語法 認識 if 的控制結構 瞭解什麼是 if ……else…… 認識 if 的邏輯判斷語法. Math 物件的內建函式.

cayla
Download Presentation

設計自己需要的函式 (function) 與認識 if 邏輯的控制結構

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 設計自己需要的函式(function)與認識 if邏輯的控制結構 李大偉 交通大學

  2. 課程內容 • Java Script與HTML的關係 • 什麼是自訂函式—function(或是副程式)? • 瞭解建立function的目的、語法 • 認識呼叫function的方法 • 認識函式中參數的用法 • 認識函式中return的語法 • 認識if的控制結構 • 瞭解什麼是 if ……else…… • 認識 if 的邏輯判斷語法

  3. Math物件的內建函式 • 在上一堂課我們已經知道在數學的物件中有許多很好用的內建函式(predefined function)如: • result = Math.cos(3.14159) • lotto = Math.random( ) • X=Math.pow(3,7)

  4. 自己需要的函式(function) • 可是,有時候在某些科學領域,他們所需要的常用的函式,卻不在數學物件中可以發現,如在2D空間中計算兩個分子之間的距離

  5. 完整的函式宣告包括 函式的名稱 參數的傳遞 函式的起始符號及終了符號 自訂函式function的格式 • <script language=JavaScript> • function distance(x1,y1,x2,y2) • //input: coordinates x1,y1,x2,y2 • //output: distance between molecule1 and molecule 2 • { • ……… • } • </script> • </head>

  6. 呼叫自訂函式 function • 呼叫(call)自訂函式function的語法跟呼叫(call)Math物件的內建函式非常類似,只不過在呼叫(call)自訂函式function不需要再叫此函式的父親,如: • 呼叫Math物件的sqrt:r = Math.sqrt(36); • 呼叫自訂函式distance:r = distance(1,1,3,4)

  7. 製作「計算分子間的距離」的表單 • 開啟FrontPage,將空白網頁以「index.htm」存於「 桌面\WWW\js-5」 • 先在「一般」狀態,輸入標題「計算分子間的距離」,接著下面插入1×1的表格 • 在表格中選按「插入」「表單」「文字方塊」,然後將「提交」「重新輸入」刪除。 • 在此文字方塊前輸入「分子1與分子2間的距離:」 • 跳下一行後,選按「插入」「表單」「按鈕」,摽將「按鈕」改為「計算」 • 如右圖

  8. 命名「計算分子間的距離」上的物件 TYPE="text" NAME=“T1“ 文字方塊:其名為 “T1” <form name=“F1"> 表單:其名為 “F1” type= " button " " name="B1" > 按鈕:其名為“B1”

  9. 建立distance自訂函式 • 在html模式下,在</head>之前輸入 • <script language=JavaScript> • function distance(x1,y1,x2,y2) • //input: coordinates x1,y1,x2,y2 • //output: distance between molecule1 and molecule 2 • { • Var dxy; • dxy = ((x2-x1)^2+(y2-y1)^2)^0.5 • return dxy; • } • </script> 此為EXCEL中的公式,無法在JavaScript中使用 請利用右邊的內建函數寫出此公式

  10. return在 function所扮演的角色 • return的語法: • return + 變數 or return + 算式 • 在function的程式中如果有return存在,function的程式一執行到此即結束,並將return後所帶的算式之計算結果傳回當成呼叫此function的值。 • 若function的程式中如果沒有return存在,則function的程式將執行至終了符號「}」,然後回到原呼叫此function的地方,但是此時的function不等於任何值。

  11. 建立onClick的事件 • 在「HTML」狀態下,找到 <input type= " button " value= "計算" name="B1" > 在「B1」之後加入onClick事件處理 ,如: • onClick="T1.value=distance(1,1,4,5) “ • 試試看分子之間的距離是否等於5? • 作業一: • 現在x1,y1,x2,y2是固定值(1,1,4,5),請設計以文字方塊的詢問形式輸入x1,y1,x2,y2 • 下面三張投影片是示範

  12. 建立輸入x1,y1,x2,y3的文字方塊 • 在「分子1與分子2間的距離:」之前放置四個文字方塊,並且分別在文字方塊前輸入: • 分子1的x座標(x1): • 分子1的y座標(y1): • 分子2的x座標(x2): • 分子2的y座標(y2):

  13. 命名「計算分子間的距離」上的新物件 T2 T3 T4 T5

  14. 在「HTML」狀態下,找到 <input type="text" name="T2" size="20" > 在「>」之前加入onChange事件處理 ,如: onChange=“x1=T2.value “ 修正呼叫distance的指令 "T1.value=distance(1,1,4,5) “  ="T1.value=distance(x1,1,4,5) “ 試試看是否能在T2中任意輸入數字改變計算結果 若能請繼續完成作業一。 在T2建立onChange的事件

  15. 函式—function的用處 • 用來定義自己所需要的特定常用數學函式。 • 在不同的地方常常使用相同的程式時,可先將此程式寫為函式,然後直接呼叫之即可。 • 另外更重要的是當JavaScript的指令太長時,使得HTML主體程式不易閱讀,因此使用函式以簡化HTML主體程式

  16. 更新「加減乘除練習表」 • 請將「js-4」作業中的「加減乘除練習表」拷貝至此 • 移至剛剛的FrontPage,改為「HTML」模式,在</body>之前貼上剛剛選取的部分,結果應如右圖

  17. 在「HTML」模式下找到「出題」的按鈕物件,將其onClick後的指令全部拷貝在「HTML」模式下找到「出題」的按鈕物件,將其onClick後的指令全部拷貝 再到</script>之前,建立quiz函式如下: function quiz() { 將剛剛拷貝「出題」的指令全貼於此 }; 再回到「出題」中的onClick改為 onClick=“quiz()” 在function quiz()中,所有文字方塊的物件都要加上父親物件的名字,如: T1.value=Math.floor((99+1)*Math.random());  F2.T1.value=Math.floor((99+1)*Math.random()); 沒有return指令的函式

  18. 增加「檢查答案」按鈕 • 在「一般」模式下,然後在「加減乘除練習表」的「出題」按鈕再增加一個「檢查」的按鈕,其物件的name應為「B3」如右圖

  19. 檢查答案的函式 • 在「檢查答案」的按鈕加上onClick的指令如下: • <input type="button" value="檢查答案" name="B3" onclick=check()> • 再到</script>之前,建立check函式的想法如下: • 先將F2.T1的值加上F2.T2的值存於P1 • 再將F2.T3的值存於P2 • 最後檢查P1等於P2 • 如果相等,將F2.T3的文字改為correct! • 如果不相等,將F2.T3的文字改為wrong!

  20. if ( P1 == P2) { 執行相等成立時的任務如:將F2.T3的文字改為correct! } Else { 執行相等不成立時的任務如:將F2.T3的文字改為correct! } function check() { var P1=F2.T1.value+F2.T2.value; var P2=F2.T3.value; if (P1 == P2) {F2.T3.value="Correct!";} else {F2.T3.value="Wrong!";} } if指令的介紹

  21. = = 等於 ! = 不等於 < 小於 <= 小於等於 > 大於 > = 大於等於 ! logical NOT && logical AND || logical OR 範例 if ( r > 2 && r <=5) {F2.T1.value=“good!”} else {F2.T1.value=“bad!”} 認識 if 的邏輯判斷語法

  22. 簡單式的 if 控制結構 • credit = “Good” • if (grade < 60){credit = “Fail”} credit = “Good” grade < 60 真 假 credit = “Fail”

  23. 複和式的 if 控制結構 • if (grade < 60) • {credit = “Fail”} • else • {credit = “Good”} grade < 60 真 假 credit = “Fail” credit = “Good”

  24. 想想看上一張投影片的函式有何錯誤? 為什麼正確的答案還是顯示「Wrong!」呢? 請使用parseInt的指令幫忙將F2.T1.value的純文字資料改為整數資料如: parseInt(F2.T1.value) 介紹新指令 parseInt( ):將純文字資料改為整數資料 parseFloat( ):將純文字資料改為實數資料 修正上面的函式

  25. JS Homework 5-1 • HW1:完成「計算分子間的距離」 (10%) • 請設計以文字方塊的詢問形式輸入 • X1:分子1的x座標 • Y1:分子1的y座標 • X2:分子2的x座標 • Y2:分子2的y座標 • 最後能計算出正確的分子間的距離 • 在「計算」按鈕的右邊再放一個按鈕「任意擺放分子」,當按下去時,可以在T2, T3, T4, T5任意產生0~10間的任意實數。

  26. JS Homework 5-2 • HW2:完成「加減乘除練習表」 的更新 • 完成「檢查答案」按鈕(15%) • 檢查加減乘除的結果 • 若該文字方塊答案正確,將內容改為Correct! • 若該文字方塊答案錯誤,將內容改為Wrong! • 增加「出題」按鈕的功能(15%) • 維持原來所有加減乘亂數的產生規則 • 唯有被除數必須為除數的整數倍N,其N的範圍為1~19的任意整數。注意仍然維持除數是2~9之間的任意整數。 • 需將加減乘除的結果,全部清乾淨如: • F2.T3.value=“ “;

  27. JS Homework 5-3 • HW3:「是否為5或7的倍數?」的檢查 • 完成「檢查」按鈕 (10%) • 若該文字方塊的數字為7的倍數,將內容改為「此數為7的倍數」 • 若該文字方塊的數字為5的倍數,將內容改為「此數為5的倍數」 • 若該文字方塊的數字為5及7的公倍數,將內容改為「此數為5及7的公倍數」 • 若該文字方塊的數字不是5或7的倍數,將內容改為「此數不是5或7的倍數」 • 將「js-5」整個目錄上傳至WWW,並在目錄框架中為其增加新的超連結「JS Homework 5」

  28. 是否為5或7的倍數? 是否為5的倍數? 是 否 是否為7的倍數? 是否為7的倍數? 否 是 是 否 此數為5及7的公倍數 此數為5的倍數 此數為7的倍數 此數不是5或7的公倍數

  29. 作業繳交方式 • 請在今天(12月9日)午夜十二點以前在BB寫出你的個人網址並請助教檢查,如 • http://s-web.cc.nctu.edu.tw/~u98250??? • 並且告訴助教何者超連結是「 Javascript Homework 4」作業,何者超連結是「Javascript Homework 5」作業 • 12月9日午夜十二點以前繳交滿分100分 • 12月9日午夜十二點以後就不需要繳交,以0分計算

More Related