2011年12月10日 星期六

電腦課VB期末考題解析(?)

呃...相信大家都知道老師上課要大家設一個程式
讓使用者輸入N值後計算,N!以及1!+...+N!的答案

從上面這邊我們知道 至少要用到三個變數

分別儲存N值、N!的答案、1!+...+N!答案

這邊範例把這三個變數分別叫做n ans1 ans2

可以把步驟拆成:輸入N→計算→輸出答案

計算部分又可以拆成N!以及1!+...+N!

而這兩個答案之間又有因果關係

就是把前面的結果再加上目前所計算出的階乘

例如N=3

就先算1!=1 計算總和=>1

再算2!=2 計算總和=>1+2=3

最後算3!=6 計算總和=>1+2+6=9

所以只要把N!的寫法解出問題就迎刃而解了


首先是要求使用者輸入N

程式可以寫成

n = inputbox("請輸入n")

不過因為n待會必須用來計算,所以只能是數值

所以我們加上val函數,避免使用者輸入其他資料造成計算上錯誤

n = val(inputbox("請輸入n"))

數學上我們知道N!=1*2*3*....*N

看到N個東西連乘就要想到用迴圈去達成

這時就可以寫成
ans1 = 1
For i = 1 To n
ans1 = ans1*i
Next i
第一行我們先讓ans1初始值為1
然後再根據每跑一次迴圈i就增加1的方式去達成1*2*3*...*N

接著我們再把1!+...+N!的計算補上
根據上面的解說,作法就是在乘上下個數字之前
先把本次計算出的數值加到總和中

所以程式可以改成
ans1 = 1
For i = 1 To n
ans1 = ans1*i
ans2 = ans2+ans1
Next i

最後就是輸出的部分啦
Print n ; "! = " ; ans1
Print "1!+...+" ; n ; "! = " ; ans2

2011年8月1日 星期一

高中化學沉澱表

呃....基於某些理由
開始想在自己blog整理課業的資料
於是第一篇就來發很久之前就整理經過多次小修正的沉澱表
裡面包含了一些自己的口訣(只是念起來順而已 囧..)
如果有錯誤、闕漏的話,請幫忙指證謝謝
雖然整理的並不是很好
請不要用做商業用途(雖然應該不會有人這麼做)
也禁止原封不動copy到其他地方發表,僅供個人學習參考
轉載請註明初處...
點選檔案的地方就可以下載PDF檔了

2011年2月23日 星期三

筆記 - 修復w7的圖示問題

親愛的小湯圓電腦又出問題了,這次直接遠端找我。
看到狀況之後不免呆滯+逼問
因為沒遇過這種情況
最後丟google
找到了這段指令
taskkill /im explorer.exe /f 
  cd /d %userprofile%\appdata\local 
  del iconcache.db /a 
  start explorer.exe 
  exit
就死馬當活馬醫,試試看。
還真的就這樣修好了
在詳細查了一下,是w7的bug..
不過也用w7的我,卻沒發生過
或許是我用64bit 或 我有定期更新的關係吧?