What generates an error when calculating the sum of polynomials?
Quote:
EXPORT PolynomialsTools()
// Syntax: ()
// Command Info: Polynomials Tools
// Author: CompSystems
// Version: 0.07 Sep 5 2013
BEGINLocal RedColor := { 255, 0, 0 }; // Declara y define los valores del RED Color
Local RedBlack := { 0, 0, 0 }; // Declara y define los valores del Black Color
Local RedWhite := { 255, 255, 255 }; // Declara y define los valores del WhiteColor
Local Font_12 := 2; // Fuente de texto de alto
Local Font_14 := 3;
Local Font_16 := 4;
Local mult:=18; // multiplicador para aumentar a la siguiente linea de textoLocal polyCoef1, polyCoef2, operPCoeff1_2, operType, ChooseOut1, InputOut1, InputOut2, ExprAsStr; // Declara variables locales
Rect_p(); // Limpia la ventana de graficos usada como salida del programa
FREEZE(); // Congela la ventana de graficos
RECT_P( 1, 1, 318, 238, RGB( 0, 0, 0 ), RGB( 255, 255, 255 ) ); // Dibuja un rectangulo de fondo
RECT_P( 1, 1, 318, 16, RGB( 0, 0, 0 ), RGB( 0, 0, 0 ) ); // Dibuja un rectangulo para el titulo//LOCAL COO1:= { 0, 0 }, COO2:= { 319, 239 }; // Definicion de coordenadas
//RECT_P( { 0, 0 } , { 319, 239 } , RGB( WhiteColor ), RGB( RedColor ); // no acepta lista de coordenadas =(
//RECT_P( COO1 , COO2 , RGB( WhiteColor ), RGB( RedColor ); // ni llamar a un avarible como coordenada =(TEXTOUT_P( "PolynomialsTools", 3, 3, Font_12, RGB( 0,148,255 ) );
wait(2);
// ChooseOut1: = Choose( operType, "Choose Operation", { { " Addition", "+" } , { " Difference", "-" }, { " Mul", "*" } , { " Div", "/" } } ); // sentencia aun no soportada =(
// If ChooseOut1 == true ... // sirve para reutilizar el valor de ChooseOut1 mas abajo
// Then
// WAIT(); // para visualizar la entrada en el campo superior
// Else kill;
// End; //IfIf
Choose( operType, "Choose Operation", { { " Addition", "+" } , { " Difference", "-" }, { " Mul", "*" } , { " Div", "/" } } )
Then
Case // Como choose actualmente no admite listas con varios parametros tengo que hacer un selector para llevar el # a una opcion =(
If operType == 1
Then
operType := "+";
End;
If operType == 2
Then
operType := "-";
End;
If operType == 3
Then
operType := "*";
End;
If operType == 4
Then
operType := "/";
End;
// Default
End;
End;//If// Asigna a las variables anteriores por una caja de dialogo
InputOut1:= Input( polyCoef1, "Polynomials Tools", "PolyCoef1 = ", "Input coeffs of a poly1 c1*x^n + c2*x^n-1 +...+ c3*x + c4" );
If InputOut1 == true
Then
WAIT(); // para visualizar la entrada en el campo superior
Else kill;
End; //If
InputOut2 := Input( polyCoef2, "Polynomials Tools", "PolyCoef2 = ", "Input coeffs of a poly2 c1*x^n + c2*x^n-1 +...+ c3*x + c4" );
If InputOut2 == true
Then
WAIT(); // para visualizar la entrada en el campo superior
Else kill;
End; //IfRect_p(); // Limpia la ventana de graficos usada como salida del programa
FREEZE(); // Congela la ventana de graficos// Redibuja la ventana por que comando CHOOSE se sale de la actual, espero que HP solucione esto en la proxima version
RECT_P( 1, 1, 318, 238, RGB( 0, 0, 0 ), RGB( 255, 255, 255 ) ); // Dibuja un rectangulo de fondo
RECT_P( 1, 1, 318, 16, RGB( 0, 0, 0 ), RGB( 0, 0, 0 ) ); // Dibuja un rectangulo para el titulo
TEXTOUT_P( "PolynomialsTools", 3, 3, Font_12, RGB( 0,148,255 ) );If operType == "/"
Then
ExprAsStr:= "polyCoef1 " + "," + " polyCoef2";
//operPCoeff1_2 := expr( propfrac(ExprAsStr) ) ; // calcula la operacion
operPCoeff1_2 := "expr( propfrac(" + ExprAsStr + ")" ; // calcula la operacion
TEXTOUT_P( "polyCoef1 " + operType + " polyCoef2: " , 3, mult, Font_14, RGB( 0, 0, 0 ) ); // Despliega la operacion calculada entre los polinomios
Else
ExprAsStr:= "polyCoef1 " + operType + " polyCoef2 ";
operPCoeff1_2 := expr( ExprAsStr ) ; // calcula la operacion
TEXTOUT_P( ExprAsStr + ": " , 3, mult, Font_14, RGB( 0, 0, 0 ) ); // Despliega la operacion calculada entre los polinomios
End;//IfTEXTOUT_P( polyCoef1 + " " + operType + " " + polyCoef2 + " = " + operPCoeff1_2, 3, mult*2, Font_16, RGB( 0, 0, 0 ) ); // Despliega el valor de la operacion de los polinomios, forma de coeficientes
// la siguiente sentencia falla en la version actual del emulador 2013/8/13 =(
TEXTOUT_P( "poly2Symb(polyCoef1)" + " " + operType + " " + "poly2Symb(polyCoef2)" + " = " + operPCoeff1_2, 3, mult*3, Font_16, RGB( 0, 0, 0 ) ); // Despliega el valor de la operacion de los polinomios, forma de expresion math//CAS; // or // CAS(); // retorna a la pantalla o ventana CAS
// ejemplos
// (x^2+3)+(x) => x^2+x+3 // como expresion algebraica
// [ 1, 0, 3 ] + [ 1, 0 ] => [ 1, 1, 3 ]// (x^2+3)/(x) => x+(3/x) // como expresion algebraica
// [ 1, 0, 3 ] / [ 1, 0 ] => { [1,0], 3/[1,0] }
END;
http://www.adictoshp.org/topic/413-hp-prime-xcas-my-first-program/
Edited: 5 Sept 2013, 1:06 p.m. after one or more responses were posted