2016年10月22日 星期六

10/14 隨堂練習 訂正


10/14 隨堂練習 訂正

  • 成績等第判斷:操行成績0-100分成五等第 select case

Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
        '成績等第判斷:操行成績0-100分成五等第 select case
        'g = 成績
        Dim g As Single
        Dim ans As String = "" '答案
        g = InputBox("成績=", "成績等第判斷:操行成績0-100分成五等第", 0)
        Select Case g
            Case Is < 60
                ans = "丁"
            Case Is < 70
                ans = "丙"
            Case Is < 80
                ans = "乙"
            Case Is < 90
                ans = "甲"
            Case Else
                ans = "優"
        End Select
        Me.TextBox8.Text = g & "分," & ans
    End Sub

單元:ch03. 決策指令

單元:ch03. 決策指令

  • 視窗應用程式用到的輸出訊息盒 msgbox 語法是:
MsgBox(提示訊息, [樣式, 視窗標題])

  • 視窗應用程式用到的輸入輸入盒 inputbox 語法是:
InputBox(提示訊息, [標題文字, 預設值, 位置x, 位置y])

  • 可以用來加減乘除的叫數值,數值可分為整數浮點數。如果你需要讓使用者可以輸入整數,要寫出那 2 條指令?
Dim a As Integer
a = InputBox("", "", 0)

  • 同上。如果你需要讓使用者可以輸入浮點數,要寫出那 2 條指令?
 Dim b As Single
 b = InputBox("", "", 0)

  • 字串會用雙引號””框住,通常不會拿來+-*/,例如:姓名、電話、學號等。如果你需要讓使用者可以輸入字串,要寫出那 2 條指令?
 Dim c As String
 c = InputBox("", "", 0)

  • 我會使用 If...then...。例如:判断整數 A 是正數則印出「正數」

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        '判断整數 A 是正數則印出「正數」
        Dim a As Single
        Dim ans As String = "" '答案
        a = InputBox("a=", "判断整數 A 是正數則印出「正數」", 0)
        If a >= 0 Then
            ans = "正數"
        End If
        Me.TextBox2.Text = ans
    End Sub

  • 我會使用 If...then...else。例如:判断整數 A 是正數則印出「正數」否則印出「負數」

作法1:
  Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        '判断整數 A 是正數則印出「正數」否則印出「負數」
        Dim a As Single
        Dim ans As String = "" '答案
        a = InputBox("a=", "判断整數 A 是正數則印出「正數」否則印出「負數」", 0)
        If a >= 0 Then
            ans = "正數"
        Else
            ans = "負數"
        End If
        Me.TextBox3.Text = ans
    End Sub
作法2:
 Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        '判断整數 A 是正數則印出「正數」否則印出「負數」
        Dim a As Single
        Dim ans As String = "" '答案
        a = InputBox("a=", "判断整數 A 是正數則印出「正數」否則印出「負數」", 0)
        If a < 0 Then
            ans = "負數"
        Else
            ans = "正數"
        End If
        Me.TextBox4.Text = ans
    End Sub

  • 「成績等第判斷」使用巢狀 If...then...else...來完成。

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        '「成績等第判斷」使用巢狀 If...then...else...來完成。
        Dim g As Single 'g=成績
        Dim ans As String
        g = InputBox("成績=", "「成績等第判斷」使用巢狀 If...then...else...來完成。", 0)
        If g >= 90 Then
            ans = "優"
        ElseIf g >= 80 Then
            ans = "甲"
        ElseIf g >= 70 Then
            ans = "乙"
        ElseIf g >= 60 Then
            ans = "丙"
        Else
            ans = "丁"
        End If
        Me.TextBox5.Text = ans
    End Sub

  • 「成績等第判斷」使用 Select...case....來完成。

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        '「成績等第判斷」使用 Select...case....來完成。
        Dim g As Single 'g=成績
        Dim ans As String
        g = InputBox("成績=", "「成績等第判斷」使用 Select...case....來完成。", 0)
        Select Case g
            Case Is < 60
                ans = "丁"
            Case Is < 70
                ans = "丙"
            Case Is < 80
                ans = "乙"
            Case Is < 90
                ans = "甲"
            Case Else
                ans = "優"
        End Select
        Me.TextBox6.Text = ans
    End Sub

  • 輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。
作法1:

    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        '輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)
        Dim a, b, c As Single
        Dim ans As String
        a = InputBox("a=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        b = InputBox("b=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        c = InputBox("c=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        ans = If(a > b, If(a > c, a, c), If(b > c, b, c)) & "大"
        Me.TextBox7.Text = ans
    End Sub

作法2:

    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
        '輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(2)
        Dim a, b, c As Single
        Dim ans As String
        a = InputBox("a=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        b = InputBox("b=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        c = InputBox("c=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        ans = If(a > c, If(a > b, a, b), If(b > c, b, c)) & "大"
        Me.TextBox8.Text = ans
    End Sub

作法3:

    Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
        '輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(3)
        Dim a, b, c As Single
        Dim ans As String
        a = InputBox("a=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        b = InputBox("b=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        c = InputBox("c=", "輸入 A、B、C 三個數,輸出最大值。想出三種不同的結構來完成。(1)", 0)
        ans = If(c > b, If(a > c, a, c), If(b > a, b, a)) & "大"
        Me.TextBox9.Text = ans
    End Sub



2016年10月1日 星期六

單元:ch01. 第一個程式、ch02. 資料的基本概念



單元:ch01. 第一個程式、ch02. 資料的基本概念

  • 主控台應用程式用到的輸出方法有:

 Console.WriteLine ("顯示文字") 不換行輸出   
 Console.Write ("顯示文字") 換行輸出

  • 主控台應用程式用到的輸入方法有:

變數=Console.ReadLine()   換行輸入字串
變數=Console.Read()   不換行輸入字元

  • 寫出 VB 運算子的優先順序(由上到下代表高到低) 
算術運算子>關係運算子>邏輯運算子
  1. (  )  (括號) 
  2.  ^  (指數運算子)
  3.  +  (正數)、-  (負數)
  4. *  (乘)、/  (除) 
  5.  \  (整數除法)
  6. Mod  (取餘數) 
  7.  +  (加)、-  (減)
  8.  &  (連接)
  9.  =<><><=>=LikeIsIsNotTypeOf...Is...  (關係運算子)
  10.  Not  (邏輯運算子)
  11. AndAndAlso  (邏輯運算子)
  12. OrOrElse  (邏輯運算子)
  13.  Xor  (邏輯運算子)
  14.  =+=-=*=/=^=

  • 只用一條程式碼,印出上機練習題 1 的結果。

                 (字串串接及程式碼換行排版練習)

        Console.WriteLine("====Console.WriteLine練習====" & vbCrLf & "班級: 資應一甲" & vbCrLf & "班級: 資應一甲" & vbCrLf & "學號:1110534018" & vbCrLf & "姓名:廖珮榕" & vbCrLf & "=========================")




  • 不恰當的資料型態宣告,會影響到結果的正確性。請參考 [ch02.資料的基本概念投影片] pp. 15-16 試寫一程式來印出各數值型別之表示範圍,並和課本比較是否有異。 

 Dim ans As String = "" '答案字串
        ans = "型態" & vbTab & "byte" & vbTab & "範圍" & vbNewLine
        ans &= "SBtye" & vbTab & "1" & vbTab & SByte.MinValue & "~" & SByte.MaxValue & vbNewLine
        ans &= "Btye" & vbTab & "1" & vbTab & Byte.MinValue & "~" & Byte.MaxValue & vbNewLine
        ans &= "Short" & vbTab & "2" & vbTab & Short.MinValue & "~" & Short.MaxValue & vbNewLine
        ans &= "UShort" & vbTab & "2" & vbTab & UShort.MinValue & "~" & UShort.MaxValue & vbNewLine
        ans &= "Integer" & vbTab & "4" & vbTab & Integer.MinValue & "~" & Integer.MaxValue & vbNewLine
        ans &= "UInteger" & vbTab & "4" & vbTab & UInteger.MinValue & "~" & UInteger.MaxValue & vbNewLine
        ans &= "Long" & vbTab & "8" & vbTab & Long.MinValue & "~" & Long.MaxValue & vbNewLine
        ans &= "ULong" & vbTab & "8" & vbTab & ULong.MinValue & "~" & ULong.MaxValue & vbNewLine
        ans &= "Single" & vbTab & "4" & vbTab & Single.MinValue & "~" & Single.MaxValue & vbNewLine
        ans &= "Double" & vbTab & "8" & vbTab & Double.MinValue & "~" & Double.MaxValue & vbNewLine
        ans &= "Decimal" & vbTab & "12" & vbTab & Decimal.MinValue & "~" & Decimal.MaxValue & vbNewLine

        MsgBox(ans)




  • 請各位寫一個文字模式的程式,導引使用者輸入數值 x,數值 y,展示此二數的各項算 術運算 ^ * / \ mod + - 結果

(專案檔名: ch03-ConsoleIO-xxxxxxx)

Module Module1

    Sub Main()
        Console.WriteLine("輸入數值 x,數值 y,展示此二數的各項算術運算 ^ * / \ mod + - 結果")
        '輸入數值 x,數值 y,
        Dim x, y As Single
        Console.Write("x=")
        x = Console.ReadLine
        Console.Write("y=")
        y = Console.ReadLine
        '展示此二數的各項算術運算 ^ * / \ mod + - 結果
        'Console.WriteLine("{0}^{1}={2}", x, y, x ^ y)
        Console.WriteLine(x & " ^ " & y & " = " & x ^ y)
        Console.WriteLine(x & " * " & y & " = " & x * y)
        Console.WriteLine(x & " / " & y & " = " & x / y)
        Console.WriteLine(x & " \ " & y & " = " & x \ y)
        Console.WriteLine(x & " mod " & y & " = " & x Mod y)
        Console.WriteLine(x & " + " & y & " = " & x + y)
        Console.WriteLine(x & " - " & y & " = " & x - y)

    End Sub

End Module



  • 輸入半徑 r , 印出此圓之「圓周長」及「圓面積」。 (專案檔名: ch03-ConsoleCircle-xxxxxxx-prj, 請用常數來定義圓周率 pi=3.14159265)

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        '輸入半徑 r , 印出此圓之「圓周長」及「圓面積」。
        Dim ans As String = "" '答案
        Const pi = 3.1415926
        '輸入半徑 r
        Dim r As Single
        r = InputBox("半徑r=","輸入半徑 r , 印出此圓之「圓周長」及「圓面積」。 ",0)
        '印出此圓之「圓周長」
        ans &= "圓周長=" & 2 * pi * r & vbNewLine
        '及「圓面積」。
        ans &= "圓面積=" & pi * r ^ 2 & vbNewLine

        MsgBox(ans, , "結果")
    End Sub
End Class