Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Practica 1 Programacion en Java, Ejercicios de Programación Java

Practica programacion orienta a objetaos en java.

Tipo: Ejercicios

2019/2020

Subido el 26/08/2020

torbe83
torbe83 🇪🇸

1 documento

1 / 20

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
PEC1
Primer contacto
Diseño y programación orientados
a objetos
Semestre 20191
Estudios de Informática, Multimedia y Telecomunicación
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Vista previa parcial del texto

¡Descarga Practica 1 Programacion en Java y más Ejercicios en PDF de Programación Java solo en Docsity!

PEC

Primer contacto

Diseño y programación orientados

a objetos

Semestre 20191

Estudios de Informática, Multimedia y Telecomunicación

Presentación

Esta PEC quiere ser un primer contacto con el paradigma de la programación orientada a objetos (POO) y el lenguaje de programación Java. En cuanto a la POO se tratarán los conceptos clave de manera teórica y muy superficialmente, tal y cómo se hace en el módulo 1 de la asignatura. Respecto a Java, nos centraremos, en primer lugar, en la instalación y configuración del compilador de este lenguaje (JDK). Una vez comprendamos el funcionamiento básico de JDK, instalaremos un IDE, concretamente Eclipse. El uso de un IDE nos ayudará en las tareas de organización del código, búsqueda de errores y creación de programas. Finalmente, trabajaremos la sintaxis de Java siguiendo un paradigma estructurado (cómo habéis trabajado en la asignatura anterior).

Objetivos

Los objetivos que se quieren lograr con el desarrollo de esta PEC son:  Instalar y configurar el JDK (Java Development Kit) en el equipo de trabajo.  Conocer y saber usar un IDE, en este caso, Eclipse.  Repasar conceptos básicos de algoritmia (p.ej. bucles, condicionales, etc.) a la vez que se aprende la sintaxis básica de Java.  Aprender los conceptos básicos del paradigma de la programación orientada a objetos sabiéndolos identificar en un problema real.

Enunciado

Esta PEC está formada por 4 ejercicios. El valor de cada uno de ellos está indicado junto a cada ejercicio. Esta PEC está diseñada para que los ejercicios se realicen en el orden en que se presentan. En cada ejercicio se hace una pequeña introducción que te pone en contexto a la vez que te intenta guiar para hacer el ejercicio correctamente. Esta parte introductoria está escrita en color gris (como este texto), mientras que el ejercicio en sí (i.e. aquello que se te pide y que tienes que contestar) está escrito en azul. De este modo te será más fácil localizar cada parte dentro de cada ejercicio. Adjunto con este enunciado encontrarás una hoja de respuestas que tienes que rellenar con las respuestas de los diferentes apartados, excepto aquellos en que la respuesta es directamente uno o más ficheros .java y/o .class.

> java Ex Number of arguments is not correct! Write: java Ex1 + > java Ex1 2.5 10 Result: -7. > java Ex1 4 2 1 3 5 Result: 5. > java Ex1 uoc Argument <> must be a double! > java Ex1 8 a 5 Argument <> must be a double! > java Ex1 25 5 c d Argument <> must be a double! Para responder este apartado hay que entregar una captura de pantalla donde se vea la consola de línea de comandos con diferentes ejecuciones del programa (parecido al ejemplo que te damos en formato texto en este apartado). (0.25 puntos) c) Explica qué hace el programa Ex1.java (cuanto más detalle des, mejor). Nota: puedes mirar el código abriendo el fichero con un editor de texto, como por ejemplo Notepad++ (https://notepad-plus-plus.org/). Para hacer este apartado es conveniente haber leído previamente las páginas 7-34 del PDF “El lenguaje de programación Java” que encontrarás en el aula. (0.5 puntos)

Ejercicio 2 – Aprendiendo Java (3 puntos) Para hacer este ejercicio es conveniente haber leído previamente las páginas 7-34 del PDF “El lenguaje de programación Java” que encontrarás en el aula. Este ejercicio se centra en aprender la sintaxis básica del lenguaje Java dejando de lado el paradigma de la programación orientada a objetos. Por lo tanto, intentaremos usar Java siguiendo y simulando una programación estructurada. Debido a que Java está orientado a objetos, los programas en Java están organizados por clases. Cada clase tiene que ir en un fichero que tiene por nombre el mismo que el de la clase. Por una cuestión de convención de nombres, lo más habitual es que la primera letra de cada palabra que compone el nombre de la clase empiece por mayúscula. Además, tiene que haber, como mínimo, una clase en todo nuestro programa que contenga un método especial llamado main que sirve de punto de entrada al programa. Es decir, el programa se iniciará llamando a este método. El método main tiene una firma concreta: public static void main(String[]args){ } Este método no devuelve nada (por eso su tipo de retorno es void) y recibe un array de String (i.e. cadena de caracteres) por parámetros llamado args (el nombre se puede cambiar, pero lo más habitual es denominarlo así). Esta variable args almacena los valores pasados por línea de comandos cuando el programa se ejecuta. Por ejemplo, si el método main se encuentra en la clase Programa, haremos: java Programa Hola 35 En este caso, args tendría dos casillas con los valores “Hola” y “35”, los dos serían texto (i.e. String). El primer valor estaría en args[0] y el segundo a args[1]. Por ahora no haremos caso de la palabra clave static. Su significado lo verás más adelante en la asignatura. Sólo decirte que, para este ejercicio, las firmas de todos los métodos que escribas deben tener la palabra static para que puedas simular el paradigma de la programación estructurada. Por último decirte que los comentarios en Java se pueden hacer de 2 formas: a) //Comentario de una línea b) /* Comentario de múltiples líneas */

atata | Errors: 3 Enter a letter: p patata | Errors: 3 You win!! Para responder este ejercicio es necesario: Coger el fichero Hangman.java (este es el nombre de la clase, del fichero y del programa principal) que encontrarás en la carpeta PAC1_ex2. Este fichero es un esqueleto, es decir, tiene una buena parte del código implementado, pero también tiene una parte que debes implementar tú. Concretamente tienes que implementar el código de tres funciones que contienen un comentario con la palabra TODO (del inglés, “to do = para hacer”). Utiliza el editor Notepad++ para escribir el código, y compila y ejecuta el código mediante los comandos javac y java, respectivamente. Por último, comentarte que tendrás que buscar información en Internet o en los materiales de la asignatura sobre cómo hacer ciertas operaciones en Java: bucles, condicionales, acceder a/declarar arrays, etc. Verás que la sintaxis de muchos de estos conceptos son iguales (o muy parecidos) a otros lenguajes, p.ej. C o PHP. Las tres funciones (o métodos) que debes codificar en Java son las siguientes:  createEncryptedWord: recibe la longitud de la palabra introducida como parámetro (wordSize) a la hora de ejecutar el programa y devuelve un array de caracteres de esta longitud donde todas las casillas son un asterisco ().  isRevealed: dado el array de caracteres encriptado, devuelve true si no contiene ningún asterisco (i.e. quiere decir que el jugador ha adivinado la palabra). Devuelve false si aún quedan asteriscos.  revealAsterisks: devuelve true si la letra (letter) existe en la palabra (word) y no ha estado revelada aún. En caso contrario, devuelve false. Si el retorno debe ser true, entonces debe cambiar en el parámetro encryptedWord los asteriscos por la letra (letter) introducida allá donde corresponda. Hay que tener en cuenta que en Java los arrays y objetos (ya veremos esto con más calma) se pasan por referencia. Por lo tanto, cualquier cambio hecho en la función se ve reflejado allá donde se ha hecho la llamada.

Tendrás que entregar:  En el documento que entregues como respuesta de la PEC, copia el código que has escrito en el fichero Hangman.java para los tres métodos/funciones que has tenido que completar y haz una breve explicación de su funcionamiento. Además pon una o varias capturas de pantalla donde se vea la ejecución de tu programa. Nota: Si has hecho una implementación parcial de los métodos/funciones o no los has sabido hacer, coméntalo.  Dentro del fichero loginUOC_PEC1.zip que debes entregar, incluye una carpeta llamada PAC1_ex2 que contenga:  El fichero Hangman.java completado con comentarios adentro que expliquen qué haces en los pasos más significativos de tu solución. Es esencial (además de una buena práctica), ¡¡documentar el código en el mismo código!!  El fichero Hangman.class que hayas obtenido después de compilar el fichero Hangman.java. El reparto de la puntuación de este ejercicio es el siguiente:  createdEncrypted: funcionamiento correcto: 0.75 puntos.  isRevealed: funcionamiento correcto: 0.75 puntos.  revealAsterisks: funcionamiento correcto: 1.5 puntos.

Un proyecto es un espacio (de hecho, una carpeta en nuestro sistema de ficheros del sistema operativo) donde guardamos todos los ficheros relacionados con la aplicación que queremos desarrollar. Dentro de un proyecto podemos definir carpetas (serán subcarpetas dentro de la carpeta del proyecto) y cualquier tipo de archivo. En nuestro caso particular, usaremos los proyectos de tipo JAVA. Gracias al asistente de Eclipse (conocido como Wizard), podemos crear un nuevo proyecto desde cero o a partir de otro proyecto, archivo comprimido o incluso desde un repositorio de código.

1. Lo primero que tienes que hacer es abrir Eclipse e ir a File Import (ver

Figura 1). Figura 1 – Primer paso para importar un proyecto ya existente.

  1. Aparecerá la pantalla que se muestra en la Figura 2. Figura 2 – Primera pantalla que aparece cuando se importa un proyecto.
  1. Haz clic en General y selecciona la opción Existing Projects into Workspace (ver Figura 3). Figura 3 – Escogiendo la opción Existing Projects into Workspace.
  2. Después haz clic en el botón Next. Esto hará que se te abra una ventana donde, en el apartado Select root directory, debes seleccionar la ruta donde tienes el proyecto a importar (usa el botón Browse…). Para este ejercicio el proyecto a importar se llama Errors y se encuentra dentro de la carpeta ex3 que te hemos facilitado con este enunciado (ver Figura 4). Figura 4 – Seleccionando el proyecto Errors a importar.
  3. Una vez seleccionada la ruta al proyecto, la pantalla de importación debe tener un aspecto similar al de la Figura 5. En esta pantalla puedes decir a

‘x’ de color rojo porque tiene errores). Esta clase calcula el factorial de un número natural que ha sido pasado por línea de comandos.

  1. Haz clic en el fichero Factorial.java para ver su código. Verás algunas líneas que tienen en el margen izquierdo un icono de una ‘x’ roja (ver Figura 7) o de una bombilla con una ‘x’ roja. Esto quiere decir que esas líneas contienen, como mínimo, un error. Figura 7 – Fichero Factorial.java abierto con errores. Asimismo, en la pestaña Problems (ver recuadro rojo de la Figura 7) puedes ver el listado de errores detectados por Eclipse. Todos estos errores son sintácticos o gramaticales, no semánticos o de ejecución. Este segundo tipo de errores se detectan cuando el programa se ejecuta y los errores dados son los mismos que los proporcionados por el JDK cuando se usa el comando javac. Llegados a este punto, se te pide: a) Corregir los errores sintácticos y gramaticales del programa (i.e. que desaparezcan todos los iconos de ‘x’ roja) con la ayuda de Eclipse. Nota: Si pones el cursor del mouse encima de cada icono con ‘x’ roja (tenga bombilla o no), te aparecerá un mensaje en forma de tooltip que te dará sugerencias de posibles errores que puede haber en la línea marcada. Además, si la ‘x’ roja va acompañada de una bombilla, se puede hacer click en la bombilla para que aparezca un listado de posibles soluciones. Cada una de estas soluciones es clicable, así pues, evalúa qué solución es la más adecuada (a veces no es ninguna) y haz click en ella para que Eclipse la ejecute y solvente el error automáticamente. (1 punto)

Una vez corrijas los errores sintácticos y gramaticales de Factorial.java, ya podrás ejecutar el programa. Para hacerlo manera rápida, utiliza el botón Run (asegúrate de tener seleccionado el proyecto Errors). Figura 8 – Botón Run de Eclipse y error en la pestaña Console tras ejecutar. No obstante, si haces click en el botón Run, te aparecerá un texto de error de formato en la pestaña Console (ver Figura 8). Esto es debido a que el programa espera que se le pase un número como argumento y, obviamente, no lo has hecho.

  1. Para ejecutar un programa Java en Eclipse pasándole argumentos, debes

primero configurar el programa con Run Run Configurations… Se

abrirá una ventana con varias pestañas. La primera de ellas, Main, indica a Eclipse qué proyecto ejecutar y cuál es la clase que contiene el método especial main (un programa suele tener más de una clase o fichero Java e incluso puede que haya más de una clase que tenga el método main). Figura 9 – Ventana de Run Configurations con la pestaña Main activa.

  1. En la pestaña Arguments, en el campo Program arguments, es donde puedes indicar los elementos que pasas por línea de comandos (ver Figura 10). Una vez hecho esto, debes clicar en el botón Run (que hace el javac y después el java que hacías por línea de comandos en el

Figura 11 – Código de muestra con breakpoint en la línea 8.

  1. Para ejecutar el programa en modo debug debes ir al menú superior de

Eclipse y seleccionar Run Debug Configurations… Una vez se te abra

la nueva ventana, ves a la pestaña Arguments e introduce en el campo Program Arguments los valores que deseas introducir como argumentos del programa (ver Figura 12). A continuación clica el botón Debug. Nota: Es posible que al clicar en Debug te salga una ventana preguntándote si quieres que se active la perspectiva Debug. Por el momento te recomendados que digas que “No”, pero siempre puedes probar y volver a la perspectiva Java. Figura 12 – Ventana de Debug Configurations…

  1. Una vez ejecutado el programa en modo Debug, el programa se detendrá en el primer breakpoint que encuentre (ver Figura 13). Sabrás qué breakpoint es porque el fondo se vuelve verde y al lado del breakpoint aparece una flecha. Figura 13 – Programa de muestra ejecutado en modo Debug y detenido en el breakpoint de la línea 8.
  2. Ahora puedes saber el valor de cada variable en ese instante, en este caso, antes de ejecutarse la línea 8. Si sitúas el cursor encima de una variable (ver Figura 14), te aparecerá un tooltip con información acerca de ella.

Figura 14 – Inspeccionando el valor de la variable messageCircumference del programa de muestra.

  1. Para continuar con la ejecución breakpoint a breakpoint, pulsa la tecla F (es lo mismo que pulsar el botón play que hay debajo de la opción Refactor del menú superior, ver Figura 15). Si pulsas la tecla F6, harás una ejecución línea a línea. Para finalizar el programa en cualquier momento, debes pulsar el botón con un icono de un cuadrado de color rojo (stop, ver Figura 15) o bien pulsar la combinación de teclas Ctrl+F2. Siempre que quieras ejecutar en modo debug sin cambiar los argumentos u otros parámetros de ejecución, puedes hacerlo más rápidamente haciendo clic en el botón que tiene un icono con el dibujo de un escarabajo (bug). Si quieres ejecutar en modo “normal” de forma rápida, siempre y cuando no cambies los argumentos de línea de comandos, usa el botón que tiene un icono de play dentro de un círculo verde (está al lado del escarabajo). Figura 15 – Botones Resume (F8), Terminate (Ctrl+F2), Debug (escarabajo) y Run (ejecución normal). Llegados a este punto, se te pide: b) Encuentra los errores semánticos para que el programa se ejecute correctamente (ver Figura 16). Figura 16 – Aspecto del panel Console cuando el programa se ejecuta correctamente con el argumento 3. (1 punto) Debes entregar el proyecto Errors sin errores de ningún tipo.

Recursos

Esta PEC se centra en los conceptos estudiados en el “Módulo 1 – Introducción al paradigma de la programación orientada a objetos” de la asignatura. Si tienes dudas de como instalar el JDK, tienes a tu disposición la guía “Instalación JDK” que encontrarás adjuntada con el enunciado de la PEC. Asimismo, para conocer la sintaxis de Java y poder hacer con éxito el Ejercicio 2, debes leer el apartado 1 de la guía “El lenguaje de programación Java” que encontrarás en el aula (pág. 7-34). Es muy normal que surjan dudas cuando programamos, aunque llevemos muchos años con un lenguaje y un paradigma concretos. Es por eso que hay que tener muy consolidada la competencia de buscar información. Hoy en día, el mejor lugar donde encontrar información y de manera rápida es Internet. En el caso de Java, tienes toda la documentación de su API (i.e. librerías con clases ya hechas) en la siguiente web: https://docs.oracle.com/javase/8/docs/api/. También puedes utilizar foros como stackoverflow, tanto la versión inglesa como la española:  Inglés: http://stackoverflow.com/questions/tagged/java  Español: http://es.stackoverflow.com/questions/tagged/java O utilizar directamente el buscador Google: www.google.com Si quieres ampliar conocimientos, siempre puedes comprar libros sobre POO y Java en alguna librería o pedirlos prestados en cualquier biblioteca (incluyendo la de la UOC, http://biblioteca.uoc.edu). Si a pesar de buscar información, no solucionas tus problemas, puedes hacer preguntas teóricas, pedir aclaraciones de los enunciados o preguntar sobre aspectos técnicos (p.ej. Java) en el foro del aula. No puedes usar los foros ni ningún otro medio para pedir a otro compañero la solución de lo que se pide en los enunciados. Tanto la persona que pide como quien proporciona la solución, serán penalizadas siguiendo la normativa académica de la UOC.

Criterios de valoración

El reparto de los puntos de esta PEC es el siguiente:  Ejercicio 1: 1 punto  Ejercicio 2: 3 puntos  Ejercicio 3: 2 puntos  Ejercicio 4: 4 puntos El detalle del reparto de los puntos en cada ejercicio está en el enunciado.

Formato y fecha de entrega

Se tiene que entregar un fichero *.zip, el nombre del cual tiene que seguir este patrón: loginUOC_PEC1.zip. Por ejemplo: dgarciaso_PEC1.zip. Este fichero comprimido tiene que incluir los siguientes elementos:  Hoja de respuestas completado en formato PDF. El nombre del fichero tiene que ser: loginUOC_PEC1.pdf.  Una carpeta llamada PAC1_ex2 que contenga (1) el fichero Hangman.java y (2) el fichero Hangman.class del Ejercicio 2.  Una carpeta llamada Errors que contenga todo el proyecto Errors con el fichero Factorial.java sin errores de ningún tipo. Para ello, copia la carpeta Errors de tu carpeta workspace de Eclipse. El último día para entregar esta PEC es el 10 de marzo de 2019 a las 23:59. Cualquier PEC entregada más tarde será considerada como no presentada.