2010年1月14日 星期四

第一次儲備選手選拔試卷第四題

電費計算:從指定目錄"in.txt"讀取一數字作為用電度數計算出電費,輸出至指定目錄"out.txt"。
電費算法為:電錶每月租金30元,用電在40度之內,每度2.2元,40度至100度,每度3元,超過100度,每度3.5元。

輸入範例:80

輸出範例:270

13 則留言:

  1. Private Sub Form_Activate()
    Open App.Path & "\in.txt" For Input As #1
    Input #1, x
    If x < 40 Then ans = x * 2.2 + 30
    If x >= 40 And x <= 100 Then ans = x * 3 + 30
    If x > 100 Then ans = x * 3.5 + 30
    Close #1
    Open App.Path & "\out.txt" For Output As #2
    Print #2, ans
    Close #2
    End Sub

    回覆刪除
  2. 高仔,
    這題這樣寫可以,三個if的地方,也可以改寫成
    select case x
    case is < 40
    case 40 to 100
    case is > 100
    end select

    熊掌

    回覆刪除
  3. Private Sub Form_Activate()
    Dim xx(9) As Integer
    Open App.Path & "\in.txt" For Input As #1
    Input #1, x
    Close #1
    Select Case x
    Case Is < 40
    coco = x * 2.2 + 30
    Case 40 To 100
    coco = x * 3 + 30
    Case Is > 100
    coco = x * 3.5 + 30
    End Select
    Open App.Path & "/out.txt" For Output As #1
    Print #1, coco
    Close #1
    End Sub

    回覆刪除
  4. Private Sub Form_Activate()
    Open App.Path & "\in.txt" For Input As #1
    Input #1, x

    Select Case x
    Case Is < 40
    ans = 30 + x * 2.2
    Case 40 To 100
    ans = 30 + x * 3
    Case Is > 100
    ans = 30 + x * 3.5
    End Select
    Close #1

    Open App.Path & "\out.txt" For Output As #1
    Print #1, ans
    Close #1
    End Sub




    沒有學過 App.Path啦。。
    自己研究了一下。稍微懂了。

    回覆刪除
  5. Y揚,皓好,
    你們的程式都OK,app.path一回生兩回熟,就是個套路而已。
    可以養成固定習慣開成#1,#2兩個不同的檔案編號,一個當成寫出到檔案的,一個當成從檔案讀入到程式的。
    都用成一個號碼,關完再開另一個也不會錯啦。
    加油,滴水穿石,聚沙成塔。

    回覆刪除
  6. app.path的意思是程式所在位置的資料夾?
    簡單來說的話 是這樣沒錯吧0.0?

    Private Sub Form_Activate()
    Open App.Path & "\in.txt" For Input As #1
    Input #1, x
    Select Case x
    Case Is < 40
    m = x * 2.2 + 30
    Case 40 To 100
    m = x * 3 + 30
    Case Is >= 100
    m = x * 3.5 + 30
    End Select
    Close #1

    Open App.Path & "\out.txt" For Output As #2
    Print #2, m
    Close #2

    End Sub

    回覆刪除
  7. 松鼠好,
    oK的。

    回覆刪除
  8. 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
    If x <= 40 Then
    ans = 30 + x * 2.2
    ElseIf x <= 100 Then
    ans = 30 + x * 3
    Else
    ans = 30 + x * 3.5
    End If

    Print #2, ans

    Close #2

    End Sub

    回覆刪除
  9. 阿瑋好,
    OK。一天一天向前吧。加油。

    回覆刪除
  10. Private Sub Form_Activate()
    Open App.Path & "\in.txt" For Input As #1
    Input #1, x
    Close #1

    Select Case x
    Case Is < 40
    ans = 30 + x * 2.2
    Case 40 To 100
    ans = 30 + x * 3
    Case Is > 100
    ans = 30 + x * 3.5
    End Select

    Open App.Path & "\out.txt" For Output As #2
    Print #2, ans
    Close #2
    End Sub

    回覆刪除
  11. Gavin 好,
    歡迎加入,慢慢習慣吧。
    回頭又一次看這題,似乎簡單的過頭了,
    不過,沒關係,還是上面那句話,累積吧。
    你的程式是對的。

    回覆刪除
  12. Dim num(9) As Integer
    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
    ans = 30
    Select Case x
    Case Is < 40
    ans = ans + x * 2.2
    Case 40 To 100
    ans = ans + x * 3
    Case Is > 100
    ans = ans + x * 3.5
    End Select
    Print #2, ans
    Close #2
    Close #1
    End
    End Sub

    2分18秒

    回覆刪除
  13. 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, x

    If x < 40 Then y = 30 + x * 2.2

    If (40 <= x) And (x <= 100) Then y = x * 3 + 30

    If x > 100 Then x = 30 + y * 3.5



    Print #2, y

    Close
    Close
    '電費算法為:電錶每月租金30元,用電在40度之內,每度2.2元,40度至100度,每度3元,超過100度,每度3.5元。
    End
    End Sub

    回覆刪除