domingo, 22 de mayo de 2022
Creando formularios en C#
Los entornos de desarrollo integrado como Visual Studio, cuentan con herramientas para crear rápidamente aplicaciones con interfaz gráfica de usuario. En estos entornos, se utiliza la programación dirigida por eventos, donde el usuario realiza acciones sobre los objetos y el programador define las acciones a realizar en dichos casos. Los eventos clásicos son: Clic, doble clic, activar foco, modificar texto; por cada acción de usuario se contará con un bloque de código que indicará lo que el objeto realizará una vez el usuario efectúe la acción. Estos eventos son métodos dentro del formulario, el cual es una clase dentro del proyecto del IDE y son invocados por las acciones del usuario.
Es importante determinar qué herramienta cumple la tarea necesaria para el correcto desarrollo de la interfaz gráfica, creo que la dificultad mayor está en la configuración correcta de las propiedades y ejecución del código en consola para su correcto funcionamiento.
lunes, 16 de mayo de 2022
Modelo clase
Agregación en UML
La agregación es un tipo de asociación que indica que una clase es parte de otra clase (composición débil). Los componentes pueden ser compartidos por varios compuestos (de la misma asociación de agregación o de varias asociaciones de agregación distintas). La destrucción del compuesto no conlleva la destrucción de los componentes. Habitualmente se da con mayor frecuencia que la composición.
La agregación se representa en UML mediante un diamante de color blanco colocado en el extremo en el que está la clase que representa el “todo”.
Veamos un ejemplo de agregación:
• Tenemos una clase Empresa.• Tenemos una clase Cliente.
• Una empresa agrupa a varios clientes.
Composición en UML
Composición es una forma fuerte de composición donde la vida de la clase contenida debe coincidir con la vida de la clase contenedor. Los componentes constituyen una parte del objeto compuesto. De esta forma, los componentes no pueden ser compartidos por varios objetos compuestos. La supresión del objeto compuesto conlleva la supresión de los componentes.
El símbolo de composición es un diamante de color negro colocado en el extremo en el que está la clase que representa el “todo” (Compuesto).
Veamos un ejemplo de composición:
• Tenemos una clase Empresa.
• Un objeto Empresa está a su vez compuesto por uno o varios objetos del tipo empleado.
• El tiempo de vida de los objetos Empleado depende del tiempo de vida de Empresa, ya que si no existe una Empresa no pueden existir sus empleados.
Diferencias entre Composición y Agregación
La siguiente tabla intenta resumir algunas diferencias entre agregación y composición.
domingo, 15 de mayo de 2022
Práctica sobre funciones
Funciones recursivas:
Una función es recursiva cuando el cuerpo de la función utiliza a la propia función. Dentro de una función recursiva suelen distinguirse dos partes:- Los casos base: Son aquellos que para su solución no requieren utilizar la función que se está definiendo.
- Los casos recursivos: Son aquellos que sí que requieren utilizar la función que se está definiendo.
Las definiciones recursivas funcionan siempre y cuando las llamadas recursivas se realicen de forma que en algún momento se lleguen a los casos base.
Una función es recursiva final cuando tras la llamada recursiva no hay que realizar ningún cómputo adicional. Es decir, el valor devuelto en la llamada recursiva es igual al valor que debe devolver la función.
Ejemplos
Para calcular el factorial de un número se distinguen dos casos: si el número es cero o si es mayor. El primer caso es un caso base, pues sabemos que la solución es 1, mientras que para el resto de los casos utilizaremos una llamada recursiva. La distinción de casos puede realizarse por cualquiera de los 4 métodos que conocemos. Veámoslo por ejemplo con el uso de patrones: fact 0 = 1
fact n = n * fact (n-1)
Nótese que la recursión terminará para cualquier valor de entrada positivo, pues en cada llamada recursiva el parámetro se va decrementando, hasta que en algún momento llegue a valer 0. Nótese también que la recursión no es final, pues tras la llamada recursiva es necesario multiplicar el valor obtenido por el parámetro de entrada.
La función anterior puede convertirse en final si se añade un parámetro acumulador:
fact n = fact' n 1
fact' 0 acum = acum
fact' n acum = fact' (n-1) (n*acum)
La recursión es una estrategia muy potente cuando se utilizan listas. Veamos por ejemplo cómo calcular la longitud de una lista:
long [] = 0
long (x:xs) = 1 + long xs
Nótese que la distinción de casos se hace en base a si la lista es vacía o no. Sabemos que la definición termina porque en cada llamada recursiva se reduce en una unidad la longitud de la lista, por lo que en algún momento llegará a estar vacía.
Errores típicos:
- El orden de las alternativas es muy importante en presencia de funciones recursivas, pues un orden erróneo puede provocar que la recursión no termine nunca.
- Al definir una función por patrones, es posible equivocarse al escribir el nombre de la función en alguna de las definiciones. En dicho caso, la función fallará, y si ha afectado a los casos base, posiblemente no terminará.
Aplicando el manejo de vectores, matrices en el desarrollo de aplicaciones
Matriz que almacena las notas de la presente EAE para mostrar al final cuál es el promedio general de notas de todo el grupo de estudiantes y cuantos estudiantes pierden por materia.
Arreglos en lenguaje de programación
Un arreglo es una estructura ordenada de un número de variables determinadas y por lo general poseen un mismo nombre. Los arreglos pueden ser de varios tipos, algunos simples u otros más complejos, de forma que pueden ser reconocidos como individuales o multidimensionales.
Los arreglos multidimensionales hacen referencia a cada elemento por dos o más índices. A diferencia de los arreglos unidimensionales almacenan los valores en forma de tabla, utilizan dos o más índices, estructurando la información en forma matricial o como una tabla de datos; un índice indica fila y el otro índica columna. Este tipo de estructura se puede aprovecha si los datos en las columnas tienen un significado, mientras que los datos en las filas tienen otro.
Permiten movimientos de arriba hacia abajo o viceversa, y de derecha a izquierda o viceversa, facilitando almacenar una mayor cantidad de datos.
Transformaciones lineales
Transformaciones lineales 1. Qué es una transformación lineal Una transformación lineal es una función o aplicación lineal cuyo dominio y ...
-
M atriz que almacena las notas de la presente EAE para mostrar al final cuál es el promedio general de notas de todo el grupo de estudiantes...
-
Transformaciones lineales 1. Qué es una transformación lineal Una transformación lineal es una función o aplicación lineal cuyo dominio y ...
-
Un arreglo es una estructura ordenada de un número de variables determinadas y por lo general poseen un mismo nombre. Los arreglos pueden se...