Sie sind auf Seite 1von 23

Cuadernillo de prcticas Tecnologa de la Programacin

Puricacin Arenas, Marco Antonio Gmez Martn, Jorge Gmez Sanz, Guillermo Jimnez Daz 2012/2013
Departamento de Ingeniera del Software e Inteligencia Articial Departamento de Sistemas Informticos y Computacin Facultad de Informtica Universidad Complutense de Madrid
Curso:

Profesores:

Documento maquetado con TEX S v.1.0+.


i

Este documento est preparado para ser imprimido a doble cara.

Cuadernillo de prcticas Tecnologa de la Programacin

Puricacin Arenas, Marco Antonio Gmez Martn, Jorge Gmez Sanz, Guillermo Jimnez Daz

Profesores

Departamento de Ingeniera del Software e Inteligencia Articial Departamento de Sistemas Informticos y Computacin Facultad de Informtica Universidad Complutense de Madrid Curso 2012/2013

Normas de entrega

1.

Entrega de prcticas
Las prcticas tendrn una fecha lmite de entrega, indicada en el enunciado. No se admitirn prcticas entregadas fuera de dicho plazo.

Las prcticas se entregarn a travs del campus virtual, utilizando el mecanismo de entrega de prcticas. nicamente un miembro del grupo de prcticas deber realizar el envo. En caso de que ambos componentes efecten el envo de la prctica, el profesor corregir nicamente una de ellas.

Se enviar un nico chero comprimido con formato ZIP , llamado El chero contendr un chero

GrupoNN, siendo NN el nmero del grupo al que pertenece (dos dgitos). alumnos.txt donde se indicar el
nombre de los componentes del grupo.

Las prcticas deben realizarse utilizando la estructura descrita en la prctica 0. A no ser que el enunciado indique lo contrario, se deber enviar nicamente el directorio

src

y, opcionalmente, los cheros de

informacin del proyecto de Eclipse.

No se tolerarn plagios ni se permitirn hacer las prcticas entre varios grupos.

1 Para comprimir el chero puede utilizar cualquiera de los compresores disponibles en el laboratorio con la condicin de que generen cheros zip. Ten en cuenta que el programa 7-zip puede generar cheros .zip, pero para eso hay que indicar explcitamente que se desea ese formato.
1

Normas de entrega

2.

Normas de correccin
La prctica enviada deber pasar satisfactoriamente el validador proporcionado junto con el enunciado. En caso de no superar la prueba, la prctica se considerar no entregada. Entre otras cosas, el validador:

Comprueba que la prctica compila. Para poder hacerlo, el validador requiere que el JDK est instalado en la mquina y accesible desde el path.

Comprueba que los test de unidad compilan. Ejecuta los test y comprueba que todos pasan satisfactoriamente.

La prctica que no funcione se considerar como no entregada. Los requisitos de funcionalidad estarn descritos en el enunciado de la prctica. El primer da de clase de laboratorio despus del nal del plazo de entrega, se realizar la defensa de la prctica. En la defensa debern estar presentes los dos miembros del grupo, que contestarn a las preguntas que el profesor estime conveniente hacerles sobre la implementacin de la misma. El profesor de prcticas puede decidir no corregir o penalizar en los trminos que estime oportunos a los alumnos que no sigan las indicaciones del formato para la entrega.

3.

Evaluacin
El examen prctico consistir en la modicacin de una o varias prcticas realizadas durante el curso. Para eso, junto con el enunciado del examen se proporcionar la prctica (o prcticas) que se entregaron durante el curso y que se necesitan para la realizacin del examen. Un porcentaje de la nota del examen ser responsabilidad de la prctica base con la que se comienza a hacer el examen. Se evaluar positivamente entre otras cosas:

Comentarios en el cdigo, claridad e indentacin. Uso de estructuras de control y de datos adecuadas al problema. Nombres de variables y constantes acordes a la funcin que desempean en el programa. Eciencia de los algoritmos utilizados. Estructura del cdigo, tanto a nivel de cdigo fuente como a nivel de modularizacin, uso de orientacin a objetos, etc.

3. Evaluacin

Se penalizar entre otras cosas:

Mala estructuracin de los programas: incorrecta descomposicin en clases y mtodos, falta de anidamiento, etc. Uso de variables globales o externas en mtodos. Paso de parmetros innecesarios a mtodos. Uso de estructuras de control o de datos no adecuadas al problema. Violacin de la encapsulacin: acceso a atributos que han de ser privados desde fuera de la clase. Falta de documentacin.

Recuerda que para poderte presentar al examen es obligatorio tener todas las prcticas entregadas en el plazo jado por el enunciado de la prctica. Slo se permitir durante el curso una entrega fuera de plazo, si ste no se excede en ms de una semana.

Prctica 0: Primera aproximacin a Java

Fecha de entrega:

No debe entregarse

Material proporcionado:
Fichero Explicacin Proyecto de tests para la cuarta parte de la prctica.

TestsPr0.zip validador.zip documentacion.zip

Programa validador de la entrega. Documentacin de cheros y clases necesarias para la implementacin.

Objetivo:

Toma de contacto con Java, con Eclipse y con el mtodo de

trabajo durante el curso.

En esta primera prctica vamos a tomar contacto con el entorno que usaremos para realizar las prcticas de la asignatura Tecnologa de la Programacin. Es una prctica guiada donde el enunciado va describiendo casi uno a uno los pasos a seguir. La mayora de los pasos que se describen sern necesarios tambin para el resto de prcticas, pues se ensea tanto la construccin de la estructura de directorios que utilizaremos como la creacin de los proyectos de Eclipse y el mecanismo de entrega. 5

Prctica 0: Primera aproximacin a Java

1.

Estructura de directorios
Antes de comenzar, describiremos brevemente la estructura de directorios

que vamos a utilizar durante todas las prcticas. Utilizar una estructura de directorios clara es importante cuando un proyecto utiliza varios cheros de distintos tipos. Durante la elaboracin de la prctica, manejaremos los siguientes directorios:

src:
sin

directorio con el cdigo fuente de la prctica (cheros con exten-

.java).

Es el nico directorio que contiene cheros elaborados

durante las prcticas. Los otros directorios o bien los genera eclipse automticamente, o bien su contenido es proporcionado por el profesor.

bin:

directorio donde aparecern los cheros resultados de la compi-

lacin del cdigo fuente anterior. Lo crea el IDE (el entorno de desarrollo, esto es, Eclipse) automticamente.

testProfesor:
prctica.

contiene cdigo fuente en Java proporcionado jun-

to con el enunciado y que comprueba (parcialmente) la validez de la

En prcticas siguientes es posible que se utilicen directorios adicionales. En concreto si la prctica hace uso de bibliotecas externas proporcionadas por el profesor, podra aparecer otro directorio donde se aaden esas libreras. Este directorios no se deber incluir en la entrega.

2.

Primera parte: Hola mundo en consola


La primera parte de la prctica consiste en la creacin de un proyecto

simple en Java que escribe un simple

Hola mundo.
1

Paso 1:
1

Se crea un primer chero de texto llamado HolaMundo.java , que

puede editarse con el bloc de notas .

Java es sensible a maysculas/minsculas, por lo que es importante mantener las maysculas donde se menciona aqu. Adems, el nombre de la clase debe ser igual al del chero, con extensin java. 2 Todas las prcticas de la asignatura podrn realizarse en cualquier plataforma en la que pueda ejecutarse Eclipse, en esta descripcin asumiremos que se est utilizando Windows.

2. Primera parte: Hola mundo en consola

Paso 2:

El cdigo a escribir es el siguiente:

class HolaMundo { public static void main(String[] args){ System.out.println("Hola Mundo"); } }

Paso 3:

Compilar

HolaMundo.java

desde la lnea de rdenes con el co-

mando:

javac HolaMundo.java
Comprobar que no hay errores de compilacin y que se ha creado el chero

HolaMundo.class.

Para poder invocar al compilador (javac.exe), ste debe estar accesible a travs del PATH. En los laboratorios se encuentra en el directorio

c:\JDK\jdk1.7.0-64bits\bin, por lo que se puede congurar

con:

SET PATH=c:\JDK\jdk1.7.0-64bits\bin;.; %PATH %

Paso 4:

Para ejecutar la aplicacin se debe ejecutar la mquina virtual de

Java y pedirle que utilice como punto de entrada de la aplicacin

HolaMundo.class. Para eso, se ejecuta el comando java HolaMundo3 . Igual que para compilar el cdigo, para poder ejecutar la aplicacin debe estar disponible java en el PATH. En los laboratorios se puede encontrar en el mismo directorio que el compilador.

la clase

Observar que no se debe poner la extensin, .class.

Prctica 0: Primera aproximacin a Java

3.

Segunda parte: Hola mundo en Eclipse


A continuacin trasladamos el ejemplo anterior a la plataforma de trabajo

Eclipse. Antes de empezar, debemos aprender el signicado de workspace. 1. Un espacio de trabajo (workspace ) es una carpeta donde estarn las carpetas correspondientes a los proyectos Java creados con Eclipse. 2. Una instancia en ejecucin de Eclipse slo puede trabajar con un workspace. 3. Cambiar el workspace requiere reiniciar eclipse. En lo que sigue asumiremos que el workspace lo ubicaremos en el directorio

c:\hlocal\TP4 .

Un proyecto es una carpeta que se crea en el workspace. Cada prctica ser un proyecto nuevo. Dentro de un proyecto nos encontraremos las siguientes carpetas:

src

Carpeta donde estar el cdigo fuente (source code), es decir, los cheros

.java.

sta es la carpeta que se tiene que guardar en el directorio en

red de cada uno cuando se acabe cada sesin de laboratorio.

bin

Carpeta donde estarn los cheros compilados, que tienen extensin

.class y contienen los bytecode s interpretables por la mquina virtual


de Java. No es necesario guardar esta carpeta pues se puede generar a partir del cdigo fuente.

Paso 1: Paso 2:

Ejecutar Eclipse.exe. Crear workspace (espacio de trabajo) o, si ya est abierto eclipse,

cambiar al workspace deseado desde el men File de Eclipse.

Switch

Workspace

Es muy desaconsejable el uso de las memorias USB como workspace ya que la vida til de las mismas se reduce drsticamente por la cantidad de operaciones que se hacen sobre ellas. Por otro lado, el uso de la unidad virtual de cada uno como workspace es desaconsejable por la velocidad del mismo y la cantidad de cheros intermedios, no necesarios, que pueden llegar a generarse.

3. Segunda parte: Hola mundo en Eclipse

Paso 3:

Crear un proyecto: File

New

Java Project.

Paso 4:

La creacin de un proyecto requiere indicar las carpetas

src y bin.

10

Prctica 0: Primera aproximacin a Java

Paso 5:

Para evitar problemas de compatibilidad entre plataformas debe-

mos congurar el proyecto para utilizar la codicacin de caracteres UTF-8. Este paso es muy importante para que el proceso de correccin automtica funcione bien. Selecciona el proyecto y pulsa el botn derecho seleccionando la opcin Properties. Elige el men Resource y modica Text File Encoding seleccionando Other e indicando UTF-8. Este paso se deber realizar al crear cada proyecto. Alternativamente es posible congurar Eclipse para que cualquier proyecto del workSpace utilice codicacin UTF-8. Para ello selecciona Window y elige el men General

Preferences

Workspace. Ahora modica Text File En-

coding seleccionando Other e indicando UTF-8.

Paso 6:

Crear una clase HolaMundo: desde el men File

new Class.

Paso 7:

Comprobar la creacin de

HolaMundo.java

en:

C:\hlocal\TP\Pr0\src\HolaMundo.java

3. Segunda parte: Hola mundo en Eclipse

11

Paso 8:

Escribir el cdigo de la clase HolaMundo.

Paso 9a:

Para interpretar (ejecutar) HolaMundo.java (Primera forma):

Seleccionar la clase HolaMundo.java en el Package Explorer.

Boton Derecho.

Run As.

Java Application.

12

Prctica 0: Primera aproximacin a Java

Paso 9b:

Para interpretar (ejecutar) HolaMundo.java (Segunda forma): Pul-

sar el icono verde de Run.

Paso 10:

Comprobar la creacin de

HolaMundo.class

en Eclipse:

4. Tercera parte: mtodo nuevo de la clase

13

C:\hlocal\TP\Pr0\bin\HolaMundo.class

4.

Tercera parte: mtodo nuevo de la clase


Antes de crear ms clases, vamos a crear el paquete para organizarlas.

En Eclipse, seleccionar File Crear la clase

New

package, y crear el paquete

Pr0Main

indicando que pertenece al paquete

tp.pr0. tp.pr0. En

dicha clase, adems de tener un mtodo

main

para que sea ejecutable, va-

mos a aadir un mtodo esttico, similar a las funciones procedurales, al que poder llamar desde el mtodo principal. Al ser un mtodo esttico no es necesario que lo llame un objeto instanciado, sino que se calica con el nombre de la clase.

package tp.pr0; class Pr0Main { public void escribeSaludo(String nombre) { System.out.println("Hola, " + nombre); } public static void main(String args[]) { Pr0Main pr0 = new Pr0Main(); pr0.escribeSaludo("Walterio Malatesta"); } }

Notas:
Como convencin, los nombres de los datos y mtodos en una clase se escriben en minsculas. Slo las clases e interfaces van con maysculas. Todas las instrucciones se terminan en ";". Observar las carpetas que Eclipse crea en el directorio ubicacin de

src

para alo-

jar el cdigo fuente de las clases petenecientes al nuevo paquete y la

Pr0Main.java

Pr0Main.class.

14

Prctica 0: Primera aproximacin a Java

5.

Cuarta parte: clase matemtica


En esta tercera parte hacemos una clase nueva que contiene algunas fun-

ciones matemticas simples y que utilizaremos desde el una lista de nmeros combinatorios. Se debe crear la clase

main

para escribir

FuncsMatematicas

en el package

tp.pr0,

que

contenga dos mtodos estticos:

Tercera parte: (int n) public static int factorial public static int combinatorio (int n, int Clase FuncsMatematicas k)
Crear la clase FuncsMatematicas en el package tp.pr0, que javadoc: contenga dos mtodos estticos descritos por el siguiente documento generado con el comando javadoc: .

Ambos mtodos estn descritos en el siguiente documento generado con el comando

Prctica 0: JDK y Eclipse

27

Teniendo en cuenta que se debe cubrir que (esto est en el javadoc):

n k

n! k!(n k)!

El factorial de 0 y 1 es 1, y si nos preguntan por el factorial de un nmero negativo, devolveremos tambin un 0. En el caso de los nmeros combinatorios que devolveremos 0.

0 k n, y en otro caso,

Notas:
Es mejor utilizar como variables locales para guardar los resultados de los

6. Quinta parte: test

15

factoriales un

long.

Una vez realizado, podemos probarlo con el cdigo si-

guiente en el mtodo

main:

for (int i = 0; i < 6; ++i) { for (int j = 0; j <= i; ++j) System.out.print(FuncsMatematicas.combinatorio(i,j) + " "); System.out.println(); }
Cuya salida debera ser:

1 1 1 1 1 1

1 2 3 4 5

1 3 1 6 4 1 10 10 5 1

6.

Quinta parte: test


En todas las prcticas del curso, adems de la descripcin del funcionamien-

to deseado y la documentacin de algunas clases a implementar en formato HTML, daremos tambin una serie de pruebas que el cdigo deber pasar para que sea considerado vlido. Para ver cmo ser el mtodo utilizado durante el curso, para esta prctica proporcionamos los test que comprueban la implementacin de los mtodos

escribeSaludo

y de los de la clase

FuncsMatematicas.

Para pon-

erlo en funcionamiento procederemos siempre de la misma forma.

1. Descomprimir el chero

TestsPr0.zip testProfesor.

en el directorio raz de la

prctica. De esta forma, tendremos adems de los directorios

src

bin,

un nuevo directorio

2. En eclipse forzar la actualizacin del proyecto para que aparezca el nuevo directorio (F5).

3. Hacer que eclipse considere tambin a ese directorio como cdigo fuente. Pulsar sobre la carpeta cionar la opcin Build Path

testProfesor con el botn Use as Source Folder

derecho y selec-

16

Prctica 0: Primera aproximacin a Java

Comprobar que se ha aadido al proyecto la librera

junit-x.xx.jar:

Project Properties nit4

Java Build Path. Si no est aadida, aadirla

seleccionando la pestaa Libraries y posteriormente Add library + JU-

4. Ejecutar las pruebas

AllTests.java

como JUnit Test

Si todo ha ido bien, y los mtodos pedidos son correctos, saldr algo de la forma:

7. Sexta parte: validacin de la entrega

17

Nota importante:
test proporcionados.

NO se aceptar ninguna prctica que no pase los

7.

Sexta parte: validacin de la entrega


Una vez que la prctica est implementada y los test pasados llega el

momento de la entrega. Para entregar la prctica se utilizar el mecanismo de entregas del campus virtual. La fecha lmite de la entrega aparecer en el enunciado, junto con la fecha de la defensa en el laboratorio. Para entregar la prctica se debe comprimir la solucin en un chero

.zip

5 dican el nmero del grupo al que se pertenece . El chero deber contener


nicamente: Un archivo

cuyo nombre ser

GrupoNN.zip,

donde

NN

son dos dgitos que in-

alumnos.txt src

con el nombre de los miembros del grupo.

El directorio

con el cdigo fuente de la prctica.

Opcionalmente, los directorios de proyecto que genera eclipse: cheros

.classpath, .project

y directorio

.settings.

Para comprobar que el chero

.zip

que se va a enviar es correcto, pro-

porcionaremos un validador de la entrega. El validador:

Grupo03.zip.

Si el nmero de grupo slo tiene un dgito, se indicar un 0 antes, por ejemplo

18

Prctica 0: Primera aproximacin a Java

Comprueba que la estructura del correcta.

.zip

explicada anteriormente es la

Comprueba que la prctica enviada compila.

Comprueba que los test de la prctica compilan con la solucin que va a ser enviada.

Ejecuta los test para comprobar que pasan todos.

En prcticas futuras, ejecuta la aplicacin entregada para comprobar su correcto funcionamiento.

Si alguno de los pasos anteriores no es correcto informa para que se arreglen antes de enviar la prctica. No se debe enviar un .zip que no haya pasado el validador. Para hacerlo funcionar, se copia el

donde se ha descomprimido el chero como el JDK,se lanza

.zip que se quiere enviar al directorio validador.zip proporcionado, y

desde una consola (Smbolo del sistema) que tenga accesible tanto el JRE

valida.bat:

c:\hlocal\TP\Pr0\validador> valida Grupo03.zip

Es importante destacar que para poder ejecutar el validador, se necesita que la consola desde la que se lanza tenga en el path el JRE y el JDK, pues una de las cosas que se harn ser compilar la prctica. El validador ir mostrando el resultado del proceso. Si hay algn error y se quieren obtener ms detalles, se puede utilizar ms detallados. Si el directorio de trabajo donde se descomprime el validador est en la misma unidad que el directorio del usuario de Windows (directorio Mis Documentos), la ejecucin puede hacerse directamente desde el explorador. Basta con arrastrar el

validaDetallado y validaMuyDetallado que realizan el mismo proceso pero dando mensajes

.zip de la entrega sobre el chero valida (o cualquiera

de las otras dos variantes).

8. Entrega de la prctica

19

8.

Entrega de la prctica
No es necesario que entregues esta prctica. No obstante, si quieres recor-

dar el uso del mecanismo de entregas de Moodle y que el profesor compruebe que la estructura que envas es correcta, puedes hacerlo hasta el 14 de Octubre.

Das könnte Ihnen auch gefallen