Foro de elhacker.net

Programación => Java => Mensaje iniciado por: lizn22 en 19 Abril 2019, 02:23 am



Título: ayuda !!
Publicado por: lizn22 en 19 Abril 2019, 02:23 am
Hola chicos soy nueva en este sitio, estoy intentando hacer este ejercicio en Java nose como hacer sin usar vectores si alguien se le ocurre una idea agradezco :)


//Escribir un programa que ingrese un número entero positivo N y luego N números
//enteros e imprima la suma de los números leídos comprendidos entre el mayor de
//los N números leidos y el menor de los N números leidos(sin el uso de vectores).
//Ej.1: 4 1 3 8 2 7 9 -----> debe imprimir 20 pues 3+8+2+7 = 20


Título: Re: ayuda !!
Publicado por: srWhiteSkull en 19 Abril 2019, 04:05 am
No entiendo el ejercicio, de que forma obtiene la suma, pero igualmente sólo necesitas un array para guardar los valores, un array de dimensión N, por lo que tendrás que definir el tamaño después de conocerlo. Luego usas un bucle N y vas metiendo los valores... luego está sacar el resultado, que yo por lo menos no entiendo eso de "e imprima la suma de los números leídos comprendidos entre el mayor de los N números leidos y el menor de los N números leidos".

PD el mayor es 9 y el menor 1 por lo que 4 debería entrar en la suma y en cambio sólo suma 3+8+2+7 ¿?

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html


Título: Re: ayuda !!
Publicado por: CalgaryCorpus en 19 Abril 2019, 04:51 am
Nota que el enunciado dice:  "Ej 1", existen otros ejemplos?

Para que calce con el ejemplo. creo que se puede resolver llevando varias variables que mantenga la suma hasta ese momento.

Si vas llevando la suma hasta ese momento en una variable suma, esa variable tendra estos valores a medida que van apareciendo, sin necesidad de guardar todos los numeros en un arreglo o vector.

4, suma = 4
1, suma = 5
3, suma = 8
8, suma = 16
2, suma = 18
7, suma = 25
9, suma = 34

Otra variable puede llevar cual es el menor, y otra cual es la suma que se produce hasta ese momento.

4, suma = 4, menor = 4, sumamenor = 4
1, suma = 5, menor = 1, sumamenor = 5
3, suma = 8
8, suma = 16
2, suma = 18
7, suma = 25
9, suma = 34

Otra variable puede llevar cual es el mayor, y otra cual es la suma que se produce hasta ese momento.

4, suma = 4, menor = 4, sumamenor = 4, mayor = 4, sumamayor = 4
1, suma = 5, menor = 1, sumamenor = 5
3, suma = 8
8, suma = 16, ... mayor = 8, sumamayor = 16
2, suma = 18
7, suma = 25
9, suma = 34, ... mayor = 9, sumamayor = 34

al final tendras
menor = 1, sumamenor = 5, mayor = 9, sumamayor = 34

sumamayor - sumamenor - mayor = 34 - 5 - 9  = 20

ahora, si lo que primero aparece es el numero mayor,
lo que habria que hacer es:

sumamenor - sumamayor - menor



Título: Re: ayuda !!
Publicado por: lizn22 en 19 Abril 2019, 05:09 am
5)Escribir un programa que ingrese un número entero positivo N y luego N números
enteros e imprima la suma de los números leídos comprendidos entre el mayor de
los N números leidos y el menor de los N números leidos(sin el uso de vectores).
Ej.1: 4 1 3 8 2 7 9 -----> debe imprimir 20 pues 3+8+2+7 = 20


Ej.1: 4 1 3 8 2 7 -----> debe imprimir 3 pues es el único valor entre
el mayor 8 y el menor 1

primero ingresas un numero positivo y luego N números el 9 es mayor  el 1 es menor hacer la suma entre el esos intervalos sin contar al menor y al mayor


Título: Re: ayuda !!
Publicado por: srWhiteSkull en 19 Abril 2019, 05:13 am
Nota que el enunciado dice:  "Ej 1", existen otros ejemplos?

Para que calce con el ejemplo. creo que se puede resolver llevando varias variables que mantenga la suma hasta ese momento.

Si vas llevando la suma hasta ese momento en una variable suma, esa variable tendra estos valores a medida que van apareciendo, sin necesidad de guardar todos los numeros en un arreglo o vector.

4, suma = 4
1, suma = 5
3, suma = 8
8, suma = 16
2, suma = 18
7, suma = 25
9, suma = 34

Otra variable puede llevar cual es el menor, y otra cual es la suma que se produce hasta ese momento.

4, suma = 4, menor = 4, sumamenor = 4
1, suma = 5, menor = 1, sumamenor = 5
3, suma = 8
8, suma = 16
2, suma = 18
7, suma = 25
9, suma = 34

Otra variable puede llevar cual es el mayor, y otra cual es la suma que se produce hasta ese momento.

4, suma = 4, menor = 4, sumamenor = 4, mayor = 4, sumamayor = 4
1, suma = 5, menor = 1, sumamenor = 5
3, suma = 8
8, suma = 16, ... mayor = 8, sumamayor = 16
2, suma = 18
7, suma = 25
9, suma = 34, ... mayor = 9, sumamayor = 34

al final tendras
menor = 1, sumamenor = 5, mayor = 9, sumamayor = 34

sumamayor - sumamenor - mayor = 34 - 5 - 9  = 20

ahora, si lo que primero aparece es el numero mayor,
lo que habria que hacer es:

sumamenor - sumamayor - menor

cierto se podría prescindir de un contenedor para los números y realizar la operación sobre la marcha, y con respecto al resultado JODER!! eso parece cábala  :xD


Título: Re: ayuda !!
Publicado por: yuimugi912 en 19 Abril 2019, 05:54 am
si pero tendrias que guardar el numero 4 1 3 8 2 7 9 en una variable e ir tomando caracter a caracter , por eso de no usar vectores


Título: Re: ayuda !!
Publicado por: CalgaryCorpus en 19 Abril 2019, 07:07 am
Los numeros se ingresan por separado de acuerdo al enunciado.