Foros del Web » Programando para Internet » Javascript »

problema

Estas en el tema de problema en el foro de Javascript en Foros del Web. Hola, Estoy aprendiendo Javascript y me he atrancado y necesito ayuda. ¡por favor!! El problema que me han planteado es el siguiente: -Calcular el mayor, ...
  #1 (permalink)  
Antiguo 03/03/2007, 09:57
 
Fecha de Ingreso: marzo-2007
Mensajes: 5
Antigüedad: 17 años, 2 meses
Puntos: 0
problema

Hola,
Estoy aprendiendo Javascript y me he atrancado y necesito ayuda. ¡por favor!!

El problema que me han planteado es el siguiente:

-Calcular el mayor, el menor y el mediano de 3 números.
-La suma de los dos mayores.
-La rsta de los dos menores.
- La división del mayor y el menor.
-La multiplicación de los pares. Si no los hay sacar literal: No hay pares.
-Sumatorio de los impares. Si no los hay sacar literal: No hay impares.
Sacar por pantalla los que sean primos, en el caso de que no haya, Sacar literal: no hay primos.

Este ejercicio tan sólo lo puedo hacer con For e If (else), ya que es lo que he visto hasta ahora.
Estoy en el nivel básico., lo cual el ejercicio requiere un nivel básico.

Gracias por vuestra ayuda y espero el resultado pronto.
  #2 (permalink)  
Antiguo 03/03/2007, 15:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: problema

Hola azaharyna, bienvenido/a a los foros :

Algunas cosas son básicas, y te recomiendo que mires algún manual o tutorial para conocer esas cosas sencillas.

Trataré de darte una idea de algunos casos...

Si los números son parte de un array de 3 números, bastaría con ordenarlos...

miArray.sort();
entonces el menor sería el primero y el mayor el último.

Con variables y condicionales...

var n1, n2, n3; // son las variables...

// saber el mayor
if (n1 > n2 && n1 > n3) alert("El mayor es " + n1);
if (n2 > n1 && n2 > n3) alert("El mayor es " + n2);
if (n3 > n2 && n3 > n1) alert("El mayor es " + n3);

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 04/03/2007, 09:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 5
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema

Antes de nada, gracias.

Esa parte si la entiendo y ya esta hecha.

Lo que no sé es como teniendo tres números cualesquiera, tengo que hacer el sumatorio de los impares.

Al igual que la parte de los primos , ¿Cómo lo calculo?

Gracias
  #4 (permalink)  
Antiguo 04/03/2007, 10:11
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: problema

Hola azaharyna

Si tienes los números en un array, lo vas recorriendo y sumando los que sean impares:

Código:
numeros = [21,31,12];
total = 0;
// recorremos el array
for (i=0; i<numeros.length; i++)
  if (numeros[i] % 2 != 0) // si el número es par (la división por 2 da un resto de cero)
    total += numeros[i] // sumamos el número
alert(total);
En lo de los números primos, no puedo ayudarte, lo siento.

Saludos,
  #5 (permalink)  
Antiguo 04/03/2007, 10:24
 
Fecha de Ingreso: marzo-2007
Mensajes: 5
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema

Gracias.

Pero mi problema es solucionarlo con algo mucho más sencillo, tan sólo estoy con if y for (anidadados) y los mensajes los muestro con document.write. Soy muy novata en esto y siento no estar a la altura aún.

Como lo hago entonces?
El programa tiene que jugar con números que se desconocen, (variables declaradas ya (como num1, num2, num3).

Mil gracias
  #6 (permalink)  
Antiguo 04/03/2007, 11:08
 
Fecha de Ingreso: marzo-2007
Mensajes: 5
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema

Gracias.

Pero mi problema es solucionarlo con algo mucho más sencillo, sin utilizar arrray, tan sólo estoy con if y for (anidadados) y los mensajes los muestro con document.write. Soy muy novata en esto y siento no estar a la altura aún.

Como lo hago entonces?
El programa tiene que jugar con números que desconozco, (variables declaradas ya como num1, num2, num3).

Mil gracias
  #7 (permalink)  
Antiguo 04/03/2007, 16:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: problema

Bueno, lo de la suma:

if (num1 > num2 && num2 > num3) document.write(num1 + num2);
if (num1 > num3 && num3 > num2) document.write(num1 + num3);
if (num1 < num2 && num1 < num3) document.write(num2 + num3);

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 04/03/2007, 17:14
 
Fecha de Ingreso: marzo-2007
Mensajes: 5
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema

Hola, Caricatos

Si con esa parte no tengo ningún problema, ya lo tengo.

El problema es sacar el sumatorio de los números impares.

Y si esos 3 números (num1,num2,num3) son primos o no. (Con esto imagino que tengo que utilizar For , if ,....

De todas formas mil gracias.
  #9 (permalink)  
Antiguo 04/03/2007, 23:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: problema

Hola:

Para el sumatorio habría que empezar con el valor neutro de la suma y sumarle los que sean impares... o sea si el resto de dividirlos entre 2 es 1...
var neutro = 0;
var sumatorioImpares = neutro;
sumatorioImpares += (num1 % 2 == 1) ? num1 : neutro;
sumatorioImpares += (num2 % 2 == 1) ? num2 : neutro;
sumatorioImpares += (num3 % 2 == 1) ? num3 : neutro;

document.write("sumatorio de impares: " + sumatorioImpares);

Y para saber si un número es primo, o sea que solo sea divisible por sí mismo o por 1... habría que hacer un bucle entre 2 y el mismo número (aunque es mejor dividirlo por 2)...

Probaré con una función:

function esPrimo(n) {
lo_es = false;
for (i = 2,max = parseInt(n / 2); i < max; i++)
lo_es = (lo_es || n % i == 0);
return !lo_es;
}

Sé que con esto te lo estoy poniendo difícil con la sintaxis y la metodología... incluso no lo he probado y puede fallar, pero deberías investigar un poco y poner algo de tu parte.

De todos modos, puedes seguir preguntando...

Suerte
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:44.