lunes, 14 de noviembre de 2011

Trabajo Laboratorio (Ejercicio 4)

Autor: Patricio Bello Villalobos.

Competencia:
Aplica las Ciencias de la ingeniería.
Nivel 1: Implementa modelos simples de la ingeniería y de las ciencias básicas, en el desarrollo de software.

Descripción de la actividad:
Análisis y desarrollo un Programa que permita intercalar los dígitos de dos números enteros. Por ejemplo si se tiene 123 y 171 el número resultante debería ser: 112731.

Solución: 

Entrada: Números enteros positivos.
Salida: Número entero positivo.


Generalización:

-Obtener dos números enteros positivos vía Scanner PrimerNumero y SegundoNumero.
-Realizar una división por 10 a dichos números hasta reducirlos a 0, obteniendo numero de dígitos que este contiene:

While (PrimerNumero>0)                                                      While (SegundoNumero>0)
PrimerNumero/10;                                                                 SegundoNumero/10;
NumeroPri++;                                                                          NumeroSeg++;

-Obtener Dígitos de ambos números, mediante el modulo 10 de estos, e ir ubicándolos en la posición numérica correspondiente (Unidad, Decena, Centena, Unidad de mil…etc.)

M1=M1*100;                                                                M2=M2*100;

While (NumeroDigitos=Veces)                                   While (NumeroDigitos >Veces)
Digito=PrimerNumero%10;                                        Digito=SegundoNumero%10;
M1=1;                                                                             M2=10;                                                                 
Final=Final+(Digito*M1);                                            Final=Final+(Digito*M2);
PrimerNumero=PrimerNumero/10;                        SegundoNumero=SegundoNumero/10;
Veces++;                                                                         Veces++;      
Final=Final+(Digito*M1);                                            Final=Final+(Digito*M2);

Con esto obtenemos el Número entrelazado, y luego solo basta con imprimirlo en pantalla

Imprimir ("El numero Final es = "+Final);


CODIGO:

* @author Patricio Bello Villalobos - Daniela Muñoz Muñoz
 * Ejercicio Número 4
 */
import java.util.*;

public class Intercalar {

    public static void main (String[]args)

 {
     int primernumero;
     int segundonumero;
     int CantidadPrimerNumero=0;
     int CantidadSegundoNumero=0;
     int Final=0;

     System.out.println("Ingrese el primer numero a intercalar");
     Scanner L= new Scanner(System.in);
     primernumero=L.nextInt();

     System.out.println("Ingrese el segundo numero a intercalar");
     segundonumero=L.nextInt();

     int x=primernumero;
     int y=segundonumero;

      while(x>0)
     {
     CantidadPrimerNumero++;
      x=x/10;
     }
    
     while(y>0)
     {
     CantidadSegundoNumero++;
     y=y/10;
     }

     int Veces=0;
     int x1;
     int y1;
     int M1=1;
     int M2=10;

     while(Veces<=CantidadPrimerNumero || Veces<=CantidadPrimerNumero)
     {
     x1=primernumero%10;
     y1=segundonumero%10;
    
     Final=Final+(y1*M1);
     Final=Final+(x1*M2);

     primernumero=primernumero/10;
     segundonumero=segundonumero/10;
    
     M1=M1*100;
     M2=M2*100;
    
     Veces++;
     }

     System.out.println("El numero Final es = "+Final);
     }
}





Reflexión: Esta actividad contemplaba el uso de operaciones matematicas para lograr un objetivo, la utiliacion de estas permitió un desarrollo integro en la competencia de ciencias de la ingeniería  con modelos matemáticos de la ingeniería y de las ciencias básicas, los cuales contribuyeron al mejoramiento de procesos vinculados a los problemas de las ciencias de la ingeniería.

Actividad 3 Programación Java

Autor : Patricio Bello Villalobos

Competencia:

Aplica las Ciencias de la ingeniería.
Nivel 1: Implementa modelos simples de la ingeniería y de las ciencias básicas, en el desarrollo de software.

Descripción de la actividad:

Análisis y desarrollo de un programa que lee 4 enteros y a continuación determina e imprime cuáles son el mayor y el menor en el grupo, cuál es el más cercano al promedio y qué números sólo difieren en una unidad.

Solución: 


Entradas:
a= Primer Digito, números enteros, Sin límite.
b= Segundo Digito, números enteros, Sin límite.
c= Tercer Digito, números enteros, Sin límite.
d= Cuarto Digito, Sin límite.

Salidas:
Nº Mayor, número enteros, Sin límite.
Nº Menor, número entero, Sin límite.
Nº más cercano al promedio, número entero, Uno de los dígitos del usuario.
Nº que difieren de una unidad, números enteros, Sin límite.

Ejemplo paso a paso:
Paso 1 = leer datos.
Paso 2=Determinar Numero Mayor.
Paso 3 =Determinar Numero Menor.
Paso 4=Calcular Promedio.
Paso5=Reconocer numero más cercano al promedio.
Paso6=Restar Numero.
Paso7=Ver cuales tienen una unidad como diferencia.
Paro8=Imprimir Numero Mayor.
Paso9=Imprimir Numero Menor.
Paso10=Imprimir más cercano al promedio.
Paso11=Imprimir números que se diferencian por una unidad.
Diagrama Flujo:






Código:
import java.util.*;
public class MuchasCosas
{
  public static void main ()
    {
        int a, b, c, d, H, A, B, C, D;
       
        Scanner Num1= new Scanner(System.in);
        System.out.println("Ingrese primer numero entero=");
        a=Num1.nextInt ();
        Scanner Num2= new Scanner(System.in);
        System.out.println("Ingrese segundo numero entero=");
        b=Num2.nextInt ();
        Scanner Num3= new Scanner(System.in);
        System.out.println("Ingrese tercer numero entero=");
        c=Num3.nextInt ();
        Scanner Num4= new Scanner(System.in);
        System.out.println("Ingrese cuarto numero entero=");
        d=Num4.nextInt ();
        {
       
        if(a>=b&&a>=c&&a>=d)
        System.out.println("Numero Mayor="+a);
        else
        if(b>=a&&b>=c&&b>=d)
        System.out.println("Numero Mayor="+b);
        else
        if(c>=b&&c>=a&&c>=d)
        System.out.println("Numero Mayor="+c);
        else
        if(d>=a&&d>=b&&d>=c)
        System.out.println("Numero Mayor="+d);
       
        if(a<=b&&a<=c&&a<=d)
        System.out.println("Numero Menor="+a);
        else
        if(b<=a&&b<=c&&b<=d)
        System.out.println("Numero Menor="+b);
        else
        if(c<=b&&c<=a&&c<=d)
        System.out.println("Numero Menor="+c);
        else
        if(d<=a&&d<=b&&d<=c)
        System.out.println("Numero Menor="+d);
    }
   
       { H=(a+b+c+d);
         H=H/4;
        A=H-a;
        B=H-b;
        C=H-c;
        D=H-d;
    }
       
    {if(A<=B&&A<=C&&A<=D)
        System.out.println("Numero mas cercano al promedio="+a);
        else
        if(B<=A&&B<=C&&B<=D)
        System.out.println("Numero mas cercano al promedio="+b);
        else
        if(C<=B&&C<=A&&C<=D)
        System.out.println("Numero mas cercano al promedio="+c);
        else
        if(D<=A&&D<=B&&D<=C)
        System.out.println("Numero mas cercano al promedio="+d);
        
    }
       
      System.out.println("Numeros que se diferencian por un decimal=");
      {
      if((a-b)==1)
      System.out.println(a+"y"+b);
      if((a-c)==1 )
      System.out.println(a+"y"+c);
      if ((a-d)==1 )
      System.out.println(a+"y"+d);
      if ((b-c)==1 )
      System.out.println(b+"y"+c);
      if ((b-d)== 1)
      System.out.println(b+"y"+d);
      if ((c-d)==1)
      System.out.println(c+"y"+d);
    }
      {
      if((a-b)==-1)
      System.out.println(a+"y"+b);
      if((a-c)==-1)
      System.out.println(a+"y"+c);
      if ((a-d)==-1)
      System.out.println(a+"y"+d);
      if ((b-c)==-1)
      System.out.println(b+"y"+c);
      if ((b-d)==-1)
      System.out.println(b+"y"+d);
      if ((c-d)==-1)
      System.out.println(c+"y"+d);
    }
     
    
  }

}


Impresión de pantalla de ejecución




Reflexión: Esta actividad me ayudo muchisimo a poder realizar La competencia de ciencias de la ingeniería, en diseño, implementacion y operacion con modelos matemáticos de la ingeniería y de las ciencias básicas, que contribuyeron al mejoramiento de procesos vinculados a los problemas de las ciencias de la ingeniería
mediante la resolución de un problema matemático con Java.





martes, 11 de octubre de 2011

Actividad N°1 "PARÁMETROS"


  • Autor: Patricio Bello Villalobos
  • Competencia :Desarrollo de software. Nivel : Desarrolla soluciones de software aplicando procesos de análisis, diseño y prueba a problemas simples; centrados en la programación, los datos y las Interfaces Humano/Computador (IHM).

  • Descripción de la actividad: 
  • Un robot se desplaza por una superficie blanca con puntos negros. La superficie es rectangular y posee paredes en sus bordes. Construya un robot que implemente las siguientes funcionalidades:
    1. Cada vez que el robot choca con una pared debe:
    1. retroceder un poco,
    2. girar 180° a la izquierda o derecha,
    3. disminur su potencia en 10,
    4. contar los choques con las paredes,
    5. y seguir su recorrido con la nueva potencia
    1. Al pasar por un punto negro debe:
    1. contarlo,
    2. girar en un ángulo aleatorio menor a 180° a la izquierda o derecha,
    3. aumentar su potencia en 10,
    4. y seguir su recorrido con la nueva potencia.
    1. El robot se desplaza por tiempo indefinido, deteniendo su recorrido ante una señal auditiva sobre 80 db.
    2. Al final del recorrido, informará en su visor el n° de choques y el n° de puntos negros detectados.


  • Solución: 
  • Diseño:

    En las siguientes fotografías aclararemos cada parte que compone nuestro robot.

    http://www.mediafire.com/imgbnc.php/1c7f1a8fdf623ea4ff38feb2ef7db207c0bdd0b09130f0b83896582f27649e534g.jpg

    -Los sensores: en nuestra actividad usaremos los siguientes sensores:

    Sensor de Tacto: el sensor de tacto está ubicado en posición frental, ya que al chocar con la pared éste será contabilizado y a la vez retrocederá siguiendo su recorrido.
    Sensor de Luz: el sensor de luz está ubicado en dirección hacia abajo, para que pueda reconocer el color de la base (blanca) y a su vez la de los puntos negros, estos últimos para ser contabilizados.
    Sensor de Ultrasonido: el sensor de ultrasonido esta ubicado en dirección hacia arriba, para que al emitir el sonido, para detenerse éste lo escuche con mayor facilidad


    -Las Ruedas:

    Ruedas Delanteras: usaremos 2 ruedas delanteras medianas, la cual facilitara el movimiento del robot.

    Rueda trasera: usaremos 1 rueda trasera, será de tamaño pequeño la cual nos facilitara que el robot a la hora de girar, gire con mayor precisión.

    Imagen 2
    http://www.mediafire.com/imgbnc.php/ba5095ea05dceb2f6f5b810871559e079a75fa3b57e1f39b3a7f4e6a6f3cf4d04g.jpg

    -Los Motores: en nuestro robot usaremos 2 motores los cuales serán usados para mover las ruedas traseras de nuestro robot.

    Imagen 3
    http://www.mediafire.com/imgbnc.php/b8931507065517c6f45652b5b30ef96a8f05dba0434d4efa78ab6e782ce4f0df4g.jpg

    Estas fotografías muestran el robot en todos sus ángulos y como realizo el recorrido de la actividad.

  •  -En el desarrollo de nuestro robot, tratamos de representarlo lo más claro posible, mostrando cada parte que compone nuestro robot para aclarar su parte física, sobre todo lo que es referido a los sensores por el lugar en que están ubicados. También mostraremos un video del robot funcionando, y aclaramos el código a través de comentarios.

    -El aprendizaje de las 2 nuevas instrucciones de lenguaje NXC fueron utilizadas con éxito, al aplicarlas y ver la reacción que tuvo el robot frente a estas, las 2 instrucciones utilizadas fueron: float (utilizado para que el robot se detenga lentamente), OnFwdReg y OnRevReg (utilizado para que el avance y/o retroceso del robot sea constante).


Código:


Video:



  • Reflexión: En esta actividad, pude realizar realizar la creación de un programa que realiza todas las funciones del robot en cuestión, esto me permitió ampliar mis conocimientos enormemente en la materia, con los cuales pude desarrollar un análisis mas completo de los futuros problemas propuestos, dando soluciones efectivas y rápidas, en todo lo relacionado con Arrays[].

Trabajo Laboratorio Nº2


  • Autor: Patricio Bello Villalobos
  • Competencia: DESARROLLO DE SOFTWARENivel: Desarrolla soluciones de software aplicando procesos de análisis, diseño y prueba a problemas simples; centrados en la programación, los datos y las Interfaces Humano/Computador (IHM). 

  • Descripción de la actividad: Analice y desarrolle un Programa que permita intercalar los dígitos de dos números enteros. Por ejemplo si se tiene 123 y 171 el número resultante debería ser: 112731.

  • Solución: 
Entrada:
Números enteros positivos.
Salida:
Número entero positivo.


-Obtener dos números enteros positivos vía Scanner PrimerNumero y SegundoNumero.
-Realizar una división por 10 a dichos números hasta reducirlos a 0, obteniendo numero de dígitos que este contiene:

While (PrimerNumero>0)                                                      While (SegundoNumero>0)
PrimerNumero/10;                                                                 SegundoNumero/10;
NumeroPri++;                                                                          NumeroSeg++;




-Obtener Dígitos de ambos números, mediante el modulo 10 de estos, e ir ubicándolos en la posición numérica correspondiente (Unidad, Decena, Centena, Unidad de mil…etc.)

M1=M1*100;                                                                M2=M2*100;


While (NumeroDigitos=Veces)                                   While (NumeroDigitos >Veces)
Digito=PrimerNumero%10;                                        Digito=SegundoNumero%10;
M1=1;                                                                             M2=10;                                                                 
Final=Final+(Digito*M1);                                            Final=Final+(Digito*M2);
PrimerNumero=PrimerNumero/10;                        SegundoNumero=SegundoNumero/10;
Veces++;                                                                         Veces++;      
Final=Final+(Digito*M1);                                            Final=Final+(Digito*M2);

Con esto obtenemos el Número entrelazado, y luego solo basta con imprimirlo en pantalla

Imprimir ("El numero Final es = "+Final);


CODIGO:

* @author Patricio Bello Villalobos - Daniela Muñoz Muñoz
 * Ejercicio Número 4
 */
import java.util.*;

public class Intercalar {

    public static void main (String[]args)

 {
     int primernumero;
     int segundonumero;
     int CantidadPrimerNumero=0;
     int CantidadSegundoNumero=0;
     int Final=0;

     System.out.println("Ingrese el primer numero a intercalar");
     Scanner L= new Scanner(System.in);
     primernumero=L.nextInt();

     System.out.println("Ingrese el segundo numero a intercalar");
     segundonumero=L.nextInt();

     int x=primernumero;
     int y=segundonumero;

      while(x>0)
     {
     CantidadPrimerNumero++;
      x=x/10;
     }
    
     while(y>0)
     {
     CantidadSegundoNumero++;
     y=y/10;
     }

     int Veces=0;
     int x1;
     int y1;
     int M1=1;
     int M2=10;

     while(Veces<=CantidadPrimerNumero || Veces<=CantidadPrimerNumero)
     {
     x1=primernumero%10;
     y1=segundonumero%10;
    
     Final=Final+(y1*M1);
     Final=Final+(x1*M2);

     primernumero=primernumero/10;
     segundonumero=segundonumero/10;
    
     M1=M1*100;
     M2=M2*100;
    
     Veces++;
     }

     System.out.println("El numero Final es = "+Final);
     }
}



  • Reflexión: Gracias a este trabajo, pude desarrollar una solución de software aplicando procesos de análisis, diseño y prueba al problema planteado; centrado en la programación JAVA, los datos del usuario y las Interfaces Humano/Computador, este trabajo me permitió desarrollar y ampliar mis conocimientos en ciclos anidados, los cuales sirven en muchos problemas comunes como una forma fácil y rápida de solución.