Ejercicios Prácticos - UPM

22
Ejercicios Prácticos Fundamentos de Programación 2008-2009 Grupo 15 Samuel Martín ([email protected] ) DIT-UPM

Transcript of Ejercicios Prácticos - UPM

Page 1: Ejercicios Prácticos - UPM

Ejercicios Prácticos

Fundamentos de Programación 2008-2009 Grupo 15

Samuel Martín ([email protected] )

DIT-UPM

Page 2: Ejercicios Prácticos - UPM

FPRG - Práctica 1 208/10/2009

Motivación� A programar se aprende mediante la experiencia.� La calificación corresponde en un 25% a la calificación

de clase.� Más info en

http://www.lab.dit.upm.es/~fprg/curso/evaluacion.htm

� Ejercicios en clase:� Ejercicios previos (NO se entregan) a los ejercicios entregables� Explicaciones de los ejercicios entregables� Resolución de otros ejercicios

� Ejercicios prácticos entregables (obligatorios).� Impartición de prácticas: Samuel Martín

� Dudas: consultar por e-mail ( [email protected] )

� El profesor del grupo 15 es José A. Mañas, quien tiene la última decisión sobre cualquier aspecto relacionado con la asignatura.

Page 3: Ejercicios Prácticos - UPM

FPRG - Práctica 1 308/10/2009

Ejercicios Prácticos� En torno a 6 ejercicios prácticos que el alumno deberá

entregar resueltos.� Publicación en la página web de ejercicios:

www.dit.upm.es/~samuelm/docencia/fprg/

� Entrega por e-mail: [email protected]� Nota en función de:

� Documentación (máximo 50% de la nota)� Otros deben usar el programa y entender qué hace

� Otros deben mantener (adaptar) el programa y entender cómo funciona

� El profesor debe evaluarlo y entenderlo (como en un examen)

� Funcionalidad:� Que el programa haga lo que debe de hacer correctamente

� Fórmula exacta: nota = funcionalidad * (5 + documentación/2) / 10

� Fecha de entrega (varios plazos sucesivos)� Puntuación de cada apartado

Page 4: Ejercicios Prácticos - UPM

FPRG - Práctica 1 408/10/2009

Entorno de desarrollo BlueJ

Page 5: Ejercicios Prácticos - UPM

Ejercicio Práctico 1:

Ejemplos Previos

Fundamentos de Programación 2008-2009 Grupo 15

Samuel Martín ([email protected] )

DIT-UPM

Page 6: Ejercicios Prácticos - UPM

FPRG - Práctica 1 608/10/2009

Ejemplo 1

� Cree una clase Punto que permita representan puntos en un plano, dados por sus coordenadas cartesianas. La clase deberá incluir:

� Sendos campos privados de tipo double para identificar la abscisa (x) y la ordenada (y) del punto.

� Métodos accesores (getters) para obtener el valor de la abscisa y la ordenada.

Page 7: Ejercicios Prácticos - UPM

FPRG - Práctica 1 708/10/2009

Ejemplo 1

� Un método desplaza que recibe como parámetros el incremento de x y el incremento de y, modificando la posición el punto según el valor dado por los parámetros del método.

� Un método distanciaque recibe como parámetro otro punto y devuelve la distancia entre ambos, a partir de sus respectivas coordenadas.

Page 8: Ejercicios Prácticos - UPM

FPRG - Práctica 1 808/10/2009

Ejemplo 2

� Un círculo es una de las posibles figuras que pueden existir en el plano.� Cree una clase Circulo que

permita representan círculos en un plano. Un círculo viene caracterizado por la posición de su centro (un Punto) y su radio (v. fig. 2a). Incluya los constructores necesarios y métodos accesores (getters) para obtener el centro y el valor del radio.

Page 9: Ejercicios Prácticos - UPM

FPRG - Práctica 1 908/10/2009

Ejemplo 2

� Cree asimismo un método desplaza análogo al que creó para la clase Punto,

para desplazar un círculo en el plano según un vector dado. Tenga en cuenta que desplazar un círculo implica desplazar su centro y mantener su radio.

Page 10: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1008/10/2009

Ejemplo 2

� Cree un método escala que modifique el tamaño del círculo según un factor de escala k que se pasa como parámetro al método. Tenga en cuenta que al escalar un círculo, se modifica su radio pero se mantiene su centro.

Page 11: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1108/10/2009

Ejemplo 3

� Un triángulo es un polígono de tres lados, que queda determinado a partir de las posiciones de los tres puntos que constituyen sus vértices. Se pide crear una clase Triangulo para representar triángulos en el plano, reutilizando la clase Punto creada en el ejercicio anterior.

Para ello, se tendrá en cuenta que un triángulo se puede definir a partir de los tres puntos que determinan sus tres vértices (que llamaremos vA, vBy vC). La clase deberá contar con los constructores necesarios y con métodos accesores (getters) para obtener cada uno de los vértices.

Page 12: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1208/10/2009

Ejemplo 4

� Modifique la clase Triangulo realizada en el ejercicio anterior, e incluya:� métodos que permitan

conocer las longitudes de los lados de un triángulo (longitud_a, longitud_b, y longitud_c)

� un método que permita conocer el perímetro de un triángulo, reutilizando los métodos de las longitudes.

Page 13: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1308/10/2009

Ejemplo 4

� un método que permita conocer la superficie de un triángulo. Utilice para ello la Fórmula de Herón

(donde p representa el perímetro):

−⋅

−⋅

−⋅= cba l

pl

pl

ppS

2222

Page 14: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1408/10/2009

Ejemplo 5

� Se facilita para este ejercicio una clase SistemaCoordenado, que crea una ventana con unos ejes coordenados y permite dibujar distintos elementos gráficos en ella. � Añada a la clase Circulo un método public void pinta(SistemaCoordenado sc)

que pinte un círculo en un SistemaCoordenado dado.

� Haga lo mismo con la clase Triangulo.

� Haga lo mismo con la clase Punto. Para representar un punto, puede utilizar una cruz, formada por un pequeño segmento vertical y otro horizontal, o un aspa formada por dos segmentos diagonales.

Page 15: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1508/10/2009

Ejemplo 6

� Añada a la clase Triangulo los

siguientes métodos:

� un método que permita conocer el punto en el que se encuentra el baricentro del triángulo, cuyas coordenadas vienen dadas por la siguiente fórmula:

3

CBA VVVG

++=

Page 16: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1608/10/2009

Ejemplo 6

� un método que permita mover un

triángulo según un

vector de desplazamiento dado

(∆x, ∆y). Mover un triángulo implica

mover las posiciones de sus vértices.

Page 17: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1708/10/2009

Ejemplo 6

� un método que permita escalar un triángulo según un factor de escala k dado. Al escalar un triángulo, se crea un nuevo triángulo que mantiene el mismo baricentro que el triángulo original, pero con los vértices colocados de manera que la distancia al baricentro se multiplica por el factor de escala. El resultado es que las nuevas coordenadas de posición de cada vértice Vivienen dadas por

( ) GGVkV ii +−⋅=

Page 18: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1808/10/2009

Ejemplo 7

� Modifique la clase Triangulo e incluya un método que cree y devuelva el círculo inscrito a un triángulo. Para ello, puede utilizar las siguientes fórmulas para las coordenadas del incentro (I) y el radio del círculo inscrito (ri), donde la, lby lc representan las longitudes de los lados, p el perímetro y Sla superficie. Utilice los métodos creados en el apartado 4 cuando sea necesario.

S

lllrV

p

lV

p

lV

p

lI cba

ic

c

B

b

A

a

⋅⋅=⋅+⋅+⋅=

4;

Page 19: Ejercicios Prácticos - UPM

FPRG - Práctica 1 1908/10/2009

Ejemplo 8

� Modifique la clase Triangulo e incluya un método que cree y devuelva el círculo circunscrito a un triángulo. Para ello, puede utilizar las siguientes fórmulas para las coordenadas del circuncentro (CC) y el radio del círculo circunscrito (rc), donde las coordenadas del vértice VA vienen representadas por (Ax, Ay), el perímetro por p y la superficie por S. Utilice los métodos creados en el apartado 4 cuando sea necesario.

Page 20: Ejercicios Prácticos - UPM

FPRG - Práctica 1 2008/10/2009

Ejemplo 8

( )xyxyxyxyxyxy

yyyyyxyxyyyxyyyxyyyyxyxy

xBCACBACBABCA

CACBABBCBCACBACBACABACABCC

+−−−+⋅

−+−−−++++−−=

2

222222222222

( )xyxyxyxyxyxy

xyxyxxxxxyxxxyxyxxxxxyxx

yBCACBACBABCA

BCACBCACBABACBABCBABCACACC

+−−−+⋅

+−+−−−−+−++=

2

222222222222

p

Src

2=

Page 21: Ejercicios Prácticos - UPM

FPRG - Práctica 1 2108/10/2009

Ejemplo 9

� Añada un método Java public void pintaTodo() a

la clase Triangulo, que

pinte el triángulo, sus vértices, su baricentro,

sus círculos inscrito y circunscrito en un

SistemaCoordenadodado.

Page 22: Ejercicios Prácticos - UPM

FPRG - Práctica 1 2208/10/2009

Ejercicio práctico: enunciado

� Disponible en la web desde después de clase www.dit.upm.es/~samuelm/docencia/fprg/

� Realizar operaciones semejantes a los ejercicios previos, ahora con cuadriláteros:� Constructor, getters.� Lados, perímetro, área.� Pintar en sistema coordenado.� Círculo inscrito y circunscrito: si existen.� Clase PruebaCuadrilatero: probador que presenta un

cuadrilátero por consola y por ventana.

� Entrega: 19/10 sobre 10 puntos, 22/10 sobre 8 puntos y 25/10 sobre 5 puntos.