elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Sacar valores par y valores impar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sacar valores par y valores impar  (Leído 4,563 veces)
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Sacar valores par y valores impar
« en: 2 Mayo 2014, 13:48 pm »

Hola

Lo que trato de hacer es la mediana es algo de estadistica:

Dice si tengo


54321
ordenarlos ya lo hice

12345 Como la cantidad de valores es impar debe sacar el valor 3 en este caso ya que es el de enmedio.

pero si la cantidad de varores es par

654321 -> oredenarlos

123456
toma los dos valores intermedios en este caso 3 y 4 estos se suman 3+4/2 = 3.5 esa seria la mediana en este caso.

ahora tengo lo siquiente

Código
  1. If (listaElementos / 2) = (listaElementos / 2)
  2. {            
  3.            cout << ("Par");
  4.            mediana = (listaElementos - 0.5) + (listaElementos + 0.5) / 2;
  5.  
  6.            cout << mediana;
  7. }
  8.  
  9. Else
  10. {
  11.            cout << ("Impar");
  12.            mediana = listaElementos / 2;
  13.            cout << mediana;
  14. }

Gracias


En línea

Lo que se puede imaginar... se puede programar.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Sacar valores par y valores impar
« Respuesta #1 en: 2 Mayo 2014, 14:02 pm »

es una duda o qué?

Citar
ste caso 3 y 4 estos se suman 3+4/2 = 3.5 esa seria la mediana en este caso
por orden de ejecución de operados eso es 5
http://es.wikipedia.org/wiki/Orden_de_evaluaci%C3%B3n


Código:
 If (listaElementos / 2) = (listaElementos / 2)
eso debería darte error de compilación, sin contar que es incorrecto

Código:
(listaElementos - 0.5) + (listaElementos + 0.5) / 2;
incorrecto para tus fines, esto es equivalente a (x-0.5) * ( (x+0.5)/2 )


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: Sacar valores par y valores impar
« Respuesta #2 en: 2 Mayo 2014, 14:52 pm »

Si lo siento, si es una duda lamento si no me supe explicar pero eso es lo que queria saber si esta bien, o no como lo deberia de hacer con un for o con un if esa es la duda que tengo.

Gracias por responder.
En línea

Lo que se puede imaginar... se puede programar.
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Sacar valores par y valores impar
« Respuesta #3 en: 2 Mayo 2014, 15:02 pm »

Espero que te aclare lo siguiente:

Código
  1. n = numero de elementos o valores almacenados.
  2.  
  3. if ( n%2 == 0 ) <== n par
  4.  
  5. i = posicion: 0 1 2 3 4 5
  6. valor:        1 2 3 4 5 6
  7. posicion media = ( n-1 )/2 = (2.5) = 2 por ser la division entera.
  8. valor medio = valor( n-1 )/2 + valor(1+( n-1 )/2) = valor(2) + valor(3) = 3 + 4
  9.  
  10. else <== n impar
  11.  
  12. i = posicion: 0 1 2 3 4
  13. valor:        1 2 3 4 5
  14. posicion media = ( n-1 )/2 =  2 .
  15. valor del medio = valor( n-1 )/2 = valor(2)= 3
  16.  

¡¡¡¡ Saluditos! ..... !!!!



EDITADO: Gracias por la observación engel lex
« Última modificación: 2 Mayo 2014, 18:40 pm por leosansan » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Sacar valores par y valores impar
« Respuesta #4 en: 2 Mayo 2014, 17:08 pm »

leosansan creoque pusiste el simbolo incorrecto

i%2 siempre va a ser < 2 :p corrijele su simbolo de division :p

y si nolasco correjido, el metodo de leolsansan es el correcto, recomiendo hacer la operacion un int para evitar errores
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: Sacar valores par y valores impar
« Respuesta #5 en: 3 Mayo 2014, 00:09 am »

Gracias acaba de llegar a la casa y lo acaba de probar

Funciono perfecto mil gracias por responder.

Saludos y muchas gracias de nuevo.
En línea

Lo que se puede imaginar... se puede programar.
Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Sacar valores par y valores impar
« Respuesta #6 en: 3 Mayo 2014, 02:07 am »

Te dejo tambien mi seudocódigo o es lo que parece xD..

Código
  1. for (si i = 0 es menor que dos, incremeta)
  2.   if (n % 2 == 0) es par
  3.    media += a la suma de los dos intermedio = valor[(n-i)/2]
  4.   else es impar
  5.    media = numero de elementos dividido por dos = n /2
  6.   if (n % 2 == 0) si es par, sacar media apartir de la suma de los intermedios
  7.    media = suma de los intermedio dividido dos = media /2

Saludos .:
« Última modificación: 3 Mayo 2014, 02:12 am por Blaster » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Sacar valores par y valores impar
« Respuesta #7 en: 6 Mayo 2014, 09:29 am »

Y que tal con iteradores??

Código
  1.  std::vector< int > lista;
  2.  
  3.  lista.push_back( 1 );
  4.  lista.push_back( 2 );
  5.  lista.push_back( 3 );
  6.  lista.push_back( 4 );
  7.  lista.push_back( 5 );
  8.  lista.push_back( 6 );
  9.  
  10.  auto it = lista.begin( ) + std::distance( lista.begin( ), lista.end( ) ) / 2;
  11.  
  12.  if ( lista.size( ) % 2 == 0 )
  13.    std::cout << *(it - 1) << " ";
  14.  std::cout << *it;
  15.  

Presupongo el vector ya ordenado porque esa parte dices que ya la tienes... aunque con un set o un multiset ( dependiendo de si admites valores duplicados o no ) te ahorrarías el tener que ordenar la lista:

Código
  1.  std::set< int > lista;
  2.  
  3.  lista.push_back( 5 );
  4.  lista.push_back( 1 );
  5.  lista.push_back( 4 );
  6.  lista.push_back( 3 );
  7.  lista.push_back( 6 );
  8.  lista.push_back( 2 );
  9.  
  10.  // Aqui se imprimen ya ordenados
  11.  for ( auto it = lista.begin( ); it != lista.end( ); ++it )
  12.    std::cout << *it << std::endl;
  13.  
  14.  // Y si el orden que quieres es de mayor a menor...
  15.  for ( auto it = lista.rbegin( ); it != lista.rend( ); ++it )
  16.    std::cout << *it << std::endl;
  17.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Valores del registro
Programación Visual Basic
Kizar 1 3,216 Último mensaje 27 Octubre 2005, 20:28 pm
por Kizar
valores sin signo
Programación Visual Basic
leliCabello 3 2,518 Último mensaje 9 Noviembre 2010, 16:34 pm
por leliCabello
valores y grafica
Programación Visual Basic
pirot 5 2,559 Último mensaje 4 Febrero 2011, 08:40 am
por BlackZeroX
Sacar valores de tabla con jquery
Desarrollo Web
andreslrz 1 19,044 Último mensaje 3 Junio 2015, 19:06 pm
por #!drvy
Ayuda para sacar unos valores de un fichero
Java
Fryuio 4 2,719 Último mensaje 22 Abril 2017, 12:40 pm
por Fryuio
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines