guia 3 java sin solucionar

Upload: jeyson-garcia

Post on 05-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    1/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 1

    GUIA PRCTICA

    ESTRUCTURA: PROGRAMACION ORIENTADA A OBJETOSMODULO: Programacin en JAVANo. GUIA: TRES (3)

    OBJETIVOS Concepto de vectores. Concepto de captura. Distinguir mediante ejercicios prcticos los vectores y como realizar capturas. Concepto de sobrecarga. Realizacin de ejemplos de pasos de argumentos a la aplicacin.

    La presente gua nos permitir analizar, modificar, comprender y desarrollarnuestros propios ejercicios, recuerde que para comprender mejor cada uno de lostemas vistos en nuestro curso es necesario que usted tambin tenga la tarea deinvestigar.

    VECTORESclass Texto

    {

    String[] primnom ={"Raul","Maria","Daniel","Camilo","Dina","Andrea"};

    String[] apellido = new String [primnom.length];

    void imprimir ()

    {

    for (int i=0; i< primnom.length; i++)

    {

    System.out.println(primnom [i]+ " " + apellido[i]);

    }

    }

    public static void main(String var[])

    {

    Texto aux = new Texto ();

    aux.imprimir();

    aux.apellido[0]="Ortiz";

    aux.apellido[1]="Giacometto";

    aux.apellido[2]="Sierra";

    aux.apellido[3]="Prieto";

    aux.apellido[4]="Otavo";

    aux.apellido[5]="Martin";

    aux.imprimir();

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    1

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    2/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 2

    }}

    Como podemos ver, los vectores en java son prcticamente idnticos a los de C++,pues se enuncian y representan de la misma manera, adems de que ahora podemosingresar cadenas o strings dentro de los arrays como lo vimos en el ejemplo anterior.

    Aqu se presenta el IDE Jcreator para que desde ya te vayasacostumbrando a usarlo

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    2

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    3/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 3

    No, Daniel tan solo es una variable de tipo cadena(string) que est dentro del arreglo o vector primnom.

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    3

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    4/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 4

    1. Escribir un programa en java en que el vector cuyos elementos son: { 7, 4, 8, 1, 4,1, 4 }. debe imprimir el mismo vector en arreglo1 y en arreglo2 imprimir losmismos elementos de arreglo1 hasta que encuentre un elemento 1, cuandoencuentre el elemento 1 no debe imprimir ms; el vector arreglo2 debe serflotante.

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    4

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    5/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 5

    2. la clase CargaVector recibe en el mtodo marcarRango un valor inicial y un valorfinal para que cargue consecutivamente en intervalos de uno en uno un vector arrdesde el valor inicial hasta el valor final; este mtodo debe devolver el nuevovector a donde fue llamado. Desde el mtodo main se debe llamar al mtodomarcarRango. en este mismo mtodo main imprimir el vector cargadomarcarRango.

    3. Escribir un programa en JAVA implementando una funcin en la que del mainentren los valores 1, 2, 54, 77, 1346. Esta funcin debe imprimir el valor que entrae indicar cul es par y cual es impar.

    4. Escribir un programa en Java en que el vector cuyos elementos son: 7, 4, 8, 1, 4,1, 4. Debe imprimir el mismo vector en arreglo1 y en arreglo 2 los elementos 1

    deben cambiar por cero e imprimir todo el vector en flotante.

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    5

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    6/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 6

    5. Imprimir un vector cargado de elementos de tipo entero. Imprimir indicando cualesy cuantos y en qu posicin los valores se repiten.

    Los flujos surgen por la necesidad de las aplicaciones Java de interactuar con el exteriorde dos posibles formas:

    Generando salida a la consola del , a un fichero, etc.

    Capturando datos procedentes del teclado, de ficheros, de pginas web, etc.

    Concepto de flujo: es como un ro. El agua en movimiento es el flujo, su contenido sonlos datos. Lo que permite que esos datos viajen de un origen a un destino es el agua enmovimiento, es decir, el flujo. En el caso de la captura, desde un programa Java, dedatos introducidos por un usuario mediante teclado, el origen es el , eldestino, el programa Java y los datos, lo tecleado por el usuario.

    Java modela flujos mediante clases del paquete java.io.

    Se necesita lo siguiente:

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    6

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    7/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 7

    Obtener un objeto que modele la fuente de entrada de datos teclado en unprograma Java.

    Para ello, lo primero que debe tenerse presente es que el es laentrada estndar de datos en un PC.

    A continuacin, debe tenerse en cuenta, que cualquier entrada genrica de datosa un programa Java, se modela mediante un objeto de la clase abstractajava.io.InputStream.

    Bueno, pues en la API se observa que un objeto de esta clase es lo que devuelve

    la variable de campo esttica "in" de la clase java.lang.System. Adems, laexplicacin API de esta variable nos dice que representa la entrada estndar dedatos de un programa Java. Pues ya est.

    CONCLUSIN: en los cdigos que capturen datos procedentes del teclado, se emplearpara modelar el teclado.

    Para la salida es lo mismo: la salida estndar de datos en un PC es la consola del. La salida genrica de datos de un programa Java se modela

    mediante un objeto de la clase abstracta .

    En la API, se observa que un objeto (hereda dey, por tanto, es un objeto ) es lo que devuelve la variable decampo esttica " " de . Adems, la explicacin API de estavariable dice que representa la salida estndar de datos de un programa Java.

    CONCLUSIN: en los cdigos que generen salida a travs de la consola del DOS, seemplear para modelar la consola del DOS.

    Cmo se escribe en la consola?

    A travs de mtodos adecuados de PrintStream. Concretamente se han empleadoprint(..) y println(..) durante el tiempo que se lleva de curso

    No es esta la nica forma de interactuar con el exterior que tiene un cdigo Java.Ms adelante se ver cmo se puede generar salida creando un fichero, porejemplo.

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    7

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    8/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 8

    Crear un flujo que permita al programador leer datos del teclado. Este flujo va aser de entrada o lectura de datos y va a modelarse con una objeto de la claseInputStreamReader.

    Crear un filtro encargado de leer los datos de forma ptima mediante la aplicacinde un mtodo de lectura adecuado. El filtro se modela con un objeto de la clase

    java.io.BufferedReader y el mtodo de lectura adecuado va a ser StringreadLine() que, ya se ver, lanza una excepcin del tipo IOException quedebe ser gestionada correctamente. En un principio, se gestionar mediante laclusula throws IOException a continuacin del mtodo main.

    CONCLUSIN GENERAL:

    permite leer datos .

    El System.in u objeto es el deInputStreamReader y modela el origen de los datos que se leen, es decir, elteclado.

    El filtro u objeto permite, mediante la utilizacin del mtodoString readLine(), leer de forma ptima del flujo.

    Vdeo explicativo del proceso de lectura de datos desde teclado.

    Ejemplo: muestra cmo se programa un cdigo Java que tiene que capturar datosintroducidos por el usuario desde teclado.

    Al ejecutarlo, se mostrar por consola un mensaje indicando al usuario que introduzcaun nmero. El usuario lo teclear y pulsar enter. Despus, se mostrar otro mensajeinvitndole a que teclee otro nmero. El usuario lo teclear y pulsar de nuevo enter(esel metodo readline). Finalmente, el cdigo calcular la suma de los dos nmerosintroducidos. Todos los cdigos en c:\cursojava\tema3 si no se emplea IDE o enjcreator_home\MyProjects\tema3 si se emplea.

    Ejemplo:

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    8

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    9/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 9

    Cdigo fuente

    Explica el programa: Primero empezamos importando la API java.io pues ser necesariapara los procesos que deseamos realizar dentro del programa.

    Luego declaramos nuestra clase con el nombre SumaDatosTeclado adems de colocarel mtodo main de esta clase igual que siempre lo declaramos public static voidmain(String[] args) pero en este casos usamos el mtodo throws para lanzar una

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    9

    .

    http://www.adrformacion.com/udsimg/java/3/SumaDatosTeclado.txthttp://www.adrformacion.com/udsimg/java/3/SumaDatosTeclado.txt
  • 7/31/2019 GUIA 3 Java Sin Solucionar

    10/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 10

    excepcin, en este caso la IOException (ver gua de excepciones). Si llegase a haber unaexcepcin en el proceso normal del programa podramos manejarla y arreglar dichoerror.

    Como dice hay, creamos el flujo y el filtro para lectura de datos respectivamente. Despusse inicializa la variable de tipo String porque java al leer datos por teclado, siempre losvera como cadenas. Posterior a eso se inserta el flujo br, el apuntador y el mtodoreadLine() que permitir el ingreso de datos.

    Despus se debe convertir el valor de cadena en un valor entero (int) en este caso atravs de las sentencias Integer.parseInt() y dentro de los parntesis del mtodo parseIntse escribe la variable que ser convertida.

    Al final procedemos a imprimir el resultado concatenando las cadenas con las variablesahora enteros y en el mismo mtodo de impresin realizamos la suma.

    Por consola:

    Teclea el primer numero: 10

    Teclea el segundo numero: 23

    Suma de 10 y 23 es 33

    NOTA: la creacin del filtro podra hacerse en una sola lnea de este modo:

    A continuacin observara dos ejemplos de captura transcrbalos y ejectelos, recuerdeque pueden tener algn error si es as modifquelos y completelos segn lo aprendido.

    import java.lang.*;

    import java.io.* ;/*API de java que hace referencia a la IOSTREAM de C++ quepermite el flujo de datos, de hay su nombre Input Output*/

    public class Captura {public static void main(String[] var)throws IOException {

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    10

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    11/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 11

    int num1,num2,result;String cap;DataInputStream dato = new DataInputStream(System.in);num1=0;/*(El objeto dato de la clase DataInputStream ya fue instanciado una vez

    y no se necesita repetirlo de nuevo*/num2=0;result=0;cap=" ";System.out.println("digite 1er numero");cap = dato.readLine();

    num1=Integer.parseInt(cap);

    System.out.println("digite 2do numero");cap = dato.readLine();num2=Integer.parseInt(cap);

    System.out.println("el resultado es:");result=(num1+num2);System.out.println(result);

    }}

    ejemplo2

    import java.io.*;public class Captura3{

    (String[] var)throws IOException

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    11

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    12/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 12

    {int num1, num2, result;String Cap;DataInputStream dato = new DataInputStream (System.in); /*instanciacin del objetopara el flujo de datos de la clase DataInputStream*/

    num1 = 0;//DataInputStream dato = new DataInputStream (System.in);num2 = 0;result = 0;Cap = " ";

    ("digite el primer nmero");Cap=dato.readLine();num1=System.out.println("digite el segundo numero");Cap=dato.readLine();num2=System.out.println("el resultado es");result=(num1+num2);System.out.println(result);}}

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    12

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    13/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 13

    El lenguaje de POO Java contiene muchsimos mtodos para el ingreso de datos porteclado, unos ms sencillos que otros, aunque la metodologa que se sigue es la mismapara todos los casos:

    Uno de ellos es a travs de uno que permite el ingreso de los datos por consola:

    class Ejemplo2{public static void main(String[] args){int num;System.out.println("Usuario, digite un numero: ");String cap=System.console().readLine();num=Integer.parseInt(cap);System.out.print("El numero digitado es: "+num);}}

    Esta sentencia System.console().readLine() permite el ingreso de datos a travs de laconsola del BIOS y no necesita de la importacin de alguna API en especial, pero este nofunciona en algunos IDE como en nuestro caso el JCreator que no reconoce el mtodoconsole() .

    Otro tambin muy conocido es el siguiente. Este hace uso de la API de java til.Scanner, yfunciona de una forma muy parecida al mtodo principal que vimos previamente, pues

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    13

  • 7/31/2019 GUIA 3 Java Sin Solucionar

    14/14

    SERVICIO NACIONAL DE APRENDIZAJE,SENA

    PROGRAMACIN ORIENTADA AOBJETOS

    Fecha:

    11/11/2011

    Pgina 14

    tambin se crea una especia de filtro para el flujo de datos. Adems como se observa nose usa la tpica conversin del Integer.parseInt que es reemplazada con el mtodo nextIntlo que ahorra ms lneas del cdigo.

    import java.util.Scanner;

    public class TestScanner{public static void main(String[] args){int entero;Scanner scanner = new Scanner(System.in);System.out.println(" valor Entero :");entero = scanner.nextInt();System.out.println(entero);}}

    Elaborado por: Ing Ral Ernesto Ortiz Garzn

    14