德國台灣同學會

 找回密碼
 註冊
搜索
查看: 5345|回復: 6

javascript..

[複製鏈接]
發表於 2008-1-21 23:02:39 | 顯示全部樓層 |閱讀模式
本系真是見鬼了..

medien要修一堆infomatik的課

我一個作業不知道哪裡出錯 有沒有高手會看....一直呼叫不出來

(好幾組人根本寫都沒寫出來 -  -||| 我覺得出的蠻難的,才上兩次捏...)

一個參數打錯  -  -"" 以改

這個程式的目的是讓代進去的array由右至左從大到小。

------------------------------------------------------------------------------------------

<html>
<head>
<title>JavaScript Aufgabe</title>
</head>
<body>
<script type="text/javascript">
<!-- Kommentar fuer alte Browser
  var myarray = new Array (5,7,1,24,13,2,17);
  
  function tauschalgorithmus (eingabeliste) {

  for (var j = 0; j <= eingabeliste.length-1; j++){
  if((eingabeliste[j]) > (eingabeliste[j+1])){
  p = eingabeliste [j+1];
  eingabeliste [j+1] = eingabeliste [j];
  eingabeliste [j] =p;
  document.write (myarray + "</br></br>");
  }
  return eingabeliste;
  }


  
  for (var i = 0; i <= myarray.length; i++){  
  tauschalgorithmus (myarray);
   
  }
  
  }
// -->
</script>
</body>
</html>

[ 本文最後由 kido183 於 2008-1-21 23:22 編輯 ]

評分

參與人數 1短評 +4 收起 理由
immanuel + 4 好,我承認很久沒碰了,以上皆是胡說...

查看全部評分

發表於 2008-1-21 23:23:51 | 顯示全部樓層
This works  !!
建議  用 eclipse  IDE 編
for, if   後空一行
/////////////////////////////////////////////////////////

<html>

        <head>
                 <title>JavaScript Aufgabe</title>
        </head>

        <body>
                <SCRIPT language=javascript type="text/javascript">
        <!-- Kommentar fuer alte Browser
                  var myarray = new Array (5,7,1,24,13,2,17);
  
                function tauschalgorithmus (eingabeliste) {

                          for (var j = 0; j < eingabeliste.length; j++){

                                  if((eingabeliste[j]) > (eingabeliste[j+1])) {

                                  p = eingabeliste[j+1];
                                  eingabeliste[j+1] = eingabeliste[j];
                                  eingabeliste[j] =p;

                                  document.write (myarray+ "</br></br>");
                                  }
         
                          }

                }
  
  
                  for (var i = 0; i < myarray.length; i++){  

                  tauschalgorithmus (myarray);
                }
// -->
                </SCRIPT>
        </body>
</html>

[ 本文最後由 aquacloud 於 2008-1-22 00:35 編輯 ]

評分

參與人數 2現金 +10 短評 +1 收起 理由
kido183 + 10 感謝 T___T
immanuel + 1 所以bug在哪裡?

查看全部評分

 樓主| 發表於 2008-1-21 23:25:59 | 顯示全部樓層
回上一篇 那個eingabeliste是自己定義的,為了要讓很多個不同的array都可以代進來使用

我這裡附一個可以跑的,只跑一次的..

-------------------------------------------------------

<html>
<head>
<title>JavaScript Aufgabe</title>
</head>
<body>
<script type="text/javascript">
<!-- Kommentar fuer alte Browser
  var myarray = new Array (5,7,1,24,13,2,17)
  for (var i = 0; i <= myarray.length-1; i++){  
  if(myarray > myarray[i+1]) {
   t = myarray[i+1];
   myarray[i+1] = myarray;
   myarray = t ;  
   
  }
  document.write (myarray + "</br></br>");
  }
// -->
</script>
</body>
</html>

評分

參與人數 1短評 +1 收起 理由
immanuel + 1 唉~不容易,好加在我已經脫離這個苦海了...

查看全部評分

發表於 2008-1-21 23:27:39 | 顯示全部樓層
你的 for (var i = 0; i < myarray.length; i++)  不該在 function 裡  建議 用 tab 把 層次 分出   

然後你的function 不用 return.... 我把 return 拿掉就可以了


return 的用法  參考 一下 這裡
基本上 除非你需要某個 varible..  好比 這裡的 addVat(price)  那你才需要 return

[ 本文最後由 aquacloud 於 2008-1-21 23:36 編輯 ]

評分

參與人數 3現金 +5 短評 +4 收起 理由
mmarta + 1 拜....
kido183 + 3 如果我直接寫price = price * 1.175
immanuel + 5 厲害厲害~

查看全部評分

 樓主| 發表於 2008-1-21 23:46:08 | 顯示全部樓層
順便貼一下

這個網站很好阿 我上課聽不懂的在這裡找到很多例子

裡面javascript從概念到blog的應用都有。

http://www.study-area.org/coobila/

評分

參與人數 1短評 +1 收起 理由
mmarta + 1 感謝分享

查看全部評分

 樓主| 發表於 2008-1-22 00:01:01 | 顯示全部樓層
原文由 aquacloud 於 2008-1-21 11:27 PM 發表
你的 for (var i = 0; i < myarray.length; i++)  不該在 function 裡  建議 用 tab 把 層次 分出   

然後你的function 不用 return.... 我把 return 拿掉就可以了


return 的用法  參考 一下 這裡
...


請教一下阿...

如果return price * 1.75 拿掉

改成 price = price *1.75  這樣結果也是一樣捏

差在哪裡?

還是加了return,只有在被使用的那個瞬間改變了price的值?

謝謝!

評分

參與人數 1短評 +1 收起 理由
aquacloud + 1 剛剛有寫錯 現在校正了

查看全部評分

發表於 2008-1-22 00:13:44 | 顯示全部樓層
原文由 kido183 於 2008-1-22 00:01 發表


請教一下阿...

如果return price * 1.75 拿掉

改成 price = price *1.75  這樣結果也是一樣捏

差在哪裡?

還是加了return,只有在被使用的那個瞬間改變了price的值?

謝謝!

不一樣喔    return price*1.75  (case A)   <--- price 的值不變   他只是把 price*1.75 送回 去
而 price = price*1.75  (case B) 就吧price 改了

so  if tableRow ("Escort",  9000)

function tableRow(car, price){
    document.writeln("<tr><td>" + car + "</td><td>"   + price + "</td><td>" + addVat(14999) + "</td></tr>")        
}   
case A   is correct
case b is wrong 是錯的 因為  addVat(14999)  不會return
but if

function tableRow(car, price){
    document.writeln("<tr><td>" + car + "</td><td>"   + price + "</td><td>" + addVat(price) + "</td></tr>")        
}   

case A -> output is  Escort    9000   and 9000*1.75      ::::: price = 9000
case B ->no output  (still wrong  一樣的原因  addvat 不會return)  but price = 9000*1.75


but if

function tableRow(car, price){
    document.writeln("<tr><td>" + car + "</td><td>"   + addVat(price)  + "</td><td>" +price + "</td></tr>")        
}  

case A -> output:  Escort    9000*1.75     9000     :::::: price = 9000
case B -> output;  no output  (still wrong 一樣的原因 addvat 不會return        price = 9000*1.75 after 上面的程序
)

i

[ 本文最後由 aquacloud 於 2008-1-22 00:50 編輯 ]

評分

參與人數 1現金 +10 收起 理由
kido183 + 10 感謝!這樣就瞭解了!!

查看全部評分

德國台灣同學會論壇

GMT+1, 2024-12-3 18:27

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表