sábado, 12 de septiembre de 2015

Algoritmos en Java: Estructura secuencial

   


Problema 1;

A una reunión asistieron n personas. ¿Cuántos apretones de mano hubieron?

Solución:
Definición de variables:
n: número de personas.
a: número de apretones de mano.

Se sabe que cada persona debe saludar a las (n-1) restantes por lo que habrá n*(n-1) saludos como en cada saludo intervienen 2 personas la cantidad de apretones de manos será:

Diagrama N/S:

Leer n
a=n*(n-1)/2
Imprimir a

Código en java:

import java.util.Scanner;

public class EstructuraSecuencial {
           
            public static void main(String [] ag){
                       
                        int n,a;
                        Scanner leer=new Scanner(System.in);
                       
                        System.out.println("Ingrese numero de personas: ");
                        n=leer.nextInt();
                        a=n*(n-1)/2;
                        System.out.println("Numero de apretones de mano: "+a);   
                       
            }

}


Problema 2:

Hallar la suma de los n primeros números naturales.

Solución:

Definición de variables:
n: cantidad de números naturales
s: suma de los primeros números naturales

Se pide lo siguiente:
 s=1+2+3+4+5+6+....+(n-4)+(n-3)+(n-2)+(n-1)+n

Escribamos esta expresion dos veces una ascendentemente y la descendentemente:

s = 1+2+3+4+5+...+(n-4)+(n-3)+(n-2)+(n-1)+
s = n+(n-1)+(n-2)+(n-3)+(n-4)+...+5+4+3+2+

Sumando miembro a miembro tenemos:

2s=(n-1)+(n-1)+(n-1)+(n-1)+(n-1)+...+(n-1)(n-1)(n-1)(n-1)+
                                     n términos

De Donde: s=n(n+1)/2

 Diagrama N/S:

Leer n
s=n*(n+1)/2
Imprimir s

Codificación en Java:

import java.util.Scanner;

public class EstructuraSecuencial {
           
            public static void main(String [] ag){
                       
                        int n,s;
                        Scanner leer=new Scanner(System.in);
                       
                        System.out.println("Ingrese numero de terminos: ");
                        n=leer.nextInt();
                        s=n*(n+1)/2;
                        System.out.println("Suma de los n terminos: "+s);     
                       
            }


}



Cesar GI

About Cesar GI

Lo que me importa es poder enseñar lo poco que se, por que asi como yo aprendo leyendo gracias a las personas que comparten sus conocimiento yo tambien quiero ayudar a la comunidad en español aportando lo poco que he aprendido hasta el momento.

3 comentarios

Write comentarios