Ejercicio clases

Vamos a crear una clase Alumno con las propiedades Nombre y Nota. En el constructor pedimos el nombre. La nota no puede ser menor que 1 ni mayor que 10, menos al inicio que vale 0 (su valor por defecto).

En el toString mostramos el nombre y la nota sólo si es distinto de 0.

Si queremos obtener la nota antes de ponerla nos debe saltar una excepción.

Sobreescrimos el Equals y el operador == y != que nos devolverá cierto si el nombre es el mismo independientemente de la nota.

Crearemos también una clase Aula que tiene un nombre y una capacidad. Almacena un array de alumnos con tamaño máximo de esa capacidad. Nombre y capacidad se piden en el constructor. En el constructor se creará el array con el tamaño que nos pongan.

Creamos un método AddAlumno que nos añade el alumno que nos pasan al array.

Sobrecargamos el método para que pasándole una cadena son cree un alumno y lo añada al array.

Se añaden en la primera posición libre que haya.

Si ya hay un alumno con ese nombre se lanza una excepción.

Si el aula ya está llena se lanza una excepción.

Creamos un método OutAlumno que pasándole un string nos elimina el alumno que se llame así. Si el alumno no está no elimina nada.

Creamos un método Destroy que nos elimina todos los alumnos de la clase.

Creamos un método Contains que pasándole un String nos devuelve true si hay un alumno con ese nombre.

Creamos un método Puntua al que se le pasa el nombre de un alumno y su nota. Si el alumno no existe no hace nada.

Método Media que nos devuelve la media de notas de la clase de los Alumnos que tengan nota.

 

 

Ejercicios sobrecargas

Vamos a utilizar la clase de los pesos y vamos a sobreescribir el ToString() para que nos muestre el nombre completo, la altura, el peso y el IMC

Vamos a sobreescribir el equals para que dos objetos sean iguales si tienen el mismo IMC

Y el operador == y != con la misma condición

También si lo comparamos con un decimal comparando el IMC

Ejercicio Clases

Vamos a crear una clase Cliente que tendrá las siguientes propiedades:

  • Nombre
  • Apellido1
  • Apellido2
  • Altura (entero en cm)
  • Peso (decimal)

Creamos propiedades para todo.

Vamos a crear una propiedad NombreCompleto que nos devuelve la concatenación de nombre y dos apellidos

En el set de esta propiedad hacemos un split de la cadena que nos pasen y asignamos dependiendo de los valores obtenidos. Una palabra->al nombre, dos palabras, al nombre y 1 apellido, tres palabras, al nombre, apellido1 y apellido2, más de tres todas al último apellido

Creamos un constructor con todos los parámetros

Creamos un constructor sin parámetros que ponga en nombre ‘Anónimo’ sin apellidos, altura 170 y peso 80.

La fórmula para el IMC es el peso en kilogramos dividido por la estatura en metros cuadrados. Hagamos una propiedad que nos lo calcule.

Hagamos una propiedad Nivel que dependiendo del valor de IMC nos devuelva su nivel:

Por debajo de 18.5 Bajo peso
18.5 – 24.9 Normal
25.0 – 29.9 Sobrepeso
30.0 o más Obesidad

https://www.cdc.gov/healthyweight/spanish/assessing/bmi/adult_bmi/index.html

 

Ejercicio parámetros

Escribir una función a la que le podamos pasar cuantos números queramos y nos devuelva el mayor y el menor:

(int,int) Extremos(1,5,3,0,90,-5)–>(-5,90)

Ejercicio arrays

1.- Crear una función Diagonal que nos cree un array bidimensional de enteros con valor 0 menos la diagonal principal que vale 1

Diagonal(3)->

1 0 0

0 1 0

0 0 1

Ejercicios cadenas

1.- Crear una función InternalTrim que elimine espacios de más DENTRO de una cadena.

InternalTrim(“Hola      que    tal”)=>”Hola que tal”

2.- Crear una función ToTitleCase que nos ponga la primera letra de cada palabra en mayúsculas

ToTitleCase(“hoLA que TAL”)=>”Hola Que Tal”

3.- Crear una función VocalsCount que nos diga las vocales que hay en una cadena

VocalsCount(“Hola que tal”)=>5

4.- Lo mismo pero teniendo en cuenta acentos

Ejercicios funciones

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

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

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

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

3.- Crear una función extremos a la que le pasamos un array 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 un array 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 el array de enteros que le pasamos está ordenado 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 el array invertido

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

Ejercicio Anagrama recursivo

Crear una función que, pasándole una palabra, nos imprima todos los anagramas posibles.

Ejemplo: Anagrama(“sol”)

Imprime:

sol

slo

osl

ols

lso

los