Autor Tema: Punto Equilibrio en un arreglo o array: sumar desde derecha e izquierda  (Leído 4237 veces)

Nybras

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Buen Día, no tengo mucho conocimiento sobre la programación y pues tengo un ejercicio que realizar por más que investigo y miro no encuentro una solución al menos parecida, al ejercicio.

El ejercicio es sobre un arreglo de N, indices me debe mostrar en cual(s), hay un punto de equilibro .

Ejemplo:
  0  1  2 3 4 5 6
{6,-6,6,2,3,2,1}

Si se toma el indice 3(2), se deben sumar los indices a la derecha e izquierda y si el valor de la suma es igual es un punto de equilibrio y en dado de que la suma no es igual no es un punto de equilibrio..

Agradezco su gran colaboración..Gracias
« Última modificación: 19 de Mayo 2016, 08:36 por César Krall »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:Punto Equilibrio
« Respuesta #1 en: 17 de Mayo 2016, 08:39 »
Hola, ¿Puedes poner ejemplos donde veamos distintos casos? ¿Qué lenguaje estás utilizando?

Salu2

Nybras

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:Punto Equilibrio
« Respuesta #2 en: 17 de Mayo 2016, 16:27 »
Claro Ogramar!!

Te agrego una imagen, mostrando un ejemplo, solo para ampliar mas la información voy especificar los pasos que en teoría se aplican:

1: Ingresar la longitud del arreglo, esto por realizaría el usuario.
2. Ingresar una cantidad x de números, dependiendo de la longitud máxima del arreglo que el usuario ingreso en el punto anterior.
3. El usuario debe seleccionar un numero de los que ingreso en el punto anterior.
4 Como ejemplo el usuario selecciona un arreglo de 5 e ingresa los números 1,5,7,8,10,5 y selecciona el numero 8.
5. Como esta en la imagen anexa (Primer punto) la suma de los números que se encuentran a la izquierda es 13 y a la derecha es 15, sin contar el numero que el usuario selecciona, la suma de los 2 lados no es igual por lo cual no es un punto de equilibrio.
6. En la imagen (Punto 2), la suma es 6 por lo que si tiene punto de equilibrio.

Básicamente es esto lo que debo realizar (estaba pensando en un while, y dentro del mismo crear 2 arreglos independientes que cree la suma y las compare), como lo indico hasta ahora estoy aprendiendo a programar y mi conocimiento es muy limitado por eso recurro a ustedes..Gracias

EL LENGUAJE ES INDIFERENTE....

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

Para adquirir la lógica de programación recomendamos leer https://www.aprenderaprogramar.com/foros/index.php?topic=1313.0

Ver cursos en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86

Esquema solución planteado en Java:

Código: [Seleccionar]
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

public class Test {

    public static void main(String[] Args) {
        int[] arreglo1 = {1, 5, 7, 8, 10, 5};
        int[] arreglo2 = {-6, 6, 6, 2, 3, 2, 1};
        System.out.println("Comenzamos");
        existeEquilibrioEnIndice (3, arreglo1);
        existeEquilibrioEnIndice (3, arreglo2);   
    }

    public static boolean existeEquilibrioEnIndice (int indice, int[] arreglo) {
        int sumaizq=0; int sumader = 0;
        List <Integer> arr = new ArrayList<Integer> ();
        for (int i=0; i<arreglo.length; i++) {
            arr.add(arreglo[i]);   
        }

        System.out.println("Arreglo: "+ arr + " analizando indice "+indice + " (el primer indice es 0)");

        for (int i=0; i<indice; i++) {
            sumaizq = sumaizq + arreglo[i];   
        }
        System.out.println ("La suma hasta el índice elegido por la izquierda es " + sumaizq);
        for (int i=arreglo.length-1; i>indice; i--) {
            sumader = sumader + arreglo[i];   
        }
        System.out.println ("La suma hasta el índice elegido por la derecha es " + sumader);

        System.out.println ("Concluimos si es punto de equilibrio: "+ (sumaizq == sumader));

        return sumaizq == sumader;   
    }

}

El programita anterior da este resultado:

Comenzamos
Arreglo: [1, 5, 7, 8, 10, 5] analizando indice 3 (el primer indice es 0)
La suma hasta el índice elegido por la izquierda es 13
La suma hasta el índice elegido por la derecha es 15
Concluimos si es punto de equilibrio: false
Arreglo: [-6, 6, 6, 2, 3, 2, 1] analizando indice 3 (el primer indice es 0)
La suma hasta el índice elegido por la izquierda es 6
La suma hasta el índice elegido por la derecha es 6
Concluimos si es punto de equilibrio: true

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".