Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: chusmito en 7 Diciembre 2010, 11:59 am



Título: Programilla en javascript
Publicado por: chusmito en 7 Diciembre 2010, 11:59 am
Hola!!!!
Tengo que hacer un programilla en javascript que haga lo siguiente:

Citar
El programa realizara las operaciones enunciadas con dos polinomios de grado n introducidos por teclado.


Para cada uno de los dos polinomios: primeramente se pedira el grado del polinomio, posteriormente se
introduciran cada uno de los coeficientes los cuales quedaran almacenados en un vector, de tal forma que
en la posicion cero quedara el coeficiente de grado cero, en la posicion 1 el coeficiente de grado 1 ...

Posteriormente se mostrara un menú en el que pediremos al usuario que introduzca una de las cuatro opciones:
suma, resta o multiplicacion o finalizar. Se seleccionara la opción y se mostrara el resultado del polinomio
. El menú se ejecutará tantas veces como se desee hasta que se pulse una cuarta opcion de finalizar.

La verdad es que llevo un buen rato googleando pero no encuentro nada que me pueda servir acerca de los polinomios en javascript, asi que no se ni como empezar a hacer esto...
A ver si alguien me puede guiar un poco.
Muchas gracias!!!!!!!!!!!!!!!!!


Título: Re: Programilla en javascript
Publicado por: seele en 7 Diciembre 2010, 12:37 pm
a ver..... vamos por partes, primero que nada sabes resolver los polinomios a mano no?
la idea es como todo programa ir haciendolo de a poco

1) pedir al usuario el grado del polinomio
2) pedirle que ingrese los coeficientes de cada grado, le pedira tantos numeros como el grado del polinomio que se puso en el punto anterior, empezar pidiendo los coeficientes desde el grado cero e ir subiendo
3) guardar esos datos en un array
4) repetir los pasos 1 a 3 para el segundo polinomio
5) crear un menu con tres opciones, una para la suma, una para la resta y una para la multiplicaion
6) pedirle al usuario que ingrese la opcion que desea utilizar (del menu anterior)
7) hacer el calculo correspondiente y mostrar el resultado (tendras una funcioon para sumar otra para restar y otra para multiplicar)

esa seria la idea general

saludos


Título: Re: Programilla en javascript
Publicado por: chusmito en 7 Diciembre 2010, 14:10 pm
ok, ya he piyado la estructura que tiene que tener el programilla, pero no me queda claro lo del orden del polinomio.
La expresion generica para un polinomio de grado n es esta: ax^n + bx^(n-1) + cx^(n-2) + dx^(n-3) + ... + ex + f

El prompt solo te pediría la "n", pero como haces para meter luego la forma general del polinomio?

Y lo del array, como se usa??
Puf, este programa me supera!
Gracias y un saludo!


Título: Re: Programilla en javascript
Publicado por: seele en 7 Diciembre 2010, 14:28 pm
bien la idea es la siguiente....
en el punto 1 pediras el grado del polinomio eso quiere decir la potencia mas alta de ese polinomio, una vez definido eso ya sabes la cantidad de potencias a pedir, por ejemplo si el polinomio es grado 3 sabras que tendras que pedir tambien la x^2 x^1 y la constante.
en el paso dos ya pediras los valores de X para la constante, luego para la x^1, luego x^2 y asi sucesivamente hasta alcanzar el grado del polinomio dado en el punto uno

espero que haya quedado mas claro, cualquier duda aqui estamos ;)

saludos


Título: Re: Programilla en javascript
Publicado por: chusmito en 7 Diciembre 2010, 16:03 pm
Ahhh, vale, es decir, que si yo en el primer prompt digo que n=3 (el grado), luego me tendra que pedir los coeficientes a, b, c y d ( de x^3, x^2, x y el termino indep.)

Y esto traducido a javascript como seria???

n=prompt ("Introduce el grado del primer polinomio")
???=prompt ("Introduce los coeficientes del polinomio")

No se como expresar que se metan tantas variables dependiendo del grado del polinomio...
Y una vez que tengamos esta parte conseguida, el array como funciona?



Título: Re: Programilla en javascript
Publicado por: seele en 7 Diciembre 2010, 16:08 pm
puedes pedirlo uno por uno

grado0=prompt ("Introduce el valor del termino independiente")

y asi sucesivamente con todos, es la forma mas facil me parece, te recomiendo implementar un ciclo for o while que salga una vez cumplidas la cantidad de numeros que debes pedir, no se si me explico

cualquier cosa ya sabes, aqui estamos

saludos


Título: Re: Programilla en javascript
Publicado por: chusmito en 7 Diciembre 2010, 16:11 pm
me he perdido.... creo que este programa no lo saco!


Título: Re: Programilla en javascript
Publicado por: seele en 7 Diciembre 2010, 16:18 pm
calma vamos de nuevo y de a poco, es mas facil de lo que parece....
supongamos que el usuario en el paso 1 ingresa que el grado del polinomio es 4, entonces tu sabes que le deberas pedir al usuario que ingrese 5 valores mas que serian

x^4 x^3 x^2 x^1 x

o sea que debes llamar al prompt 5 veces y almacenar ese valor dentro de un array que podriamos llamar polinomio 1 (...muy original)

me explique mejor?



Título: Re: Programilla en javascript
Publicado por: chusmito en 7 Diciembre 2010, 16:30 pm
Vale, y como hacemos para llamar al prompt tantas veces como sea el grado?
Y para meter esas variables en el array?


Título: Re: Programilla en javascript
Publicado por: seele en 7 Diciembre 2010, 17:06 pm
pues por eso te mencionaba el uso de ciclos con un for o con un while se puede resolver de una manera sencilla, apenas me desocupe un momento te muestro un ejemplo para que tengas una idea

saludos


Título: Re: Programilla en javascript
Publicado por: chusmito en 8 Diciembre 2010, 21:25 pm
Hola!!! a ver, este programilla se supone que tiene que hacer lo mismo, aunk no chuta...

en que falla???

Código
  1. <HTML>
  2. <HEAD>
  3. <TITLE> PRACTICAS DE javascript</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <SCRIPT LANGUAGE="javascript">
  7.  
  8. function cargara(tabla1)
  9. {
  10. var x;
  11. for(x=0;x<tabla1.length;x++)
  12. {
  13. var num1;
  14. num1=prompt('Ingrese elementos del primer vector:','');
  15. tabla1[x]=parseInt(num1);
  16. }
  17. }
  18.  
  19. function cargarb(tabla2)
  20. {
  21. var x;
  22. for(x=0;x<tabla2.length;x++)
  23. {
  24. var num2;
  25. num2=prompt('Ingrese elementos del segundo vector:','');
  26. tabla2[x]=parseInt(num2);
  27. }
  28. }
  29.  
  30. function sumat(suma)
  31. {
  32. for (x=0;x<3;x++)
  33. {
  34. suma[x]=tabla1[x]+tabla2[x];
  35. }
  36. document.write(suma[x]+'<br>');
  37. }
  38.  
  39. var suma;
  40. suma=new Array(3);
  41. var tabla1;
  42. tabla1=new Array(3);
  43. var tabla2;
  44. tabla2=new Array(3);
  45. cargara(tabla1);
  46. cargarb(tabla2);
  47. sumat(suma);
  48.  
  49.  
  50.  
  51. </SCRIPT>
  52.  
  53. </BODY>
  54. </HTML>


Título: Re: Programilla en javascript
Publicado por: Shell Root en 8 Diciembre 2010, 21:49 pm
Primero que todo, si tienes una función A que hace X acción, para que tener otra función B que hace la misma X función de la función A?
Segundo, estáis llamando objetos que están muertos, -por así decirlo-, ya que el tiempo de vida es sólo dentro de una función.

La solución que te daría es la siguiente, -cabe aclarar que mi javascript es un poco básico-

En esta función, estamos pidiendo un parámetro que sería el objeto 'vector', al que deseamos setear con valores.
Código
  1. function objArray(obj){
  2.   var i = 0;
  3.   var sNum = 0;
  4.  
  5.   for(i=0; i<obj.length; i++){
  6.     sNum = prompt('Enter number of position vector ['+ i +']:', 'PROMPT');
  7.     obj[i] = parseInt(sNum);
  8.   }
  9.  
  10.   return obj;
  11. }

Después, lo que se debería de hacer es realizar otra función con las acciones necesarias (suma, resta, multiplicación y división), optaría por hacerlo todo en una misma función, se diferenciaría dependiendo de un parámetro. Así,
Código
  1. function sumObj(var sType, obj1, obj2){
  2.   /* ACTIONS */
  3. }

Se tiene que validar la variable sType, para ver que tipo de operación se va a realizar. Es decir,
Código
  1. if( sType == 'suma' ){}
  2. else if( sType == 'resta' ){}
  3. else if( sType == 'multiplicacion' ){}
  4. else if( sType == 'division' ){}
  5. else { return 0; }


Título: Re: Programilla en javascript
Publicado por: chusmito en 9 Diciembre 2010, 00:11 am
hola shell root! gracias por contestar, pero a ver, no me queda claro. Tendriamos que eliminar la funcion "cargarb" porque es igual que la primera no, pero tu recomiendas sustituir las funciones "cargara" y "cargarb" por la funcion "objArray" no?
 con esta ultima funcion  introduciriamos un polinomio, que se guardaria en un array, y luego con la funcion sumObj realizariamos las operaciones. Pero entonces como hago para que me pida dos polinomios??? y como ordeno todo esas funciones que me diste?
esque con las funciones me pierdo un poco bastante....
Muchas gracias!


Título: Re: Programilla en javascript
Publicado por: Shell Root en 9 Diciembre 2010, 01:03 am
A ver, para que entiendas mejor lo que intento decirte, te voy a poner un pequeño ejemplo:

Código
  1. function sumNum1(var Num1){
  2.  Num1 = parseInt(Num1);
  3.  return Num1 + 2;
  4. }
  5.  
  6. function sumNum2(var Num2){
  7.  Num2 = parseInt(Num2);
  8.  return Num2 + 2;
  9. }
Esto es lo que tienes para cargar las "tablas" -por así decirlo-

Ahora con esas funciones, realicemos una operación. Por ejemplo, una suma así,
Código
  1. alert( sumNum1(1) + sumNum1(2) );

El resultado debería ser, 7 (((1+2)+(2+2))==(3)+(4) == 7).

--

Ahora que pasa si tenemos la siguiente función,
Código
  1. function sumNum(var Num){
  2.  Num = parseInt(Num);
  3.  return Num + 2;
  4. }

Y realizamos la misma operación,
Código
  1. alert( sumNum(1) + sumNum(2) );

El resultado debería ser el mismo. :D


Título: Re: Programilla en javascript
Publicado por: lgo0013 en 11 Diciembre 2010, 19:23 pm
Hola Muy buenas a todos,soy nuevo en este foro y lo encontré googleando porque tengo el mismo problema que chuchinov.
¿Sabe alguien como quedaría el programa completo?

Muchas gracias¡¡