Ejercicios del Curso de Extensión Universitaria de Desarrollo de Aplicaciones para Dispositivos Android.
📁 Modulo 1
01. En el momento en que se intenta compilar se producen una serie de errores. El alumno debe localizar dichos errores y corregirlos.
02. Escribe un programa que acepte un dato de tipo int de teclado y posteriormente lo escriba en pantalla. Ejecútalo introduciendo un número int válido, y posteriormente ejecútalo introduciendo por teclado un dato que no pertenezca al tipo int.
03. Escribe un programa que calcule la nota final de una asignatura. Para ello deberá leer por teclado la nota de la parte de teoría y la nota de la parte de problemas, y habrá de calcular la nota final considerando que la parte de teoría vale un 70% de la nota final y la de práctica un 30%.
04. Escribe un programa que lea de teclado un número natural, que representa una cierta cantidad de Bytes, y muestre por pantalla los MBytes, KBytes y Bytes que podemos obtener.
05. Diseña un algoritmo que lea por teclado dos números enteros y determine si el primero es divisor del segundo, si el segundo es divisor del primero o si no ocurre nada de eso.
06. Escribe un programa que lea tres números y que diga cuál de ellos es el mayor estricto, o una indicación de que no existe.
07. Escribe un programa que permita emitir la factura correspondiente a una compra de un artículo determinado del que se adquieren una o varias unidades. El número de unidades se introduce por teclado. El precio por unidad es de 100 €. El IVA a aplicar es del 12%.
Además si el precio total (precio de las unidades + IVA) es mayor de 300 €, se aplicará un descuento del 5%. El programa mostrará por pantalla el precio total final. En el caso de que se aplique el descuento, deberemos indicarlo también por pantalla.
08. Escribe un programa que calcule la suma de los N primeros números enteros positivos (el número N se leerá por teclado). Implementa dicho programa utilizando cada una de las tres estructuras de iteración de Java: while, do-while y for.
09. Diseña un algoritmo que lea por teclado una secuencia de números enteros hasta localizar un cero, y que al final dé como salida el número de enteros negativos encontrados, y la cantidad total de números leídos.
10. Diseña un algoritmo que lea un número entero n por teclado (distinto de 0). Después el usuario introducirá por teclado una secuencia de números enteros terminada en 0. El algoritmo debe determinar si el número n aparece o no en la secuencia.
11. Escribe un algoritmo que lea por teclado una lista de números naturales terminada en 0 y muestre por pantalla la suma de todos los números primos que hay en ella. Un número natural es primo si sólo es divisible por 1 y por él mismo. El 1 no se considera primo.
03. Escriba un programa que sólo declare variables de tipo int. El programa deberá leer dos números desde el teclado; posteriormente los sumará y almacenará el resultado en una variable; finalmente escribirá por pantalla el resultado de la suma. Ejecute el programa con datos cualesquiera y verifique que funciona. Después ejecute dicho programa tomando como datos de entrada 1 y 3000000000. ¿Por qué no funciona?
05. Escriba un programa que calcule la distancia recorrida por un vehículo que circula a una velocidad constante. El programa leerá por teclado la velocidad a la que circula el vehículo y el tiempo empleado y escribirá por pantalla la distancia recorrida en ese tiempo.
06. Escriba un programa que lea un número real por teclado. El programa deberá mostrar por separado la parte entera y la parte decimal de un número.
08. Escriba un programa que lea por teclado una cierta cantidad de segundos y muestre su equivalente en semanas, días, horas, minutos y segundos.
09. Escriba el siguiente código, ejecútelo y descubra qué hace este programa y cómo lo hace. Sustituya las tres asignaciones que hay tras el comentario por estas otras tres. Puede comprobarse que el resultado es análogo al caso anterior: estudie cómo funciona este nuevo programa.
05. Diseña un algoritmo para determinar si un número entero (leído por teclado) es múltiplo de alguno de los siguientes números (o de varios de ellos): 3, 4, 5.
06. Escribe un algoritmo para calcular el precio de una partida de artículos aplicando un descuento creciente con la cantidad comprada.
07. Escribe un programa que lea un número desde teclado y nos diga si es positivo o negativo.
09. Escribe un programa que acepte fechas escritas en el formato numérico y nos dé la misma fecha pero con el mes correspondiente indicado en letras. Utiliza la estructura de selección switch.
11. Escribe un programa que lea de teclado dos números, que representan los dos últimos valores del contador de la luz (al restarlos obtendremos el consumo en Kw), y calcule e imprima en pantalla el importe total a pagar en función del consumo realizado.
12. Escribe un programa que lea de teclado un número de cuatro dígitos (se supone que el primer dígito no es un cero), y posteriormente imprima en pantalla la siguiente información. El primer dígito representa a una provincia, los dos siguientes indican el número de la operación y el último es un dígito de control. En caso de que el número no tenga exactamente cuatro dígitos, o bien el dígito de control sea erróneo (será correcto si su valor coincide con el resto de dividir el número de operación entre la provincia), en lugar del mensaje anterior, habrá que imprimir en pantalla un mensaje de error (seguido por el motivo del error).
05. Diseña un algoritmo que lea un número entero n por teclado (distinto de 0). Después el usuario introducirá por teclado una secuencia de números enteros. El algoritmo debe
determinar si el número n aparece o no en la secuencia.
06. Diseña un programa que lea una sucesión de números terminada en 0 y muestre la suma de los restos de dividir por 8 cada uno de los números de la sucesión.
07. Diseña un programa que lea un único número natural por teclado en una variable de tipo int y muestre por pantalla cuantos dígitos pares tiene.
08. En una fábrica de coches se desea calcular el precio medio de un número de modelos de coche, leído desde teclado. Se pide dado un numero de modelos de coche, introducir el precio (en euros) de cada modelo de coche (para esto usaremos una estructura iterativa) y posteriormente calcular el precio medio de los modelos.
09. Diseña un programa que muestre por pantalla un tablero de ajedrez, donde las posiciones blancas serán mostradas con el carácter ‘B’ y las posiciones negras serán mostradas con el carácter ‘N’. Un tablero de ajedrez tiene 8 filas y 8 columnas.
10. La constante matemática pi puede ser calculada con la siguiente fórmula:
pi = 4 * (2/3) * (4/3) * (4/5) * (6/5) * (6/7) *...
Escribe un programa que lea un valor entero, n, y a continuación calcule pi a partir de la fórmula anterior multiplicando las primeras n fracciones de la parte derecha de la fórmula.
11. Diseña un algoritmo que lea un número natural n por teclado (mayor que 0) y calcule el n-ésimo número de la serie de Fibonacci.
12. Escribe un algoritmo que encuentre el mayor, el menor y la media aritmética de una colección de N números leídos por el teclado donde N es el primero de los números.
13. Escribe un algoritmo que lea por teclado una lista de números naturales terminada en 0 y muestre por pantalla la suma de todos los números primos que hay en ella. Un número natural es primo si sólo es divisible por 1 y por él mismo. El 1 no se considera primo.
14. Realiza un programa que lea por teclado una secuencia de números enteros terminada en 0 y diga cuál es el segundo mayor número de la secuencia. Si la secuencia tiene menos de dos números el programa sacará un mensaje informando de ello. Si no hay un segundo mayor (porque todos los números han sido iguales), el programa mostrará el mensaje correspondiente. El 0 no forma parte de la lista, sólo se utiliza para indicar el final de la misma.
15. Escribe un algoritmo que lea por teclado una lista de números enteros terminada en 0, y que encuentre y escriba en la pantalla la posición de la primera y de la última ocurrencia del número 12 dentro de la lista. Si el número 12 no está en la lista, el algoritmo debería escribir 0.
16. Desarrolla un algoritmo para el siguiente juego:
El usuario introduce un límite inferior, un límite superior y piensa un número en ese rango. El ordenador tiene que acertarlo. Para ello el ordenador propone un número y el usuario responde con -1, 1 o 0. Si la respuesta es -1 significa que el número pensado por el usuario es menor que el propuesto por el ordenador. Si la respuesta es 1 significa que el número pensado es mayor que el propuesto. Si la respuesta es 0 significa que se ha acertado el número pensado y el programa termina.
17. Desarrolla un algoritmo para el siguiente juego:
El usuario introduce un número natural n que representa a n objetos. La máquina decide quien empieza y alternativamente, el usuario y la máquina retiran cada uno 1 2 o 3 objetos (es decir, elige restar 1, 2 o 3 a n). El que retira el último objeto pierde.
En las condiciones del problema, es posible desarrollar un algoritmo para que siempre gane la máquina. Construir tal algoritmo.
00. Números combinatorios.
01. Escribe un programa que imprima una pirámide de dígitos, tomando
como entrada por teclado el número de filas de la misma (debe ser menor de 10).
02. Escribe un algoritmo que lea un número natural N mayor que cero por teclado y dibuje un
rombo de asteriscos.
03. Escribe un programa que calcule e imprima por pantalla los N primeros números primos, siendo N un número natural que se introduce por teclado.
04. Escribe un programa que acepte como entrada desde teclado un número natural mayor que uno (> 1) y dé como salida el resultado de realizar la descomposición en factores primos de
dicho número.
05. Dado un número natural, lo sumamos con su reverso. Si esta suma es un palíndromo, entonces paramos; y si no, repetimos el proceso con el número obtenido de dicha suma, hasta dar con un palíndromo. Si inicialmente el número del que partimos ya es palíndromo, no se hace nada.
06. Escribe un programa que tome como entrada desde teclado dos números naturales (mayores que cero) "N" e "i", e imprima en pantalla el dígito que ocupa la posición i-ésima del número N. Si i es mayor que el número de dígitos de N, se escribirá en pantalla -1.
07. Escribe un programa que acepte como entrada desde teclado un número natural mayor que cero y dé como salida el resultado de sumar dos a dos los dígitos que aparecen en posiciones simétricas respecto al dígito central dentro del número dado como entrada.
08. La conjetura de Goldbach dice que todo número par mayor que 2 tiene la propiedad de que es la suma de dos números primos. Diseña un algoritmo que compruebe si dicha conjetura es cierta para todos los números pares comprendidos entre dos números leídos por teclado.
09. Diseña un algoritmo que lea de teclado un número natural N mayor que cero y muestre las N primeras filas del siguiente triángulo.
10. Escribe un programa que dibuje la siguiente figura dado por teclado un valor N de la altura (N debe ser par y menor de 20).
01. Desarrolla una función mayor que tome como parámetro de entrada un array totalmente relleno de valores enteros y devuelva como resultado el valor mayor contenido en dicho array. Crea también una función leer que reciba como parámetro un objeto Scanner asociado al teclado, lea del mismo una colección de MAX (una constante, por ejemplo 10) números enteros y devuelva un array conteniendo dichos números. Crea también una función main para comprobar el correcto funcionamiento de las dos funciones anteriores.
02. Diseña una función está que recibe como parámetros de entrada un array de números enteros a y un número entero num, y devuelve true si el número num está contenido en a, y false en otro caso. Crea otra función leer que reciba como parámetro un objeto Scanner asociado al teclado, le pida al usuario la cantidad de números a leer, lea la colección de números enteros y devuelva un array conteniendo dichos números. Por último, diseña la función main para comprobar el correcto funcionamiento de las dos funciones anteriores.
03. Se dispone de un array de números enteros en el que al menos hay dos números que son iguales y dos que son distintos. Obtenga una función mayorMinimo que tomando como parámetro dicho array, devuelva un elemento del array que sea mayor que el mínimo de éste. Crea otra función leer que reciba como parámetro un objeto Scanner asociado al teclado, lea del mismo una colección de números enteros (hasta que el usuario introduzca un 0) y devuelva un array conteniendo dichos números. Crea también una función main para comprobar el correcto funcionamiento de las dos funciones anteriores.
04. Diseña una función media para calcular la media de las estaturas de una clase. La función recibe como parámetro de entrada un array con las estaturas (en centímetros) de los alumnos de una determinada clase. Crea después otras dos funciones para determinar cuántos alumnos son más altos y cuántos más bajos que la media. El nombre de las funciones queda a criterio del alumno.
Crea también una función main para comprobar que las tres funciones se han codificado correctamente.
05. Diseña un algoritmo que permita invertir el contenido de un array. El algoritmo no podrá utilizar arrays auxiliares.
06. Diseña un algoritmo que lea de teclado una secuencia de números entre 0 y 9 y cuente el número de veces que se repite cada dígito. La secuencia de números de entrada se da por finalizada al leer un número negativo.
07. Un histograma es una gráfica que muestra la frecuencia con que aparecen en una lista dada los distintos valores que la pudieran formar.