viernes, 27 de noviembre de 2020

Portafolio Unidad 3

 https://classroom.google.com/c/MTM4MTU0NjUzNTc3/a/MTM4MTU0NjUzNTk2/details

https://classroom.google.com/c/MTM4MTU0NjUzNTc3/a/MTM4MTU0NjUzNTg4/details

https://classroom.google.com/c/MTM4MTU0NjUzNTc3/a/MTM4MTU0NjUzNTg0/details

https://classroom.google.com/c/MTM4MTU0NjUzNTc3/a/MTM4MTU0NjUzNTgy/details



Teniendo en cuenta el programa de formación que está estudiando ¿Cuáles son los aportes que las derivadas le brinda como persona y como futuro profesional?


En mi formación profesional , el aprendizaje de las derivadas es un aporte a mi conocimiento, ya que me permite profundizar en la medición de los cambios en la magnitud de una función, lo que se podría aplicar perfectamente en el análisis informático.


domingo, 22 de noviembre de 2020

Portafolio Conexión de Base de Datos con C#

 

Para desarrollar una aplicación conectada a datos en Visual Studio, normalmente se instala el sistema de base de datos en el equipo de desarrollo local y, después, se implementa la aplicación y la base de datos en un entorno de producción cuando están listos. Visual Studio instala SQL Server Express LocalDB en el equipo como parte de la carga de trabajo de procesamiento y almacenamiento de datos. Esta instancia de LocalDB es útil para desarrollar aplicaciones conectadas a datos de forma rápida y sencilla.

Para que un sistema de base de datos sea accesible desde aplicaciones .NET y para que esté visible en las ventanas de Visual Studio Data Tools, debe tener un instalo un administrador de datos ADO.NET. 

Estos son algunos de los sistemas de base de datos que se pueden usar en los proyectos de Visual Studio. 


tenemos diferentes Herramientas para la conexión a motores de bases de datos.

SQL Server

Oracle

MySQL

PostgreSQL

SQLite

FireBird

Portafolio Funciones

 

TIA Funciones

https://classroom.google.com/c/MTM4MTU0NjUzNTc3/a/MTM4MTU0NjUzNjAw/details

TIA Tipos de Funciones

https://classroom.google.com/c/MTM4MTU0NjUzNTc3/a/MTM4MTU0NjUzNTky/details


Las funciones son esenciales para el desarrollo integral de la formación analítica como desarrollador de software, donde se adquieren conocimientos para analizar mas a profundidad y aplicar en diferentes aplicativos.

sábado, 14 de noviembre de 2020

Manipulacion Base de Datos

 -CREACION DE LA BASE DE DATOS

CREATE DATABASE DbArriendaYa
USE DbArriendaYa
CREATE TABLE  TBLCLIENTE (
 ID_ARRENDATARIO   int  NOT NULL PRIMARY KEY,
 NOMBRE   varchar (30) NOT NULL,
 EDAD   int  NULL,
 CERTIFICADO_TRABAJO   nvarchar (50) NOT NULL,
 ID_FIADOR   int  NOT NULL



CREATE TABLE  TBLCONTRATO (
 COD_CONTRATO   int  NOT NULL PRIMARY KEY,
 ID_RESPONSABLE   int  NULL,
 ID_DUEÑO   int  NULL,
 ID_ARRENDATARIO   int  NULL,
 COD_PROPIEDAD   int  NULL,
 PRECIO   smallmoney  NULL,
 FECHA_ARRIENDO DATE


CREATE TABLE  TBLDUENO (
 ID_DUEÑO   int  NOT NULL PRIMARY KEY,
 NOMBRE   varchar (50) NOT NULL,
 EDAD   int  NULL,
 CEDULA   int  NOT NULL



CREATE TABLE  TBLFIADOR (
 ID_FIADOR   int  NOT NULL PRIMARY KEY,
 CEDULA   int  NOT NULL,
 NOMBRE   varchar (30) NULL,
 NUMERO_BIENES   int  NOT NULL



CREATE TABLE  TBLPAGO  (
 COD_PAGO    int  NOT NULL PRIMARY KEY,
 ID_ARRENDAMIENTO   int  NULL,
 COD_CONTRATO   int  NULL,
 COD_PROPIEDAD   int  NULL,
 MONTO_PA    smallmoney  NULL
 ) 


CREATE TABLE  TBLPROPIEDAD (
 COD_PROPIEDAD   int  NOT NULL PRIMARY KEY,
 ID_RESPONSABLE   int  NOT NULL,
 ID_DUENO   int  NOT NULL,
 COD_PA    int  NULL,
 ID_ARRENDATARIO   int  NULL,
 UBICACION   nvarchar (50) NOT NULL,
 PRECIO   numeric (18, 0) NOT NULL,
 TAMAÑO   numeric (18, 0) NULL



CREATE TABLE  TBLRESPONSABLE (
 ID_RESPONSABLE   int  NOT NULL PRIMARY KEY,
 CEDULA   int  NOT NULL,
 NOMBRE   varchar (50) NOT NULL,
 EDAD   int  NULL




ALTER TABLE  TBLCLIENTE     ADD  CONSTRAINT  FK_TBLCLIENTE_TBLFIADOR  FOREIGN KEY( ID_FIADOR )
REFERENCES  TBLFIADOR  ( ID_FIADOR )

ALTER TABLE  TBLCLIENTE  CHECK CONSTRAINT  FK_TBLCLIENTE_TBLFIADOR

ALTER TABLE  TBLCONTRATO     ADD  CONSTRAINT  FK_TBLCONTRATO_TBLCLIENTE  FOREIGN KEY( ID_ARRENDATARIO )
REFERENCES  TBLCLIENTE  ( ID_ARRENDATARIO )
 
ALTER TABLE  TBLCONTRATO  CHECK CONSTRAINT  FK_TBLCONTRATO_TBLCLIENTE

ALTER TABLE  TBLCONTRATO     ADD  CONSTRAINT  FK_TBLCONTRATO_TBLDUENO  FOREIGN KEY( ID_DUEÑO )
REFERENCES  TBLDUENO  ( ID_DUEÑO )

ALTER TABLE  TBLCONTRATO  CHECK CONSTRAINT  FK_TBLCONTRATO_TBLDUENO

ALTER TABLE  TBLCONTRATO     ADD  CONSTRAINT  FK_TBLCONTRATO_TBLRESPONSABLE  FOREIGN KEY( ID_RESPONSABLE )
REFERENCES  TBLRESPONSABLE  ( ID_RESPONSABLE )

ALTER TABLE  TBLCONTRATO  CHECK CONSTRAINT  FK_TBLCONTRATO_TBLRESPONSABLE

ALTER TABLE  TBLPAGO     ADD  CONSTRAINT  FK_TBLPAGOTBLCLIENTE  FOREIGN KEY( ID_ARRENDAMIENTO )
REFERENCES  TBLCLIENTE  ( ID_ARRENDATARIO )

ALTER TABLE  TBLPAGO   CHECK CONSTRAINT  FK_TBLPAGOTBLCLIENTE

ALTER TABLE  TBLPAGO      ADD  CONSTRAINT  FK_TBLPAGOTBLCONTRATO  FOREIGN KEY( COD_CONTRATO )
REFERENCES  TBLCONTRATO  ( COD_CONTRATO )

ALTER TABLE  TBLPAGO   CHECK CONSTRAINT  FK_TBLPAGOTBLCONTRATO

ALTER TABLE  TBLPAGO      ADD  CONSTRAINT  FK_TBLPAGOTBLPROPIEDAD  FOREIGN KEY( COD_CONTRATO )
REFERENCES  TBLPROPIEDAD  ( COD_PROPIEDAD )

ALTER TABLE  TBLPAGO   CHECK CONSTRAINT  FK_TBLPAGOTBLPROPIEDAD

ALTER TABLE  TBLPROPIEDAD     ADD  CONSTRAINT  FK__TBLPROPIE__ID_AR__7B5B524B  FOREIGN KEY( ID_ARRENDATARIO )
REFERENCES  TBLCLIENTE  ( ID_ARRENDATARIO )

ALTER TABLE  TBLPROPIEDAD  CHECK CONSTRAINT  FK__TBLPROPIE__ID_AR__7B5B524B

ALTER TABLE  TBLPROPIEDAD     ADD  CONSTRAINT  FK__TBLPROPIE__ID_DU__797309D9  FOREIGN KEY( ID_DUENO )
REFERENCES  TBLDUENO  ( ID_DUEÑO )

ALTER TABLE  TBLPROPIEDAD  CHECK CONSTRAINT  FK__TBLPROPIE__ID_DU__797309D9

ALTER TABLE  TBLPROPIEDAD     ADD  CONSTRAINT  FK__TBLPROPIE__ID_RE__787EE5A0  FOREIGN KEY( ID_RESPONSABLE )
REFERENCES  TBLRESPONSABLE  ( ID_RESPONSABLE )

ALTER TABLE  TBLPROPIEDAD  CHECK CONSTRAINT  FK__TBLPROPIE__ID_RE__787EE5A0


 --DESPUES DE LA CREACION DE LAS TABLAS CON SUS CORRESPONDIENTES REFERENCIAS SE LLENAN LAS TABLAS

 INSERT  TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA ) VALUES (1, N'JORGE PEREZ', 46, 999999999)

INSERT  TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA ) VALUES (2, N'ANIBAL RUIZ', 45, 888888888)

INSERT  TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA ) VALUES (3, N'JUAN GIL', 71, 555555555)

INSERT  TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA ) VALUES (4, N'DANIEL CAMPOS', 25, 100300000)

INSERT  TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA ) VALUES (5, N'ESTEBAN AGUIRRE', 35, 666666666)
-------------------------------------------------------------------------------

INSERT  TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA , NOMBRE , EDAD ) VALUES (1, 87878787, N'RESPONJARIO', 45)

INSERT  TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA , NOMBRE , EDAD ) VALUES (2, 63636363, N'JOSE MANUEL', 35)

INSERT  TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA , NOMBRE , EDAD ) VALUES (3, 12121212, N'ROSARIO', 30)

INSERT  TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA , NOMBRE , EDAD ) VALUES (4, 96969696, N'CAROLINA', 25)

INSERT  TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA , NOMBRE , EDAD ) VALUES (5, 15151515, N'DEISY', 19)
-------------------------------------------------------------------------------

INSERT  TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE , NUMERO_BIENES ) VALUES (1, 1000000, N'PEDRO', 3)

INSERT  TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE , NUMERO_BIENES ) VALUES (2, 1111111, N'MANUEL', 4)

INSERT  TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE , NUMERO_BIENES ) VALUES (3, 3333333, N'CESAR', 2)

INSERT  TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE , NUMERO_BIENES ) VALUES (4, 2222222, N'GLORIA', 1)

INSERT  TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE , NUMERO_BIENES ) VALUES (5, 5555555, N'ANGELICA', 7)
-------------------------------------------------------------------------------

INSERT  TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD , CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (1, N'JUAN', 21, N'SI', 1)

INSERT  TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD , CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (2, N'JOSE', 30, N'SI, RUTA=123131231', 2)

INSERT  TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD , CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (3, N'SERGIO', 18, N'AAAAAAAAAAAA', 3)

INSERT  TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD , CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (4, N'MARIA', 18, N'SI', 2)

INSERT  TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD , CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (5, N'MARIA JOSE', 18, N'SI, UBICADO EN ', 5)
-------------------------------------------------------------------------------

INSERT  TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE , ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ) VALUES (1, 1, 1, 1, 1, N'POBLADO', CAST(4587000 AS Numeric(18, 0)), CAST(70 AS Numeric(18, 0)))

INSERT  TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE , ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ) VALUES (2, 2, 2, 2, 2, N'BELLO', CAST(7894894 AS Numeric(18, 0)), CAST(50 AS Numeric(18, 0)))

INSERT  TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE , ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ) VALUES (3, 3, 3, 3, 3, N'POBLADO', CAST(848948 AS Numeric(18, 0)), CAST(80 AS Numeric(18, 0)))

INSERT  TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE , ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO , HABITACIONES , TIPO) VALUES (4, 1, 2, 1, 3, N'POBLADO', CAST(45870 AS Numeric(18, 0)), CAST(80 AS Numeric(18, 0)), 4, 'CASA')

INSERT  TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE , ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO , HABITACIONES , TIPO) VALUES (5, 2, 3, 3, 1, N'CASTILLA', CAST(45870 AS Numeric(18, 0)), CAST(80 AS Numeric(18, 0)), 7, 'CASA')

INSERT  TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE , ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO , HABITACIONES ) VALUES (6, 2, 1, 1, 1, 'calle 25 #12-12.', CAST(45870 AS Numeric(18, 0)), CAST(80 AS Numeric(18, 0)), 7)
-------------------------------------------------------------------------------

INSERT  TBLCONTRATO ( COD_CONTRATO , ID_RESPONSABLE , ID_DUEÑO , ID_ARRENDATARIO , COD_PROPIEDAD , PRECIO , FECHA_ARRIENDO) VALUES (1, 1, 1, 1, 1, 80000.0000, '2018-09-09')

INSERT  TBLCONTRATO ( COD_CONTRATO , ID_RESPONSABLE , ID_DUEÑO , ID_ARRENDATARIO , COD_PROPIEDAD , PRECIO , FECHA_ARRIENDO) VALUES (2, 2, 2, 2, 2, 100.0000, '2013-10-10')

INSERT  TBLCONTRATO ( COD_CONTRATO , ID_RESPONSABLE , ID_DUEÑO , ID_ARRENDATARIO , COD_PROPIEDAD , PRECIO , FECHA_ARRIENDO ) VALUES (3, 3, 3, 3, 3, 41651.0000,'2014-10-10')

INSERT  TBLCONTRATO ( COD_CONTRATO , ID_RESPONSABLE , ID_DUEÑO , ID_ARRENDATARIO , COD_PROPIEDAD , PRECIO , FECHA_ARRIENDO ) VALUES (4, 4, 4, 4, 4, 52311.0000,'2015-08-09')
-------------------------------------------------------------------------------

INSERT  TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO ,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(1,1,1,1,800.0000)

INSERT  TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO ,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(2, 2, 2, 2, 300.0000)

INSERT  TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO ,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(3, 3, 3, 3, 400.0000)

INSERT  TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO ,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(4, 1, 2, 6, 400.0000)

INSERT  TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO ,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(5, 1, 2, 6, 600.0000)

-------------------------------------------------------------------------------

--CONSULTAS CORRESPONDIENTES

--Mostrar los datos de las propiedades con número de habitaciones mayor que 3 y tiene un área mayor que 68 mts2 o son tipo casa.
SELECT * FROM TBLPROPIEDAD WHERE HABITACIONES > 3 AND (TAMAÑO > 68 OR TIPO='CASA')

--Mostrar los datos de los pagos generados por la propiedad con dirección calle 25 #12-12.
SELECT TBLPAGO.COD_PAGO, MONTO_PAGO, UBICACION FROM TBLPAGO JOIN TBLPROPIEDAD ON TBLPAGO.COD_PROPIEDAD = TBLPROPIEDAD.COD_PROPIEDAD WHERE UBICACION = 'calle 25 #12-12'

--Mostrar los datos de las propiedades arrendadas en fechas menores a 01/01/2016
SELECT TBLPROPIEDAD.*
FROM TBLPROPIEDAD
JOIN TBLDUENO
ON TBLPROPIEDAD.ID_DUENO = TBLDUENO.ID_DUEÑO 
JOIN TBLCONTRATO
ON TBLDUENO.ID_DUEÑO= TBLCONTRATO.ID_DUEÑO
WHERE TBLCONTRATO.FECHA_ARRIENDO < '01/01/2016'

--Mostrar los datos de clientes que han arrendado casas en el poblado y sus dueños son Jorge Pérez o Aníbal Ruiz
SELECT TBLCLIENTE.*
FROM TBLCLIENTE
JOIN TBLPROPIEDAD
ON TBLCLIENTE.ID_FIADOR = TBLPROPIEDAD.ID_ARRENDATARIO
JOIN TBLDUENO
ON TBLPROPIEDAD.ID_DUENO = TBLDUENO.ID_DUEÑO
WHERE TBLPROPIEDAD.UBICACION = 'POBLADO' AND (TBLDUENO.NOMBRE = 'Jorge Pérez' OR TBLDUENO.NOMBRE = 'Aníbal Ruiz')

lunes, 9 de noviembre de 2020

Identificando clases en una aplicación en C#

 ¿Qué son las clases y cual es la relación con la herencia?

Una "clase" es un elemento que actúa como una plantilla que define las características y comportamientos de una entidad. En el lenguaje de programacion C# podemos decir que todo es una "clase", ya que como podemos ver incluso el método principal "Main" está dentro de una "clase" y así se creó por defecto.

La relacion que tiene con la herencia, es la funcionalidad que tiene una clase definida, y que de esta se pueda derivar una nueva clase, con esto se busca que las clases puedan utilizar metodos que ya estan definidos en su clase "padre".

 

¿Qué ejemplos puede mostrar sobre clases en C#?

public class empresa

{

public string Nombre;

public float ingresos;

public int NumeroEmpleados;

 

public void clientes();

public void zona();

public void ventas();

}

 

public class Empleado

{

public string Nombre;

public int edad;

public int Identificacion;

 }

 

Identificacion de clase, diferencia en atributos propios, pero estos derivados de una linea similar y asociada.

 

¿Qué son los métodos de una clase?

 

 

Los metodos son subrutinas, esto indica que su codigo esta definido en una clase, con lo cual se puede indicar una sentencia propia, para llevar a cabo una accion por el metodo.

 

¿Qué diferencia encuentra entre un método, una función y un procedimiento?

 

Un metodo es una sentencia de instruccion en una clase.

Una funcion es una unidad de procesamiento a la cual se le puede asignar varios valores para que esta devuelva un valor al codigo que le hace el llamado.

Un procedimiento ejecuta el codigo, pero este no devuelve ningun valor al codigo.



Paradigma de la programación Orientada a Objetos (POO)



Los lenguajes de programación proporcionan mecanismos para implementar una filosofía o paradigma de programación. Un paradigma es una forma de entender y representar la realidad: un conjunto de teorías, estándares y métodos que, juntos, representan un modo de organizar el pensamiento, es decir, un modo de ver el mundo. Cada nuevo paradigma responde a una necesidad real de nuevas formas de afrontar problemas. A menudo un nuevo paradigma es creado como respuesta a las deficiencias de paradigmas anteriores.

Un paradigma de programación es una forma de conceptualizar en qué consiste la ejecución de un programa y cómo deben de estructurarse y organizarse las tareas que se llevaran a cabo en esa ejecución.

El paradigma orientado a objetos (OO) define los programas en términos de comunidades de objetos. Los objetos con características comunes se agrupan en clases (un concepto similar al de tipo abstracto de dato (TAD)). Los objetos son entidades que combinan un estado (es decir, datos) y un comportamiento (esto es, procedimientos o métodos). Estos objetos se comunican entre ellos para realizar tareas. Es en este modo de ver un programa donde este paradigma difiere del paradigma imperativo o estructurado, en los que los datos y los métodos están separados y sin relación. El paradigma OO surge para solventar los problemas que planteaban otros paradigmas, como el imperativo, con el objeto de elaborar programas y módulos más fáciles de escribir, mantener y reutilizar.

La programación orientada a Objetos, tiene un centro de multiplataforma que distinguen entre si, la variabilidad de usos, pero todos en complicidad de una misma orientación.

Entre los lenguajes que soportan el paradigma OO están Smalltalk, C++, Delphi (Object Pascal), Java y C#.

Mapa conceptual sobre programación orientada a objetos

 

Mapa conceptual sobre programación orientada a objetos


¿Cuales son los elementos que fundamentan la Programación Orientada a Objetos?

La programación orientada a objetos, esta sustentada por tres elementos fundamentales.

métodos, eventos y atributos. los métodos, son aquellas funciones que permiten efectuar el objeto y que nos rinden algún tipo de servicio durante el transcurso del programa. Determinan a su vez como va a responder el objeto cuando recibe el mensaje.

Eventos, Son aquellas acciones mediante las cuales el objeto reconoce que esta interactuando con el. De esta forma el objeto se activa y responde al evento según lo programado en su código.

Atributos. Características que aplican al objeto solo en el caso en que el sea visible en pantalla por el usuario; entonces sus atributos son el aspecto que refleja, tanto en color, tamaño, posición, si esta o no habilitado.

¿Cual es el mayor beneficio del concepto de Clase?

Las clases en la programación orientada a objetos, son un pilar fundamental, ya que funcionan como una planilla de creación pre definida, designando los atributos, con los cuales se pueden apropiar datos, variables y parametros para la asignación de objetos, en base a lo que dispone la misma dentro de la función.

¿Cómo interpreta el término reutilización de código en Programación Orientada a Objetos?

 

Una de las características que permite la programación orientada a objetos, es la reutilización del código, ya que este comportamiento y las técnicas que garantizan que, una parte o la totalidad de un programa existente, se pueda emplear en la construcción de otro programa. De esta forma se aprovecha el trabajo anterior, se economiza tiempo, y se reduce la redundancia.

¿Qué significa para usted el Polimorfismo?

El poliformismo puede representarse como la función, en que varios objetos diferentes, se les puede enviar el mismo mensaje y a su vez pueden dar respuesta del mismo.