none
vb多項式陣列相加 RRS feed

  • 問題

  • 題目: 試寫一個兩個多項式的相加:
    A=6x^5+8x^4+3x^2+7x+3
    B=10x^8+3x^5+2x^2+3x+6
    C=A+B
    提示:多項式以陣列表示,依序放入每項的係數和次方。例如:
    A陣列 6 5 8 4 3 2 7 1 3 0
    B陣列 10 8 3 5 2 2 3 1 6 0
    C陣列 10 8 9 5 8 4 5 2 10 1 9 0
    輸出結果: 10x^8+9x^5+8x^4+5x^2+10x^1+9x^0
    請問怎麼用主控台寫出vb的程式
    2012年10月14日 上午 11:57

解答

  • 1. 不需要另外開新的討論串

    2. 主控台的輸出應該使用 Console.Write Console.WriteLine

    3. VB 字串相加應該使用 & 而非;


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    • 已標示為解答 mary0608 2012年10月14日 下午 03:12
    2012年10月14日 下午 02:51

所有回覆

  • 作業請先展現你努力的成果

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度


    • 已編輯 Alex_Lee 2012年10月14日 下午 12:03
    2012年10月14日 下午 12:03
  • 不好意思!我是完全不知道該如何寫,可以告訴我一個方向嗎?
    2012年10月14日 下午 12:06
  • Debug.Print c(i + 1); "*x^"; c(i); "+";

        Next i

        Debug.Print c(r + 1); "*x^"; c(r)

    請問我這邊是錯了什麼嗎?

      入

    A多項式 2x<sup>100</sup>+3x<sup>2</sup>+4

    B多項式 6x<sup>98</sup>+4x<sup>2</sup>+x

           

    Rem 9_2_2

    Dim p, q, r, m, n As Integer

    Dim a(100), b(100), c(100) As Integer

    Private Sub Form_Load()

        m = 3: n = 3: a(1) = m: b(1) = n

        a(2) = 100 '次方

        a(3) = 2   '係數

        a(4) = 2: a(5) = 3

        a(6) = 0: a(7) = 4

     

        b(2) = 98: b(3) = 6

        b(4) = 2: b(5) = 4

        b(6) = 1: b(7) = 1

     

        p = 2   'A

        q = 2   'B

        r = 2   'C

        While p <= 2 * m And q <= 2 * n

            If a(p) = b(q) Then add '係數相等

            If a(p) > b(q) Then ab  'A係數大

            If a(p) < b(q) Then ba

        Wend

        If p <= 2 * m Then aa '剩下A

        If q <= 2 * n Then bb '剩下B

        r = r - 2

        c(1) = r / 2

        For i = 2 To r - 2 Step 2

            Debug.Print c(i + 1); "*x^"; c(i); "+";

        Next i

        Debug.Print c(r + 1); "*x^"; c(r)

    End Sub

     

    ' c=a+b

    Public Sub add()

        c(r + 1) = a(p + 1) + b(q + 1)

        c(r) = a(p)

        If c(r + 1) = 0 Then

            r = r - 2

        End If

        p = p + 2: q = q + 2: r = r + 2

    End Sub

     

    ' a > b

    Public Sub ab()

        c(r + 1) = a(p + 1): c(r) = a(p)

        p = p + 2: r = r + 2

    End Sub

     

    'b > a

    Public Sub ba()

        c(r + 1) = b(q + 1): c(r) = b(q)

        q = q + 2: r = r + 2

    End Sub

     

    '剩下A

    Public Sub aa()

        For i = p To m * 2 Step 2

            c(r + 1) = a(i + 1): c(r) = a(i)

            r = r + 2

        Next i

    End Sub

     

    '剩下B

    Public Sub bb()

        For i = q To n * 2 Step 2

            c(r + 1) = b(i + 1): c(r) = b(i)

            r = r + 2

        Next i

    End Sub

    2012年10月14日 下午 02:21
  • 1. 不需要另外開新的討論串

    2. 主控台的輸出應該使用 Console.Write Console.WriteLine

    3. VB 字串相加應該使用 & 而非;


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    • 已標示為解答 mary0608 2012年10月14日 下午 03:12
    2012年10月14日 下午 02:51
  • 這個題目的陣列有一個特性, 陣列索引的 1,3,5,7,9 ...都是次方;陣列索引的0,2,4,6,8 ..是基底.

    結果則是取次方數相同者, 將基底相加.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年10月14日 下午 02:55
    版主
  • 謝謝你的幫忙!問題終於解決了!
    2012年10月14日 下午 03:17
  • 我是覺得老師應該重點在

    提示:多項式以陣列表示,依序放入每項的係數和次方

    但故意舉出錯誤的範例,讓學生思考。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2012年10月15日 下午 12:24