Private Sub Form_Load() Dim a(30) As Integer Open App.Path & "\in.txt" For Input As #1 Input #1, x Close #1 Open App.Path & "\out.txt" For Output As #1 a(0) = 0 a(1) = 1 For i = 2 To x a(i) = a(i - 1) + a(i - 2) Next i Print #1, a(x) Close #1 End Sub
Dim a(1000) As Long Private Sub Form_Load() Open App.Path & "/in.txt" For Input As #1 Input #1, n Open App.Path & "/out.txt" For Output As #2 a(0) = 0 a(1) = 1 For i = 2 To n a(i) = a(i - 1) + a(i - 2) Next i Print #2, a(n) Close #2 Close #1 End Sub
直接空寫一下遞迴版的程式,你們再試試修改一下。 form_load() open app.path & "\in.txt" for input as #1 open app.path & "out.txt" for output as #2 input #1,n print #2, myf(n) close #1 close #2 end sub
function myf(x as integer) as double select case x case 0 myf=0 case 1,2 myf=1 case else myf=myf(x-1)+myf(x-2) end select end function
Dim B(100) As Integer Private Sub Form_Load() Open App.Path & "/in.txt" For Input As #1 Open App.Path & "/out.txt" For Output As #2 Input #1, X Max = 0 n = X Select Case n Case 0 ans = 0 Case 1 ans = 1 Case Is > 1 B(0) = 0 B(1) = 1 For i = 2 To n B(i) = B(i - 1) + B(i - 2) Max = B(i) Next i ans = Max End Select Print #2, ans Close #2 Close #1 End Sub
Private Sub Form_Load() Open App.Path & "\in.txt" For Input As #1 Input #1, n Close #1 a = 1: b = 0 For i = 1 To n - 1 ans = a + b: b = a: a = ans Next Open App.Path & "\out.txt" For Output As #2 Print #2, ans Close #2 End Sub
Public Sub Form_Load() Me.Hide Open App.Path & "/in.txt" For Input As #1 Open App.Path & "/out.txt" For Output As #2 Input #1, x a = 0: b = 1 For i = 1 To x q = a + b a = b: b = q Next i Print #2, a Close #2 Close #1 End End Sub
Private Sub Form_Load()
回覆刪除Dim a(1000)
Open App.Path & "\in.txt" For Input As #1
Input #1, n
Close #1
Open App.Path & "\out.txt" For Output As #2
a(1) = 1
a(2) = 1
For i = 2 To n
b = Val(a(i - 2))
c = Val(a(i - 1))
ans = b + c
a(i) = ans
Next i
Print #2, ans
Close #2
End Sub
Private Sub Form_Load()
回覆刪除Dim a(30) As Integer
Open App.Path & "\in.txt" For Input As #1
Input #1, x
Close #1
Open App.Path & "\out.txt" For Output As #1
a(0) = 0
a(1) = 1
For i = 2 To x
a(i) = a(i - 1) + a(i - 2)
Next i
Print #1, a(x)
Close #1
End Sub
皓好,
回覆刪除原來是我太久沒寫程式了嗎?
這是我很喜歡的一個題目說,
費氏函數。
用陣列來寫的確很快,但是你中間特別又用了val函數是為什麼呢?
又是多遶了一圈的意思嗎?
費氏函數除了用陣列之外還有兩個方式,
1,如果限制不能用陣列的話,要如何解?
2,不知道你們學過「遞迴」了嗎?這個費氏函數用「遞迴」程式來寫,很經典的。
明兒個我飛去北海道,兩個星期後回來,所以這期間的程式,如果在北海道有網路,我也會上來看,如果沒網路,就再說啦,反正發文的日期是看得到的,只是還沒批改而已。要堅持哦。
Dim a(1000) As Long
回覆刪除Private Sub Form_Load()
Open App.Path & "/in.txt" For Input As #1
Input #1, n
Open App.Path & "/out.txt" For Output As #2
a(0) = 0
a(1) = 1
For i = 2 To n
a(i) = a(i - 1) + a(i - 2)
Next i
Print #2, a(n)
Close #2
Close #1
End Sub
Private Sub Form_Load()
回覆刪除Open App.Path & "\in.txt" For Input As #1
Input #1, x
Close #1
Open App.Path & "\out.txt" For Output As #2
a = 0
b = 1
If x = 0 Then
Print #2, a
ElseIf x = 1 Then
Print #2, b
Else
For i = 2 To x
c = a + b
a = b
b = c
Next i
Print #2, c
End If
Close #2
End Sub
阿瑋、高仔、Y揚、皓好,
回覆刪除我喜歡用阿瑋的程式,有費氏函數的精神,(我自己說的啦)。
還有,回頭又看了皓的程式,當輸入是0,1時,會出錯。(也就是說開端的值,沒注意到。
你們有用1000陣列的,有用30陣列的,超過30項呢? 超過integer呢?超過long呢?
反而是什麼都不說的,會是內定的double,可以做到最大的數值。
那我應該是多打的。
回覆刪除修正<>
遞迴喔。
好像還沒有學過。
我想看看怎麼寫。
因為好像沒有聽說過類似的
恩,老師你好好去玩~
我們會想念你的!! 禮物(2pt的大小...)
好啦。
祝你玩得愉快!!!!
對阿!
回覆刪除不知道老師可不可以貼一些有關『遞回』的程式碼=ˇ=
恩,我有修正過了。
回覆刪除開端沒有設定到。
那輸入0,1就會有問題
直接空寫一下遞迴版的程式,你們再試試修改一下。
回覆刪除form_load()
open app.path & "\in.txt" for input as #1
open app.path & "out.txt" for output as #2
input #1,n
print #2, myf(n)
close #1
close #2
end sub
function myf(x as integer) as double
select case x
case 0
myf=0
case 1,2
myf=1
case else
myf=myf(x-1)+myf(x-2)
end select
end function
'後面這個自定函數,它的函數名字叫做myf,傳回值的時候,就用名字當成變數,來傳回值。
'而這個函數中,又呼叫自己函數來求值,這個自己呼叫自己的動作,就叫做「遞迴」。
原來這個就是遞迴阿
回覆刪除今天寫計概考卷有看到呢 >"<
多翻了幾次題本,發現還有很多的題型
數學能力不夠.無法理解題義.之類的
偏偏又是比賽題型
雖說現在就談到那個有點太遠了
但是否能先挑些題目設個標籤存放
並請老師給點提示
然後我們再試著去解題
當然,這是額外的題型
不強迫也不算在"功課"內
並想問是否有推荐的流程圖製作軟體
若有空閒的時間製作流程圖
不僅印象更深刻也較容易理解
寒假比較空閑,找點事做:P
老師就請放心的滑吧 XD
高仔好,
回覆刪除當然可以,先打一些題目當研究是很好的,本來這該我來做的事,由你主動提出更好。
想一些數學題,是我很喜歡的事。
甚至是一些由數學上不容易做的事,反而可以用程式的方式,"暴力"做出來呢。
流程圖的部分,以前似乎有用過類似viso之類名稱的軟體,學校裡是現在的設備組長張組長教的,可以去問張組長(前科主任)。
如果是我用的話,簡單的word,就可以用了。不過,流程圖這玩意兒,畫得出來的,原本就會懂了,不懂的,也很難畫出來的。
先找些你想玩玩的數學題吧。
然後在回應中可以留下各人的想法,我看到了,也會說說我的方式的。(現在還不確定北海道住的那兒有沒有網路,我會帶我的蘋果去就是了)
Dim B(100) As Integer
回覆刪除Private Sub Form_Load()
Open App.Path & "/in.txt" For Input As #1
Open App.Path & "/out.txt" For Output As #2
Input #1, X
Max = 0
n = X
Select Case n
Case 0
ans = 0
Case 1
ans = 1
Case Is > 1
B(0) = 0
B(1) = 1
For i = 2 To n
B(i) = B(i - 1) + B(i - 2)
Max = B(i)
Next i
ans = Max
End Select
Print #2, ans
Close #2
Close #1
End Sub
Private Sub Form_Load()
回覆刪除Open App.Path & "\in.txt" For Input As #1
Input #1, n
Close #1
a = 1: b = 0
For i = 1 To n - 1
ans = a + b: b = a: a = ans
Next
Open App.Path & "\out.txt" For Output As #2
Print #2, ans
Close #2
End Sub
進度追趕中 =D 今天比較有空來做這個
Public Sub Form_Load()
回覆刪除Me.Hide
Open App.Path & "/in.txt" For Input As #1
Open App.Path & "/out.txt" For Output As #2
Input #1, x
a = 0: b = 1
For i = 1 To x
q = a + b
a = b: b = q
Next i
Print #2, a
Close #2
Close #1
End
End Sub
2分
剛剛試了試,怎麼好像不能留言了,小小可惜的遙遠的日子。留言,表示來過。
回覆刪除