Ejercicios listas

Estos ejercicios pueden hacerse utilizando listas o arrays:

1.- Crear una función a la que le pasamos una cadena y un tamaño y nos devuelve una lista de ese tamaño con la cadena como elemento

CreateList(“hola”,3)==>{“hola”,”hola”,”hola”}

2.- Crear una función suma a la que le pasamos una lista de enteros y nos devuelva la suma

Suma({1,2,3})===>6

3.- Crear una función extremos a la que le pasamos una lista de enteros y nos devuelva el mayor y el menor

Extremos({2,8,1})=>(1,8)

4.- Crear una función a la que le pasamos un tamaño y nos devuelve una lista de ese tamaño de enteros rellenando con los números naturales

CreateNumbers(5)===>{1,2,3,4,5}

5.- Crear una función hasOrder que devuelve un booleano si la lista de enteros que le pasamos está ordenada de menor a mayor

hasOrder(´{1,5,8,34})===>true

hasOrder(´{1,15,8,34})===>false

6.- Modificar la función anterior para que incluya un parámetro opcional que valga 0 o 1 indicando si queremos que el orden sea ascendente o descendente

(Si sabes hacerlo, utiliza un enum para el tipo)

7.- Crear una función ReverseNumbers que devuelva la lista invertido

ReverseNumbers({1,2,3,4})====>{4,3,2,1}

8.- Wscribir una función recortarPalabras a la que le pasamos una lista de palabras y una longitud y nos devuelve una lista con las palabras de esa lonitud o superior
recortarPalabras([“aa”,”bbb”,”cccc”,”dddddd”],4)->[“cccc”,”dddddd”]

9.- Escribir una función a la que le pasamos una lista de números y nos devuelve los números en la posición par, los de posición impar los ignora
mitadPares([1,2,5,8,10])->[1,5,10]

10.- Escribir una función a la que le pasamos dos listas de enteros y nos devuelve true si tienen algún elemento en común y false en caso contrario
elementoComun([1,2,3],[4,5,6])->false
elementoComun([1,2,3],[4,5,6,3])->true

11.- Una funcion pivote de una lista de números nos divide la lista en 2 partes primero los menores del número que pasemos y por otra los mayores
pivote([4,1,9,5,3,7],6)->([4,1,5,3],[9,7])

12.- Funcion ordenarLista a la que le pasamos una lista de palabras y nos la ordena por la longitud de las cadenas
ordenarLista([“bbb”,”a”,”ddddd”,”cccc”])->[“a”,”bbb”,”cccc”,”ddddd”]

13.- Crear una función mediaAritmetica a la que le pasamos una lista de números y nos devuelve la media
mediaAritmetica([2,4,6])->4

14.- Crear una función a la que le pasamos una letra y un número y nos genera una lista con esa letra repetida una, dos y hasta n veces
generarCadenas(“a”,5)->[“a”,”aa”,”aaa”,”aaaa”,”aaaaa”]

15.- Una función palabras con caracter a la que le pasamos una cadena y nos devuelve la lista de palabras que tienen ese caracter
# palabrasConCaracter(‘hola que tal’,’a’)->[‘hola’,’tal’]

Recopilación ejercicios de fechas

Crear una función cuantoFalta(fecha) a la que le pasamos una fecha y nos devuelve cuantos días faltan hasta esa fecha

Crear una función primerosDeMes(anyo) que nos devuelva una lista con las fechas de los primeros de mes de ese año (1 de enero, 1 de febrero, 1 de marzo…)

Crear una función sanFermin(anyo) que nos devuelva una lista con las fechas de la canción de San Fermín (1 de enero, 2 de febrero, 3 de marzo…7 de julio)

Crear una función a la que le pasamos una fecha y nos devuelve true si es fin de semana y false en caso contrario
esFinDeSemana(cadena)

Crear una función a la que le pasamos un año, un mes y un día y nos devuelve una lista con todas las horas exactas de ese día
crearAgendaDia(2024,5,1)->[2024-5-1 00:00,2024-5-1 01:00,2024-5-1 02:00,2024-5-1 03:00,…2024-5-1 23:00]

Crear una función esViernes que nos devuelva true si hoy es viernes y false en caso contrario.

Crear una función vencimiento que pasándole un número de días nos devuelva la fecha de vencimiento, que es el día de hoy más ese número de días

Crear una función festivos que pasándole un mes y un año nos devuelva el número de sábados y domingos que tiene.

Crear una función laborables que pasandole un día, un mes y un año nos devuelva una cadena con los 15 días laborables siguientes (días entre lunes y viernes)

Lo mismo pero paasando una fecha y un entero con los números de días

Crear una función nextLeap que nos diga cual es el próximo año bisiesto. Si es el actual, el actual.

Crear una función malditoLunes que nos devuelva un array con todas las fechas de este año que caen en lunes

Proyecto: Curriculum

Como resumen de lo visto en el curso vamos a crear:

1.- Un github con nuestros códigos
2.- Uno o varios deploys en render de nuestros proyectos
3.- Una web de ‘curriculum’ en html que desglose nuestras habilidades y enlace a las páginas anteriores.
(ejemplos: https://devsnap.me/html-resume-templates)
Esta web la podemos subir en alwaysdata, por ejemplo, pero si alguien quiere que se la suba en una carpeta de trifulcas lo hago.

Proyecto final

El proyecto final consiste en crear una aplicación que se componga de dos partes:

1.- Backend

Hay que desarrollar una API Rest con Spring Boot que nos permita realizar el mantenimiento (CRUD) de una base de datos de como mínimo tres tablas relacionadas.

2.- FrontEnd

Hay que desarrollar una web con HTML, CSS y JS que tenga un estilo atractivo y que consuma algún elemento de la API

Un ejemplo

Tengo mi biblioteca que tiene las siguientes tablas:

Género 1–N Libro N–N Autor

Mi Api REST me permite hacer el mantenimiento (CRUD) de géneros, libros y autores con los verbos estándar del REST (GET, POST, PUT y DELETE). También me tendría que poder asignar un libro a un autor y viceversa.

Mi página web podría tener, por ejemplo, una cabecera con una imagen de libros y un menú para ver el listado de los géneros que tengo y pinchando en uno de esos géneros me salieran los libros que son de ese género.

Un proyecto como el anterior sería lo mínimo a entregar. Después se puede complicar, podemos poner vistas en el Backend, búsquedas en el front, y cualquier cosa que se nos ocurra.

¿Qué tenemos que ir entregando?

1.- Una descripción del proyecto

2.- El modelo E-R de la base de datos (no la base de datos)

3.- Un esquema de lo que tendrá el frontend

Una vez validado por mí arrancamos el proyecto y al finalizarlo hay que entregar el código fuente y un volcado de la base de datos. Si alguien lo quiere subir a Github como vimos antes del verano, estupendo.