APRENDIENDO JAVA: EJEMPLOS DE PROGRAMAS

Tema 2: Tipos de referencia


En esta sección trabajaremos, sobre todo, con matrices (su contenido se pasa por referencia), tanto de números como de String o boolean. Veremos que una matriz (unidimensional o multidimensional) requiere que se indique su tamaño cuando es declarada, lo que supone un impedimento si se necesita añadir más elementos. Este problema puede solucionarse fácilmente mediante el uso del tipo ArrayList que nos proporciona una de las librerias de Java.

También trabajaremos con archivos de texto (leer y escribir), lo que puede generar errores en el programa (por ejemplo, cuando no se encuentra un archivo). Estos errores deben ser tratados. Para ello usaremos los bloques try, catch y finally).

  • En el bloque try encerramos las instrucciones que pueden producir errores (abrir un documento, escribir en él, etc.).

  • En los bloques catch (puede haber varios), se indican las posibles excepciones (errores) que pueden ocurrir en try y las instrucciones a seguir en cada caso. Si se produce un error en try, el programa buscará entre los bloques catch para poder tratar el error.

  • El bloque finally se ejecuta siempre: si se produce un error, se sale del bloque try, se pasa al catch correspondiente y finalmente, al finally. Si no hay errores, se saltan todos los bloques catch al finalizar try y se pasa al bloque finally.



PROBLEMA 1

Escribir un programa que utilice un método llamado sufijo que devuelve true si el objeto String str1 es un sufijo del objeto String str2. No utilizar las rutinas generales de búsqueda en cadenas de caracteres, salvo charAt.

El programa pide al usuario las dos cadenas, utiliza el método y muestra su resultado.

Ver código

PROBLEMA 2

La suma de comprobación es el entero de 32 bits resultante al sumar todos los caracteres Unicode de un archivo. Cuando dos documentos son idénticos, su suma es la misma.

Escribir un programa que calcule la suma de una línea escrita por el usuario.

En el PROBLEMA 4 volveremos a usar este concepto.

Ver código

PROBLEMA 3

Lectura de un archio: Escribir un programa al que se le proporciona el nombre (o la ubicación) de un archivo de texto .txt como string. El programa muestra el contenido (texto) del documento.

Usar las directivas import java.io.FileReader e import java.io.IOException.

Ver código

PROBLEMA 4

Modificar el programa del problema anterior para que calcule la suma de comprobación del archivo de texto .txt cuyo nombre es proporcionado por el usuario.

Ver código

PROBLEMA 5

Matrices: implementar un programa que tenga dos métodos: uno para sumar dos matrices de la misma dimensión y otro para restarlas. El funcionamiento del segundo método tiene que ser el siguiente: se cambia el signo de los elementos de la segunda matriz y se le suma a la primera matriz haciendo uso del primer método.

Para simplificar el programa, cada matriz es de dimensión 3x3 y de números enteros y se proporciona al programa introduciendo sus elementos (utilizar .nextInt() ).

Utilizar dos constantes para la dimensión de las matrices, de modo que pueda ser modificado (sobre el código) en caso de necesitar otras dimensiones.

Tanto las entradas (números enteros de las matrices) como las salidas (las matrices suma y resta) pueden ser guardadas/impresas mediante otros métodos. Nosotros lo haremos directamente en el main, por lo que el código de éste será un poco largo.

Ver código

PROBLEMA 6

ArrayList es un tipo que proporciona la libreria java.util.ArrayList de Java para expandir matrices, esto es, para poder aumentar su tamaño. Para ello tenemos el método .add. Para obtener el sus elementos usamos .get y para modificarlos .set.

Escribir un programa que pide números enteros que se guardan en un array hasta que se introduce un elemento no entero (como un signo de puntuación). Después, muestra el contenido del array.

Debe usarse el tipo ArrayList definido para enteros.

Ver código

PROBLEMA 7

Implementar los diversos métodos hasDuplicates, todos los cuales devuelven true si hay entradas duplicadas en el grupo de elementos especificados:

  • public static boolean hasDuplicates ( int [] arr )

  • public static boolean hasDuplicates ( int [][] arr )

  • public static boolean hasDuplicates ( String [] arr )

  • public static boolean hasDuplicates ( ArrayList<String> arr )

Los métodos pueden llamarse entre ellos si así se desea.

Para simplificar los métodos, se considera que ninguno de los parámetros está vacío y que ninguno de sus elementos es null.

Ver código

PROBLEMA 8

Escritura de archivos: escribir un programa que copia el contenido de un documento de texto .txt. Para ello necesitamos las directivas

import java.io.PrintWriter;

import java.io.FileWriter;

El programa pregunta el nombre del archivo a copiar (también podemos escribir la ubicación del archivo; en ambos casos, tenemos que indicar el tipo .txt) y el nombre del nuevo archivo (sin .txt ; que también puede ser una ubicación más \nombre).

Realizar una comprobación para garantizar que los archivos de destino y origen no sean el mismo.

No olvidar utilizar la directiva

import java.io.IOException;

para tratar las posibles excepciones al trabajar con archivos (como no encontrar el archivo especificado).

Ver código


Volver al índice de temas


acceso al foro



Creative Commons License
Matesfacil.com by J. Llopis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.