Private 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, n Call A1(n) Close Close End End Sub
Sub A1(n) Dim SP$, ans$ For i = 1 To n: SP = SP & " ": Next
For i = 1 To n SP = Left(SP, Len(SP) - 1) ans = ans & i ans2 = Left(ans, i - 1) ans3 = "" For j = Len(ans2) To 1 Step -1: m = Mid(ans2, j, 1): ans3 = ans3 & m: Next Print #2, SP & ans & ans3 Next
For i = 1 To n - 1 SP = SP & " " ans = Left(ans, Len(ans) - 1) ans3 = Right(ans3, Len(ans3) - 1) Print #2, SP & ans & ans3 Next End Sub
Private Sub Form_Activate()
回覆刪除Open App.Path & "\in.txt" For Input As #1
Input #1, n
Close
Open App.Path & "\out.txt" For Output As #2
For i = 1 To n
ans = ans & i
pans = ans
Do While Len(pans) < n
pans = " " & pans
Loop
If i >= 2 Then tmp = i - 1 & tmp
Print #2, pans & tmp
Next i
For i = 1 To n - 1
pans = " " & Mid(pans, 1, n - 1)
tmp = Mid(tmp, 2, n - 2)
Print #2, pans & tmp
Next i
Close #2
End Sub
'#####################
1/1 新年快樂囉~
想說 今天閒著 就來一題吧
arro好,
回覆刪除好像從新一年的開始,還有些心不在焉,對不起,前天看到這篇就想回了的說。
目前又加入了兩個隊員,詳細的規矩,等下星期的社課的時候說吧,當然,也是會慢慢修正的,如果有不順的地方的話。
這題是迴圈思考題,做法有非常多,可以自己也想想可以想出幾種方式,練一練不同的思考。
這題你作的是正確,只有一個小地方「tmp = i - 1 & tmp 」改成「ttmp = (i - 1) & tmp 」會好些,要好好掌握程式,而不要太靠著「預設值」。
另外,你定義變數的名字,可以在「簡單」與「有意義」之間取得一個平衡。你這題用ans,pans,tmp有些怪怪的。
熊掌
真的會不見...
回覆刪除定義變數這部分我也很想改進。
好像是我英文比較差吧,有時候會擠不出適當的單字來當變數
只好用了些簡單的字母組合來當變數了
這樣子好像久了自己也會看不懂
Dim A As Integer, C As Integer
回覆刪除Dim B As String, X As String
Private Sub Form_Load()
Me.Hide
Open App.Path & "\in.txt" For Input As #1
Input #1, A
Close #1
Open App.Path & "\out.txt" For Output As #2
C = 1
X = ""
For i = 1 To A
For j = 1 To (A - C)
B = B & " "
Next j
Dim P(99) As String
P(C) = B & X & C & StrReverse(X)
Print #2, B & X & C & StrReverse(X)
X = X & C
C = C + 1
B = ""
Next i
For j = (A - 1) To 1 Step -1
Print #2, P(j)
Next j
Close #2
End
End Sub
佑好,
回覆刪除1.歡迎加入程式隊,除了有企圖心之外,還要有耐心哦,一年的訓練過程,會有些低潮的時候,要記住現在這個想參加的心,將向上的心,reset。
2.程式OK。但是,Print #2, B & X & C & StrReverse(X) 這行可以改成print #2,p(c) 可以將重複的計算省略一次。
3.這題用陣列記住前半的結果,再反序放出來,很好,而且不容易出錯。
熊掌
Private Sub Form_Load()
回覆刪除Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, que
i = 1
If que < 1 Then End
Do Until i = 0
Add = i
For k = i - 1 To 1 Step -1
Add = k & Add
Next k
For j = que - i To 1 Step -1
Add = " " & Add
Next j
For k = i - 1 To 1 Step -1
Add = Add & k
Next k
Print #2, Add
If i = que Then head = True
If head = True Then i = i - 1 Else i = i + 1
Loop
Close #2
Close #1
End
End Sub
Jimmer好,
回覆刪除程式正確。乍看有些複雜,但是沒問題。
程式比賽的輸入以正確資料為主,如果題目沒有要求,不用處理錯誤輸入。
熊掌ipad
Private 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, n
Call A1(n)
Close
Close
End
End Sub
Sub A1(n)
Dim SP$, ans$
For i = 1 To n: SP = SP & " ": Next
For i = 1 To n
SP = Left(SP, Len(SP) - 1)
ans = ans & i
ans2 = Left(ans, i - 1)
ans3 = ""
For j = Len(ans2) To 1 Step -1: m = Mid(ans2, j, 1): ans3 = ans3 & m: Next
Print #2, SP & ans & ans3
Next
For i = 1 To n - 1
SP = SP & " "
ans = Left(ans, Len(ans) - 1)
ans3 = Right(ans3, Len(ans3) - 1)
Print #2, SP & ans & ans3
Next
End Sub
12:23
久沒做這種圖形式的輸出了
作者已經移除這則留言。
回覆刪除