https://www.variablenotfound.com/2022/06/no-te-gusta-que-tus-nuevos-proyectos.html
Categoría: C#
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
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
Convenciones de nombres en C#
Object Name | Notation | Length | Plural | Prefix | Suffix | Abbreviation | Char Mask | Underscores |
---|---|---|---|---|---|---|---|---|
Namespace name | PascalCase | 128 | Yes | Yes | No | No | [A-z][0-9] | No |
Class name | PascalCase | 128 | No | No | Yes | No | [A-z][0-9] | No |
Constructor name | PascalCase | 128 | No | No | Yes | No | [A-z][0-9] | No |
Method name | PascalCase | 128 | Yes | No | No | No | [A-z][0-9] | No |
Method arguments | camelCase | 128 | Yes | No | No | Yes | [A-z][0-9] | No |
Local variables | camelCase | 50 | Yes | No | No | Yes | [A-z][0-9] | No |
Constants name | PascalCase | 50 | No | No | No | No | [A-z][0-9] | No |
Field name | camelCase | 50 | Yes | No | No | Yes | [A-z][0-9] | Yes |
Properties name | PascalCase | 50 | Yes | No | No | Yes | [A-z][0-9] | No |
Delegate name | PascalCase | 128 | No | No | Yes | Yes | [A-z] | No |
Enum type name | PascalCase | 128 | Yes | No | No | No | [A-z] | No |
Tutoriales c#
https://docs.microsoft.com/es-es/dotnet/csharp/tour-of-csharp/
https://www.w3schools.com/cs/index.php
https://www.tutorialspoint.com/csharp/
https://www.tutorialsteacher.com/csharp