Sub Add(InitP, InitQ) Dim P, Q P = AddressOf InitP Q = AddressOf InitQ Do While P(0)(1) < Q(0)(1) Q = AddressOf Q(1) End While If P(0)(1) > Q(0)(1) Then Q = [ + P[0], Q] Else Q(0)(0) = Q(0)(0) + P(0)(0) If Q(0)(0) = 0 Then Reduced Q = Q(1) Else Q = AddressOf Q(1) End If End If P = AddressOf P(1) Loop Until P(0)(1) < 0 End Sub Sub Show(P) Println "" Do Print P(0)(0), "X^", P(0)(1) P = AddressOf P(1) If P(0)(1) < 0 Then Exit Do End If If P(0)(0) >= 0 Then Print "+" End If Loop Until false End Sub Dim P, Q P = [[0, -1], NULL] P(1) = AddressOf P P = [[600, 1], P] P = [[10, 2], P] P = [[70, 5], P] P = [[150, 6], P] P = [[80, 7], P] Q = [[0, -1], NULL] Q(1) = AddressOf Q Q = [[600, 1], Q] Q = [[170, 3], Q] Q = [[ 60, 5], Q] Q = [[-150, 6], Q] Println "Source polynomials:" Show(P) Show(Q) Add(P, AddressOf Q) println "Sum:" Show(Q)