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: Clase Complejo

Crear una clase para trabajar con números complejos.

class Complejo

Tendrán una parte real y una imaginaria, ambas de tipo float. Deben inicializarse en el constructor (con parámetros). Crear un constructor vacío que ponga 0,0

Crearemos las siguientes funciones:

sumar(complejo) ->Suma al número el número complejo que le pasamos

multiplicar(complejo)->Multiplica por el complejo que le pasamos

igual(complejo) -> devuelve true si los números complejos son iguales

Todas estas funciones trabajan con el propio número.

Crearemos también una propiedad virtual de sólo lectura que nos devuelva el valor absoluto del número complejo. El valor absoluto viene definido por la raíz cuadrada de la suma del cuadrado de a y b

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

Primero, pensar

https://www.microsiervos.com/archivo/ia/inteligencia-artificial-no-es-tan-lista.html

Quizá fue una sorpresa que al añadir las frases en cuestión como comienzo de las respuestas, todo mejorara mágicamente. Entre ellas están todas estas:

#1 Pensemos paso a paso.
#2 Primero,
#3 Pensemos esto con lógica.
#4 Resolvamos el problema dividiéndolo en pasos.
#5 Seamos realistas y pensemos paso a paso.
#6 Pensemos como un detective, paso a paso.
#7 Pensemos.
#8 Antes de adentrarnos en la respuesta,
#9 La respuesta va a continuación de la prueba.