Práctica 3 - Composición secuencial y condicional

Esta práctica tiene como objetivo familiarizarse con el uso de tipos de datos simples, las operaciones básicas de entrada por teclado y salida por pantalla, y las composiciones secuencial y condicional de acciones. En esta práctica inicial de programación, los algoritmos se desarrollarán dentro del método main. Se deberá cuidar especialmente la comunicación del programa con el usuario, de forma que este no tenga ninguna duda en el manejo del mismo. De lo contrario, los programas pueden dar errores en tiempo de ejecución al no estar el código de entrada por teclado convenientemente protegido. Los ejercicios de la primera parte se resolverán utilizando exclusivamente el esquema de composición secuencial de acciones. Para los de la segunda parte se podrá utilizar también el esquema de composición condicional en cualquiera de sus formas.

Los trabajos a desarrollar se realizarán por parejas preferentemente y se entregarán en un archivo comprimido zip con nombre aXXXXXX_YYYYYY_p3.zip (siendo XXXXXX el NIP del primer estudiante e YYYYYY el NIP del segundo). Dentro de cada clase se identificará a los autores del trabajo mediante la instrucción // @author nombre1 y nombre2 en la cabecera de cada fichero. Dada la sencillez de los ejercicios de esta práctica, se recomienda desarrollar todas las soluciones en un único proyecto BlueJ.

Esquema de composición secuencial

Ejercicio 1

Solicitar al usuario que teclee una letra mayúscula y mostrar la posición de dicha letra en el alfabeto, resolviéndolo mediante una expresión con operadores básicos. Mostrar también la letra minúscula correspondiente. Para este ejercicio, suponed el alfabeto inglés, es decir, no tengáis en cuenta la letra ‘Ñ’ o similares. Suponed también que el usuario no se va a equivocar en la introducción de la letra mayúscula.

Introduce una letra mayúscula: K
La letra K ocupa la posición 11 del alfabeto.
Su letra minúscula es k.

En Java, cada char se guarda como un número entero: su código, que para estos caracteres coincide con el de la tabla ASCII. Al pulsar sobre una letra se resalta también su pareja en mayúscula o minúscula.

Ejercicio 2

En un cajero de un banco hay billetes de 50, 20 y 10 euros. Si un cliente pide una cantidad de dinero, ¿cuál es la forma de darle el menor número de billetes? Diseña e implementa un algoritmo que pregunte al usuario qué cantidad de dinero quiere, y a continuación calcule y muestre en pantalla cuántos billetes de cada valor deben entregarse para entregar dicha cantidad de dinero con el menor número de billetes posible, mostrando también la cantidad que no haya podido entregarse en caso de existir. Se supondrá que el usuario introduce una cantidad no negativa.

Ejercicio 3

Diseña e implementa un algoritmo que, dada una hora introducida por teclado mediante tres valores que representan la hora (de 0 a 23), los minutos y los segundos (de 0 a 59), calcule la hora que sería un segundo después a la hora dada y la muestre por pantalla (resuelve el ejercicio utilizando exclusivamente el esquema de composición secuencial). Se supondrá que el usuario introduce valores que representen una hora válida del día.

Hora: 23
Minutos: 59
Segundos: 59
Hora actual -> 23:59:59
Hora siguiente -> 00:00:00

Esquema de composición condicional

Ejercicio 4

Diseñar un programa que solicite al usuario la introducción de 3 valores reales mediante teclado y, posteriormente, le comunique si los ha introducido ordenados crecientemente, decrecientemente o desordenados. También deberá comunicar si se ha introducido algún valor igual a otro.

Introduce 3 valores reales: 1.5 2.0 7.25
Los valores están ordenados crecientemente.
No hay valores iguales.
Introduce 3 valores reales: 9 4.5 4.5
Los valores están ordenados decrecientemente.
Hay valores iguales.
Introduce 3 valores reales: 3 8 1
Los valores están desordenados.
No hay valores iguales.

Ejercicio 5

Dados los coeficientes que determinan una ecuación de segundo grado, hallar las soluciones de la ecuación, tanto si las raíces resultan reales (1 doble o 2 distintas) como imaginarias, mostrando en este último caso el resultado en notación compleja.

Ejercicio 6

Se asume normalmente que un año de vida en un perro corresponde a siete años de vida de una persona. Los dueños de perros sin embargo han desarrollado algoritmos más precisos para calcular la “edad humana” de sus perros. Un método más preciso consiste en:

  • Un perro de un año corresponde a un niño de 14
  • Un perro de dos años corresponde a un joven de 22
  • Cada año extra del perro corresponde a 5 años humanos.

Implementa un algoritmo que calcule la edad humana de un perro.

¿Cuántos años tiene el perro? 5
Un perro de 5 años tendría una edad humana de 37 años.