Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Taller de programación Luis Rojas Farro, Mg. NO VALE REPETIR ¿ALGO QUE RECUERDES DE LA CLASE ANTERIOR? Desarrollamos algoritmos, hicimos un programa secuencial en Netbeans, compilamos y ejecutamos,lo vimos en entorno no grafico, entendimos que es programa secuencial y tipos de variables. Logro: Al termino de la sesión debemos entender Tipos de datos Numéricos: Int,float, long,double Operadores aritméticos Tipo Char Secuencias de escape Cadenas de caracteres Entrada : clase Scanner Logro de la sesión: Contenido de la sesión Semana 2: Desarrollaremos ejercicios asociados a los tipos de datos que analizaremos y profundizaremos en la clase Scanner. Encabezado de la clase Main Es un estándar utilizado por la JVM para iniciar la ejecución de cualquier programa Java. Dicho método se conoce como punto de entrada de la aplicación java. •El método principal main de una Clase Java es inalterable, es este sentido inalterable se refiere a sus características: Siempre debe incluir los calificadores : public y static. •Nunca puede retornar un valor como resultado, por ende, siempre debe indicar el valor void como retorno. •Su parámetro de entrada siempre será un array de String's (String[]) el cual es tomado de la linea de comandos o una fuente alterna. •Aunque no es un requerimiento definir el método main dentro de toda Clase Java, dicho método representa el único mecanismo automático para realizar tareas al invocarse una Clase, esto es, al momento de ejecutarse determinada Clase siempre será ejecutado todo el contenido dentro de dicho método. Firma del método main() •Dicho método, se puede escribir de tres maneras diferentes sin que esto produzca un error. public static void main(String args[]) {} public static void main(String[] args){} public static void main(String... args){} El método main () en Java es estáticos, ya que puede ser invocado por el motor de tiempo de ejecución sin tener que crear una instancia de la clase padre. Aunque se le suele dar el nombre de args, no es obligatorio que este parámetro se llame así podemos darle el nombre que mas nos guste por ejemplo: public static void main(String[] parametros){} VARIABLES VARIABLES Tipos de datos primitivos en Java Java cuenta con un pequeño conjunto de tipos de datos primitivos. Podríamos considerarlos fundamentales, ya que la mayor parte de los demás tipos, los tipos estructurados o complejos, son composiciones a partir de estos más básicos. Estos tipos de datos primitivos sirven para gestionar los tipos de información más básicos, como números de diversas clases o datos de tipo verdadero/falso (también conocidos como "valores booleanos" o simplemente "booleanos"). De estos tipos primitivos, ocho en total, seis de ellos están destinados a facilitar el trabajo con números. Podemos agruparlos en dos categorías: tipos numéricos enteros y tipos numéricos en punto flotante. Los primeros permiten operar exclusivamente con números enteros, sin parte decimal, mientras que el segundo grupo contempla también números racionales o con parte decimal. Tipos numéricos enteros En Java existen cuatro tipos destinados a almacenar números enteros. La única diferencia entre ellos es el número de bytes usados para su almacenamiento y, en consecuencia, el rango de valores que es posible representar con ellos. Todos ellos emplean una representación que permite el almacenamiento de números negativos y positivos. El nombre y características de estos tipos son los siguientes: Byte: como su propio nombre denota, emplea un solo byte (8 bits) de almacenamiento. Esto permite almacenar valores en el rango [-128, 127]. Short : usa el doble de almacenamiento que el anterior, lo cual hace posible representar cualquier valor en el rango [- 32.768, 32.767]. Int : emplea 4 bytes de almacenamiento y es el tipo de dato entero más empleado. El rango de valores que puede representar va de -231 a 231-1. Long : es el tipo entero de mayor tamaño, 8 bytes (64 bits), con un rango de valores desde -263 a 263-1. Tipos numéricos en punto flotante Los tipos numéricos en punto flotante permiten representar números tanto muy grandes como muy pequeños además de números decimales. Java dispone de 2 tipos concretos en esta categoría: Float : conocido como tipo de precisión simple, emplea un total de 32 bits. Con este tipo de datos es posible representar números en el rango de 1.4x10-45 a 3.4028235x1038. Double : sigue un esquema de almacenamiento similar al anterior, pero usando 64 bits en lugar de 32. Esto le permite representar valores en el rango de 4.9x10-324 a 1.7976931348623157x10308. VARIABLES Booleanos y caracteres Aparte de los 6 tipos de datos que acabamos de ver, destinados a trabajar con números en distintos rangos, Java define otros dos tipos primitivos más: Boolean : tiene la finalidad de facilitar el trabajo con valores "verdadero/falso" (booleanos), resultantes por regla general de evaluar expresiones. Los dos valores posibles de este tipo son true y false. Char : se utiliza para almacenar caracteres individuales (letras, para entendernos). En realidad está considerado también un tipo numérico, si bien su representación habitual es la del carácter cuyo código almacena. Utiliza 16 bits y se usa la codificación UTF-16 de Unicode. Tipos de datos estructurados Los tipos de datos primitivos que acabamos de ver se caracterizan por poder almacenar un único valor. Salvo este reducido conjunto de tipos de datos primitivos, que facilitan el trabajo con números, caracteres y valores booleanos, todos los demás tipos de Java son objetos, también llamados tipos estructurados o "Clases". Los tipos de datos estructurados se denominan así porque en su mayor parte están destinados a contener múltiples valores de tipos más simples, primitivos. También se les llama muchas veces "tipos objeto" porque se usan para representar objetos. Puede que te suene más ese nombre. VARIABLES Cadenas de caracteres Aunque las cadenas de caracteres no son un tipo simple en Java, sino una instancia de la clase String, el lenguaje otorga un tratamiento bastante especial a este tipo de dato, lo cual provoca que, en ocasiones, nos parezca estar trabajando con un tipo primitivo. Aunque cuando declaramos una cadena estamos creando un objeto, su declaración no se diferencia de la de una variable de tipo primitivo de las que acabamos de ver: String nombreCurso = "Iniciación a Java"; Y esto puede confundir al principio. Recuerda: Las cadenas en Java son un objeto de la clase String, aunque se declaren de este modo. Las cadenas de caracteres se delimitan entre comillas dobles, en lugar de simples como los caracteres individuales. En la declaración, sin embargo, no se indica explícitamente que se quiere crear un nuevo objeto de tipo String, esto es algo que infiere automáticamente el compilador. Las cadenas, por tanto, son objetos que disponen de métodos que permiten operar sobre la información almacenada en dicha cadena. Así, encontraremos métodos para buscar una subcadena dentro de la cadena, sustituirla por otra, dividirla en varias cadenas atendiendo a un cierto separador, convertir a mayúsculas o minúsculas, etc. VARIABLES Vectores o arrays Los vectores son colecciones de datos de un mismo tipo. También son conocidos popularmente como arrays e incluso como "arreglos" (aunque se desaconseja esta última denominación por ser una mala adaptación del inglés). Un vector es una estructura de datos en la que a cada elemento le corresponde una posición identificada por uno o más índices numéricos enteros. También es habitual llamar matrices a los vectores que trabajan con dos dimensiones. Los elementos de un vector o array se empiezan a numerar en el 0, y permiten gestionar desde una sola variable múltiples datos del mismo tipo. Por ejemplo, si tenemos que almacenar una lista de 10 números enteros, declararíamos un vector de tamaño 10 y de tipo entero, y no tendríamos que declarar 10variables separadas de tipo entero, una para cada número. Secuencia de escape Descripción \t Inserta un tabulador \b Retroceder un espacio (backspace) \n Inserta una nueva línea \r Inserta un retorno de carro \f Salto de página \’ Inserta una comilla simple \” Inserta una comilla doble \\ Inserta una contrabarrra (backslash) public static void main(String[] args) { System.out.println("Ejemplo con un salto de línea,\n " + "un \t tabulador y \"comillas dobles\""); Secuencias de escape en Java En el lenguaje de programación Java hay ciertos caracteres que son problemáticos, bien sea porque se trata de caracteres que utiliza el propio lenguaje para otras funciones (por ejemplo, la comilla doble “ para delimitar cadenas de texto), o bien porque no se puede representar directamente como son los caracteres de control (códigos Ascii entre 0 y 31, por ejemplo un saldo de línea). Java nos proporciona las secuencias de escape, una combinación de la barra invertida \ y un carácter que nos permite insertar caracteres de ambos casos. Las secuencias de escape que tenemos definidas en Java son: CLASE SCANNER El uso de la clase Scanner es una de las mejores maneras de ingresar datos por teclado en Java. Scanner es una clase en el paquete java.util utilizada para obtener la entrada de los tipos primitivos como int, double etc. y también String. Es la forma más fácil de leer datos en un programa Java, aunque no es muy eficiente si se quiere un método de entrada para escenarios donde el tiempo es una restricción, como en la programación competitiva. En resumen: •Para crear un objeto de clase Scanner, normalmente pasamos el objeto predefinido System.in, que representa el flujo de entrada estándar. Podemos pasar un objeto de clase File si queremos leer la entrada de un archivo. •Para leer valores numéricos de un determinado tipo de datos XYZ, la función que se utilizará es nextXYZ(). Por ejemplo, para leer un valor de tipo short, podemos usar nextShort(). •Para leer cadenas (strings), usamos nextLine(). •Para leer un solo carácter, se usa next().charAt(0). La función next()devuelve el siguiente token/palabra en la entrada como cadena y la función charAt (0) devuelve el primer carácter de esa cadena. https://www.javadesdecero.es/tipos-datos-java-ejemplos/ CLASE SCANNER EJERCICIOS 1. leer datos de varios tipos 2.A veces, debemos verificar si el siguiente valor que leemos es de cierto tipo o si la entrada ha finalizado (se encontró el marcador EOF). Luego, verificamos si la entrada del Scanner es del tipo que queremos con la ayuda de las funciones hasNextXYZ() donde XYZ es del tipo que nos interesa. La función devuelve true (verdadero) si el scanner tiene un token de ese tipo, de lo contrario es false (falso). Por ejemplo, en el siguiente código, hemos utilizado hasNextInt(). Para verificar una cadena, usamos hasNextLine(). De manera similar, para verificar si hay un solo carácter, usamos hasNext().CharAt(0). ¿SE LOGRÓ LA META DE LA SESIÓN? Analizamos diferentes tipos de datos y exploramos la clase Scanner con ejercicios y ejemplos La clase Scanner de Java provee métodos para leer valores de entrada de varios tipos y está localizada en el paquete java.util. Los valores de entrada pueden venir de varias fuentes, incluyendo valores que se entren por el teclado o datos almacenados en un archivo. Conclusiones Problemas propuestos (algoritmo y código) • Los Ejercicios se pueden visualizar en canvas Tarea REVISAR EL TEMA DE LA SIGUIENTE SESIÓN COLOCADO EN CANVAS Diapositiva 1 Diapositiva 2: no vale repetir ¿algo que recuerdes de la clase anterior? Diapositiva 3 Diapositiva 4 Diapositiva 5: VARIABLES Diapositiva 6: VARIABLES Diapositiva 7: VARIABLES Diapositiva 8: VARIABLES Diapositiva 9: VARIABLES Diapositiva 10 Diapositiva 11: Clase Scanner Diapositiva 12: Clase Scanner Diapositiva 13: ¿se logró la meta de la sesión? Diapositiva 14 Diapositiva 15 Diapositiva 16: Revisar el tema de la siguiente sesión colocado en Canvas Diapositiva 17
Compartir