close

【試題編號】11900-940301
【題目】迴文判斷
【說明】
請利用『指定』迴圈控制指令,由外部資料檔讀入一個欲判斷的數字,若此數字為迴文(Palindrome,左右讀起均同,例如12321),則印出此數字及is a palindrome.,若不是則印出此數字及is not a palindrome.



Private Sub Form_Activate() 在表單活動時
Dim x As Long, y As Long, z As Long  定義三個長整數Long
Open App.Path & "\940301.sm " For Input As #1   開資料檔,也就是要被判斷的檔
Input #1, x  經由路徑1,指定檔案內的資料為"x"
Close #1  將檔案關閉
z = x   將資料x的值帶入z,使z和x相等

For Next 迴圈版
For i = 1 To 9 執行九次的迴圈(有For則必有Next)
y = y & (x Mod 10)  將資料x取餘數,和y連接(y一開始沒指定便為0)
x = x \ 10 每執行一次迴圈,就將"整除"10
If x = 0 Then Exit For  若x執行到=0時便跳出迴圈
Next i
If z = y Then Print "第一題結果:"; z; " is a palindrome." Else Print z; " is not a palindrome." 
↑ 
若z(一開始讓x與z相等,最後將z與被一個個數字拆解的y做分析)與y是相同的,則為迴文,反之則否,依據結論列印出答案
End Sub

※以下是Do Loop和Do While版本,和For Next大同小異,也可以參考看看喔^^
Do Loop 迴圈版
i = 1
Do While i <= 9
y = y & (x Mod 10)
x = x \ 10
If x = 0 Then Exit Do
i = i + 1
Loop
Print y
If z = y Then Print z; " is a palindrome." Else Print z; " is not a palindrome."
End Sub


Do While 迴圈版

i = 1
Do i <= 9
y = y & (x Mod 10)
x = x \ 10
If x = 0 Then Exit Do
i = i + 1
Loop  While
Print y
If z = y Then Print z; " is a palindrome." Else Print z; " is not a palindrome."

列印結果:(為迴文)
1.bmp 

(不是迴文)
2.bmp 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 薰斐♥  的頭像
    薰斐♥

    小さな中庭の祝福♥

    薰斐♥ 發表在 痞客邦 留言(0) 人氣()