Título: crear en pseint un programa que de el numero que mas se repite Publicado por: LOUNELSON en 7 Abril 2011, 04:17 am HOLA HE ESTADO INTENTANDO HACER UN PROGRAMA QUE ME DE EL NUMERO MAS REPETIDO EN UNA DETERMINADA LISTA DE NUMEROS .. PERO NO HE LOGRADO CONSEGUIR UNA RESPUESTA POSITIVA LO QUE HE HECHO HASTA EL MOMENTO ES:
ESTOY EMPEZANDO CON ESTE TEMA DE LOS ARREGLOS ASI QUE SI ME AYUDAN SE LOS AGRADESERE MUCHO. :D Código: //definir arreglos; Título: Re: crear en pseint un programa que de el numero que mas se repite Publicado por: crazykenny en 15 Abril 2011, 09:06 am Yo, personalmente, lo haria con una matriz de un nivel para almacenar todos los numeros, y luego haria un bucle FOR/NEXT de dos niveles, donde el segundo nivel tenga dos valores y el primero tendria, basicamente, un valor igual a la cantidad de numeros que haya en la matriz; me explico; inicialmente, creas una matriz con los numeros en cuestion, y luego, un bucle FOR/NEXT, con una variable asignada a 0 (ejemplo X#=0) que haria referencia al tamaño de la matriz; entonces, dentro del bucle, cada vez que aparezca un numero en el bucle, pues comprobaria con otro bucle FOR/NEXT dentro de este si el numero esta dentro de la matriz de dos niveles; si esta en el primer valor del segundo nivel (0 por defecto, que seria algo asi como matrix#(var#,0), donde var# no puede superar a X#, ya que es el limite logico de la matriz), pues aumentamos el segundo valor (matrix#(var#,1)) en uno; y, si no esta, pues volcaria el contendido de la matriz en otra, para luego crear la matriz "base" con los numeros y cantidad de veces que se repite con un numero superior a uno, para, asi, volver a pasar los numeros volcados a la matriz principal; no se si me explico, quedaria algo asi en lo que respeta a volcar numeros;
Citar if X#>1 Por cierto, si X# es igual a 0, tan solo habrias de crear la matriz principal, para luego asignarle el numero en cuestion en el valor 0 del primer nivel la matriz y 1 en el segundo nivel de la matriz.X#=X#-1 dim matriz_b#(X#,1) for tr#=0 to X# for t=0 to 1 opciones#=matriz#(tr#,t) matriz_b#(tr#,t)=opciones# next next X#=X#+1 dim matriz_b#(X#,1) X#=X#-1 for tr#=0 to X# for t=0 to 1 opciones#=matriz_b#(tr#,t) matriz#(tr#,t)=opciones# next next X#=X#+1 matriz#(X#,0)=numero# matriz#(X#,0)=1 Por utlimo, para saber cual es el numero que mas se repite, yo haria otro bucle FOR/NEXT, con dos variables; una, para indicar el numero que mas se repite, y otra para indicar cuantas veces, y basicamente, seria comprobar con el bucle cuantas veces se repite cada numero y comprobando si es superior a la variable en cuestion, y si lo es, pues asignas cuantas veces se repite el numero a la variable (mas que nada para luego seguir con el bucle y la comprobacion para ver si hay otro numero que se repita mas y hacer lo siguiente) y luego asignar la primera variable al numero en cuestion, y, si se repiten varios numeros un numero igual de veces, pues haces lo de antes de ir ampliando la matriz, y si por lo que sea, aparece otro numero que se repite mas veces que los de la matriz, pues nada, dejas la variable que limita la matriz a 1, y luego guardas ese numero en la matriz. Espero haberte servido de ayuda, pese al "lio" que te he metido aqui. Saludos. |