1.
void tabla_del_8 () {
for (a=1; a<=15; a++){
{ r=8*h;
cout<<"8x"<<h<<"="<<r<<"\n";
}
2.
for (f=1; f<=10; f++)
for (h=1; h<=10; h++)
{ r=f*h;
cout<<f<<"x"<<h<<"="<<r<<"\n";
}
3.
a=1;
cin>>n
for ()=n; j>=1; j--)
{
a=a*n;
5=1*5
20=*4
4.
for (i=1; i<=10; i++)
{ n=n+5
5=0+5
10=5+5
15=10+5
}
lunes, 20 de mayo de 2019
viernes, 17 de mayo de 2019
Ciclos para imprimir
Ciclo para imprimir la tabla de multiplicar de 8
for (h=1; h<15; h++)
{
r=8*h
cout<<"8x"<<h<<"="<<r<<"\n";
}
Imprimir el factorial de un numero elegido por el usuario
for (f=1; f<=10; f++)
for (h=1; h<=10; h++)
{
r=f*h
cout<<f<<"x"<<h<<"="<<r<<"\h";
Factorial
a=1;
cin>>n
for (j=n; j>=1; j--)
{
a=a*n;
5=1*5;
20=5*4;
Función donde el usuario ingrese un numero y se imprima la tabal de multiplicar
for ()b=1; b<=10; b++){ r=a*b
{
cout<<a<<"x"<<b<<"="<<r<< endl;}
}
for (h=1; h<15; h++)
{
r=8*h
cout<<"8x"<<h<<"="<<r<<"\n";
}
Imprimir el factorial de un numero elegido por el usuario
for (f=1; f<=10; f++)
for (h=1; h<=10; h++)
{
r=f*h
cout<<f<<"x"<<h<<"="<<r<<"\h";
Factorial
a=1;
cin>>n
for (j=n; j>=1; j--)
{
a=a*n;
5=1*5;
20=5*4;
Función donde el usuario ingrese un numero y se imprima la tabal de multiplicar
for ()b=1; b<=10; b++){ r=a*b
{
cout<<a<<"x"<<b<<"="<<r<< endl;}
}
Parametros
Void areatriangulo (float g, float f)
int main ()
{
float area;
area= (g*f)/2;
cout << "el area es"<< area;
}
{
cin>>b;
cin>>h;
area triangulo (b,h);
}
int main ()
{
float area;
area= (g*f)/2;
cout << "el area es"<< area;
}
{
cin>>b;
cin>>h;
area triangulo (b,h);
}
Procedimientos para conectar
- Para poder establecer una conexión de la base de datos a visual tenemos dos distintas forma de hacerlo.
- A continuación se muestran:
- 1ra Forma :
- Para iniciar la conexión de la base de datos a visual tenemos que tener un controlador el cual se encuentra pestaña proyectos, componentes.
- Luego nos aparece una ventana la cual nos va a permitir ingresar el control que nos va a permitir ingresar la base de datos al programa de visual Basic.
- Este control se llama Microsoft ADO data control 6.0 (OLEDB). Lo seleccionamos y le damos ACEPTAR.
- Controlador ADO , luego de que nos aparezca nuestro controlador en el formulario lo seleccionamos y empezamos por configurar la propiedad Conecctionstring.
- Le damos clic en la propiedad Conecctionstring y nos aparece una ventana la cual nos indica que empezaremos a usar una cadena de conexión y en el botón generar le damos clic.
- Aquí nos aparece una ventana con el nombre de vínculos de datos y en la pestaña proveedor seleccionamos la opción. Microsoft OLE DB Provider for ODBC Drivers.
- Y le damos clic en siguiente.
- En la pestaña conexión seleccionamos la opción usar cadena de conexión y le damos generar.
- nos aparece otra ventana con el nombre de seleccionar origen de datos y en la pestaña origen de datos de archivo en el botón nuevo le damos clic.
- En esta otra ventana con el nombre de crear nuevo origen de datos seleccionamos un ordenador para el que desee establecer un origen de datos, con el nombre de Microsoft Access driver (*.mdb, *.accdb) y le damos clic en siguiente.
- En la siguiente ventana en el botón examinar le damos clic y buscamos nuestra base de datos.
- Buscamos nuestra base de datos, la seleccionamos y le damos guardar.
- En esta última ventana al darle clic en finalizar se creara el origen de datos que acaba de configurar. Luego nos muestra una ventana con el nombre de configurar ODBC Microsoft Access, y le damos clic en el botón seleccionar.
- Aquí seleccionamos la base de datos le damos clic dos veces en el botón aceptar. NOMBRE DEL DSN
- Seleccionamos el nombre del DSN y le damos aceptar.
- Luego seleccionamos el control adodc y en la propiedad recordsource en tipos de comando seleccionamos 2-adCmdTable y también seleccionamos la tabla y le damos clic en aceptar.
- Seleccionamos todos los TEXTBOX, y en la propiedad DATA SOURCE seleccionamos adodc 1.
- Luego en cada TextBox en la propiedad DATAFIELD seleccionamos el campo que aparecerá en esa caja.
- Aquí agregamos los command button que nos permite ingresar y eliminar información en nuestra base de datos.
- Finalmente le damos doble clic en los botones ADICIONAR Y ELIMINAR e introducimos los códigos que aparecen en el pantallazo el primero es para adicionar y el segundo para eliminar.
- Y por ultimo aquí tenemos ya la base de datos conectada al programa de visual funcionando.
2da Forma:
- Pasos para conectar una base de datos de Access 2007 con visual BASIC 6.0
- Primero creamos la base de datos
- Luego abrimos visual BASIC<br />Clic en abrir
- Luego ingresamos una label por cada campo insertado en la base de datos.<br />label
- Luego ingresamos una caja de texto y la copiamos (al a ser esto nos sale un mensaje que nos dice: ya existe un control llamado text 1; desea crear una matriz) le damos “si” luego la copiamos tres veces más.<br />text1
- Luego agregamos el control adodc1; para aquello damos clic derecho en la barra de herramientas –componentes-Microsoft ADO data control 6.0 (OLEDB)-aceptar.<br />componentes-Microsoft ADO data control 6.0 (OLEDB
- Luego agregamos dicho control (control adodc1) al formulario<br />control adodc1
- Luego seleccionamos el control adodc1 y le agregamos las siguientes propiedades: Conecctionstring<br /> Usar cadena de conexión – generar<br />Pestaña PROVEEDOR
- Microsoft OLE DB Provider for ODBC Drivers
- Pestaña CONEXION<br />generar<br />Usar la cadena de conexión<br />Pestaña CONEXION Usar la cadena de conexión – generar
- Nombre de DSN<br />nuevo
- Microsoft Access driver<br />siguiente<br />
- examinar
- “Buscar la Base de Datos”<br />guardar
- siguiente
- finalizar
- seleccionar
- Buscar la Base de Datos”<br />aceptar
- aceptar
- aceptar
- Seleccionar el origen de datos
- En este caso esta seleccionado el origen de dato como adcmd Tble (por que lo que estamos conectando es tabla)Aquí selecciona la tabla que desea conectar
- Luego seleccionamos los text y le aplicamos la propiedad datasource-adodc1.
- Propiedad datasource-adodc1.<br />text
- Luego seleccionamos los text, nos ubicamos en la propiedad data fiel y aplicamos el nombre del campo correspondiente a cada text según cada label.
- Label<br />propiedad<br />text<br />
- Aclaración del punto anterior<br />propiedad<br />label<br />text<br />Nombres que se le aplican a los text según cada label<br />
- Ya puedes correr tu programa, si has seguido los pasos correctamente entonces tu trabajo va así<br />Clic aquí para pasar al dato siguiente<br />
- Luego puedes agregar un menús y agregarle códigos para añadir y/o eliminar datos de tu base de datos<br />En el siguiente trabajo se siguieron estos pasos correctamente y además se les agregaron códigos para añadir y eliminar datos de tu base de datos, además se le aplicaron colores y otras cosas para personalizarlo.
miércoles, 8 de mayo de 2019
Programa 6: Vectores 6
1.
void imprimir_en_vector ()
{
double datos [20];
for (a=0; a<=19; a++)
{
cout<<a
2. }
void guardar_multiplos_de_5 ()
{
int vector [25];
for (a=0; a<=24 a+5)
{
cout<<a
}
3.
void imprimir_en_vector ()
{
int vec [45]
for (a=44; a>=0; a--)
{
cout<<a
}
}
4.
void imprimir_en_vectores ()
{
int int [30]
for (a=4; a<=29; a=a+2)
{cout<<vec [a];
}
}
5.
void_imprimir_en_vector ()
float vector [50]
for (a=35; a>0; a--)
{
cout<<vector [a];
}
}
6.
void imprimir_en_vector ()
{
int int [75]
for (a>50; a<=80; a+-)
{
cout<<a;
}
void imprimir_en_vector ()
{
double datos [20];
for (a=0; a<=19; a++)
{
cout<<a
2. }
void guardar_multiplos_de_5 ()
{
int vector [25];
for (a=0; a<=24 a+5)
{
cout<<a
}
3.
void imprimir_en_vector ()
{
int vec [45]
for (a=44; a>=0; a--)
{
cout<<a
}
}
4.
void imprimir_en_vectores ()
{
int int [30]
for (a=4; a<=29; a=a+2)
{cout<<vec [a];
}
}
5.
void_imprimir_en_vector ()
float vector [50]
for (a=35; a>0; a--)
{
cout<<vector [a];
}
}
6.
void imprimir_en_vector ()
{
int int [75]
for (a>50; a<=80; a+-)
{
cout<<a;
}
Programa 5: Areas de figuras con ciclo
#include <iostream>
#include <windows.h>
using namespace std;
vold a_triangulo ();
vold a_circulo ();
vold a_cuadrado ();
vold a_rectangulo ();
vold a_cilindro ();
vold a_cubo();
int w,x,z;
int main (){
do{
a_triangulo ();
a_circulo ();
a_cuadrado ();
a_rectangulo ();
a_cilindro ();
a_cubo();
cout<<"para salir escriba (2)\n";
cout<<"para regresar esriba (1)\n";
cin>>w;
}while (w==1);
system ("pause");
}
vold a_triangulo (){
float a,b,c;
cin>>a;
cin>>b;
c=(a*b)/2;
cout<<"resultado"<<c<<endl;
}
vold a_circulo (){
float d,e,f;
cin>>d;
e=pow(d);
f=c*3.1416;
cout<<"resultado"<<f<<endl;
}
vold a_cuadrado (){
float g,h;
cin>>g;
h= g*g;
cout<<"resultado"<<y<<endl;
}
vold a_rectangulo (){
float i,j,k;
cin>>i;
cin>>j;
k=i*j;
cout<<"resultado"<<k<<endl;
}
vold a_cilindro (){
float l,m,n,o,p;
cin>>l;
cin>>m;
n=pow(1);
o=n*3.1416;
p=o*l;
cout<<"resultado"<<p<<endl;
}
vold a_cubo(){
float q,r;
cin>>q;
r=q*q*q;
cout<<"resultado"<<r<<endl;
}
system ("pause");
}
#include <windows.h>
using namespace std;
vold a_triangulo ();
vold a_circulo ();
vold a_cuadrado ();
vold a_rectangulo ();
vold a_cilindro ();
vold a_cubo();
int w,x,z;
int main (){
do{
a_triangulo ();
a_circulo ();
a_cuadrado ();
a_rectangulo ();
a_cilindro ();
a_cubo();
cout<<"para salir escriba (2)\n";
cout<<"para regresar esriba (1)\n";
cin>>w;
}while (w==1);
system ("pause");
}
vold a_triangulo (){
float a,b,c;
cin>>a;
cin>>b;
c=(a*b)/2;
cout<<"resultado"<<c<<endl;
}
vold a_circulo (){
float d,e,f;
cin>>d;
e=pow(d);
f=c*3.1416;
cout<<"resultado"<<f<<endl;
}
vold a_cuadrado (){
float g,h;
cin>>g;
h= g*g;
cout<<"resultado"<<y<<endl;
}
vold a_rectangulo (){
float i,j,k;
cin>>i;
cin>>j;
k=i*j;
cout<<"resultado"<<k<<endl;
}
vold a_cilindro (){
float l,m,n,o,p;
cin>>l;
cin>>m;
n=pow(1);
o=n*3.1416;
p=o*l;
cout<<"resultado"<<p<<endl;
}
vold a_cubo(){
float q,r;
cin>>q;
r=q*q*q;
cout<<"resultado"<<r<<endl;
}
system ("pause");
}
jueves, 11 de abril de 2019
Procedimiento para conectar VB con una base de datos
Resumen
En este artículo se describe cómo utilizar ADO.NET para conectar a una base de datos y ejecutar un comando (como UPDATE, INSERT o DELETE) utilizando una aplicación de consola de Visual Basic .NET.
volver al principio
Con ADO, puede ejecutar comandos a través de los objetos Command, Connection o Recordset. En ADO.NET, sólo los objetos Command (SqlCommand u OleDbCommand) ejecutan comandos.
Para ejecutar un comando, siga estos pasos:
volver al principio
Requisitos
En la lista siguiente se describen el hardware, el software, la infraestructura de red y los Service Pack requeridos:- Microsoft Windows XP, Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server o Microsoft Windows NT 4.0 Server
- Microsoft Visual Studio .NET
- Terminología de base de datos
- Lenguaje de consulta estructurado (SQL)
Cómo ejecutar un comando
Los comandos se emiten en las bases de datos para realizar acciones en almacenes de datos e incluir cualquier instrucción que se pueda emitir en una base de datos. Puede utilizar las clases OleDbCommand o SqlCommand para obtener un comando para su almacén de datos; OleDbCommand puede ser específica del almacén de datos. En este artículo se demuestran la clase SqlClient (para conectar con un equipo que ejecute Microsoft SQL Server) y la clase OleDb (para cualquier base de datos que tenga un controlador OLE DB u ODBC disponible) dentro de ADO.NET. Sin embargo, el código generalmente es el mismo para ambas.Con ADO, puede ejecutar comandos a través de los objetos Command, Connection o Recordset. En ADO.NET, sólo los objetos Command (SqlCommand u OleDbCommand) ejecutan comandos.
Para ejecutar un comando, siga estos pasos:
- Siga estos pasos para crear una nueva aplicación de consola en Visual Basic .NET.
- Inicie Visual Studio .NET
- En el menú Archivo, seleccione Nuevo y haga clic en Proyecto.
- En el cuadro de diálogo Nuevo proyecto, haga clic en la opción Proyectos de Visual Basic de Tipos de proyecto y, después, haga clic en la opción Aplicación de consola de Plantillas.
- Asegúrese de que el proyecto contiene una referencia al espacio de nombres System.Data y, si no es así, agregue una.
- Utilice la instrucción Imports de los espacios de nombres System y System.Data para que no tenga que calificar las declaraciones de estos espacios de nombres más adelante en el código. También puede incluir System.Data.SqlClient o System.Data.OleDb, dependiendo de cuál use.
Imports System Imports System.Data Imports System.Data.SqlClient - Para poder crear una conexión a una base de datos, debe tener una cadena de conexión. Las cadenas de conexión contienen toda la información que necesita para establecer una conexión a bases de datos, incluido el nombre del servidor, el nombre de la base de datos, el identificador de usuario y la contraseña. Por ejemplo, los puntos de la cadena de conexión siguientes para un equipo local que ejecuta SQL Server con una contraseña segura para la cuenta <nombreDeUsuario>:
Para las conexiones OleDb:Para las conexiones de SqlClient:Provider=SQLOLEDB.1;User ID=<username>;Password=<strong password>;Initial Catalog=pubs;Data Source=(local)NOTA: si necesita más ayuda al determinar la cadena de conexión de su base de datos, busque "ConnectionString" en Microsoft Developer Network (MSDN) Library en el siguiente sitio web de Microsoft:User ID=<username>;Password=<strong password>;Initial Catalog=pubs;Data Source=(local) - Visual Studio crea un módulo y un procedimiento Main() vacío. Declare una variable de cadena y almacene la cadena de conexión adecuada para su base de datos en este procedimiento:
Sub Main() Dim sConnectionString As String _ = "User ID=<username>;Password=<strong password>;Initial Catalog=pubs;Data Source=(local)" End Sub - Con esta cadena de conexión, cree un nuevo objeto OleDbConnection o SqlConnection y llame a su método Open para establecer una conexión a la base de datos:
Dim objConn As New SqlConnection(sConnectionString) objConn.Open() - Cree un objeto SqlCommand u OleDbCommand, y pase el comando que desee ejecutar y el objeto de conexión que creó en el paso anterior. El código de ejemplo siguiente pasa la instrucción INSERT:
Dim sSQL As String = "INSERT INTO Employee " & _ "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date)" & _ "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', " & _ "10, 82,'0877','2001-01-01')" Dim objCmd As New SqlCommand(sSQL, objConn) - Después de crear el objeto SqlCommand u OleDbCommand, puede llamar al método ExecuteNonQuery para ejecutar el comando que representa. ExecuteNonQuery está diseñado para los comandos que no devuelven ningún resultado (como DELETE, APDATE y las instrucciones INSERT). Si la instrucción Execute se ejecuta sin desencadenar una excepción (vea el código siguiente), el comando se ha ejecutado correctamente en la base de datos.
objCmd.ExecuteNonQuery() - Guarde el proyecto. En el menú Depurar, haga clic en Iniciar para ejecutar el comando con la base de datos.
lunes, 11 de marzo de 2019
Programa 4: Área de figuras
#include <iostream>
#include <windows.h>
int w;
float a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;
using namespace std;
int main ()
{
cout<<"Que area desea sacar\n";
cout<<"Triangulo (1)\n";
cout<<"Circulo (2)\n";
cout<<"Cuadrado (3)\n";
cout<<"Rectangulo (4)\n";
cout<<"Cilindro (5)\n";
cout<<"Cubo (6)\n";
cout<<"salir (7)\n";
cin>>a;
switch (w)
{
case 1:
cout<<"ingrese la base\n";
cin>>a;
cout<<"ingrese la altura\n";
cin>>b;
c=(a*b)/2;
cout<<"Resultado:"<<c<<endl;
break;
case 2:
cout<<"ingrese el radio\n";
cin>>d;
e=d*d;
f=e*3.1416;
cout<<"Resultado:"<<f<<endl;
break;
case 3:
cout<<"ingrese un lado\n";
cin>>g;
h=g*g;
cout<<"Resultado:"<<h<<endl;
break;
case 4:
cout<<"ingrese la base\n";
cin>>i;
cout<<"ingrese la altura\n";
cin>>j;
k=i*j;
cout<<"Resultado:"<<k<<endl;
break;
case 5:
cout<<"ingrese el radio\n";
cin>>l;
cout<<"ingrese la altura\n";
cin>>m;
n=l*l;
o=
cout<<"Resultado:"<<k<<endl;
break;
}
system ("pause");
}
#include <windows.h>
int w;
float a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;
using namespace std;
int main ()
{
cout<<"Que area desea sacar\n";
cout<<"Triangulo (1)\n";
cout<<"Circulo (2)\n";
cout<<"Cuadrado (3)\n";
cout<<"Rectangulo (4)\n";
cout<<"Cilindro (5)\n";
cout<<"Cubo (6)\n";
cout<<"salir (7)\n";
cin>>a;
switch (w)
{
case 1:
cout<<"ingrese la base\n";
cin>>a;
cout<<"ingrese la altura\n";
cin>>b;
c=(a*b)/2;
cout<<"Resultado:"<<c<<endl;
break;
case 2:
cout<<"ingrese el radio\n";
cin>>d;
e=d*d;
f=e*3.1416;
cout<<"Resultado:"<<f<<endl;
break;
case 3:
cout<<"ingrese un lado\n";
cin>>g;
h=g*g;
cout<<"Resultado:"<<h<<endl;
break;
case 4:
cout<<"ingrese la base\n";
cin>>i;
cout<<"ingrese la altura\n";
cin>>j;
k=i*j;
cout<<"Resultado:"<<k<<endl;
break;
case 5:
cout<<"ingrese el radio\n";
cin>>l;
cout<<"ingrese la altura\n";
cin>>m;
n=l*l;
o=
cout<<"Resultado:"<<k<<endl;
break;
}
system ("pause");
}
Programa 3: Nivel de estudios
#include <iostream>
#include <windows.h>
int a,b,c,d;
using namespace std;
int main ()
{
cout<<"que edad tienes\n";
cin>>a;
if (a>=1 && a<=2){
cout<<"tu nivel es guarderia\n";
}
if (a>=3 && a<=5){
cout<<"tu nivel es kinder\n";
}
if (a>=6 && a<=9){
cout<<"tu nivel es escuela\n";
}
if (a>=10 && a<=15){
cout<<"tu nivel es secundaria\n";
}
if (a>=16 && a<=19){
cout<<"tu nivel es preparatoria\n";
}
if (a>=20 && a<=25){
cout<<"tu nivel es universidad\n";
}
system("pause");
}
#include <windows.h>
int a,b,c,d;
using namespace std;
int main ()
{
cout<<"que edad tienes\n";
cin>>a;
if (a>=1 && a<=2){
cout<<"tu nivel es guarderia\n";
}
if (a>=3 && a<=5){
cout<<"tu nivel es kinder\n";
}
if (a>=6 && a<=9){
cout<<"tu nivel es escuela\n";
}
if (a>=10 && a<=15){
cout<<"tu nivel es secundaria\n";
}
if (a>=16 && a<=19){
cout<<"tu nivel es preparatoria\n";
}
if (a>=20 && a<=25){
cout<<"tu nivel es universidad\n";
}
system("pause");
}
Programa 2: Numero mayor a menor
#include <iostream>
#include <windows.h>
int a,b,c,d;
using namespace std;
int main ()
{
cout<<"ingrese numero uno\n";
cin>>a;
cout<<"ingrese numero uno\n";
cin>>b;
if (a>b)
{
cout<<"el numero es mayor\n"<<a<<endl;
cout<<"el numero es menor\n"<<b<<endl;
}
if (a<b)
{
cout<<"el numero dos es mayor\n"<<b<<endl;
cout<<"el numero uno es menor\n"<<a<<endl;
}
else if (a==b)
{
cout<<"los dos numeros son iguales\n";
}
system ("pause");
}
Programa 1: Suma de dos numeros
#include <iostream>
#include <windows.h>
int a,b,c,d;
using namespace std;
int main ()
{
cout<<"ingrese el primer numero\n";
cin>>a;
cout<<"ingrese el segundo numero\n";
cin>>b;
c=a+b;
cout<<"resultado:"<<c<<endl;
system ("pause");
}
martes, 5 de marzo de 2019
Diagramas UML
¿Que son los diagramas uml?
¿Qué es UML?
El Lenguaje Unificado de Modelado (UML) fue creado para forjar un lenguaje de modelado visual común y semántica y sintácticamente rico para la arquitectura, el diseño y la implementación de sistemas de software complejos, tanto en estructura como en comportamiento. UML tiene aplicaciones más allá del desarrollo de software, p. ej., en el flujo de procesos en la fabricación.
Es comparable a los planos usados en otros campos y consiste en diferentes tipos de diagramas. En general, los diagramas UML describen los límites, la estructura y el comportamiento del sistema y los objetos que contiene.
UML no es un lenguaje de programación, pero existen herramientas que se pueden usar para generar código en diversos lenguajes usando los diagramas UML. UML guarda una relación directa con el análisis y el diseño orientados a objetos.
Diagrama de Clases
Volver
Los diagramas de clases describen la estructura estática de un sistema.
Las cosas que existen y que nos rodean se agrupan naturalmente en
categorías. Una clase es una categoría o grupo de cosas que tienen
atributos (propiedades) y acciones similares. Un ejemplo puede ser la
clase “Aviones” que tiene atributos como el “modelo de avión”, “la
cantidad de motores”, “la velocidad de crucero” y “la capacidad de carga
útil”. Entre las acciones de las cosas de esta clase se encuentran:
“acelerar”, “elevarse”, “girar”, “descender”, “desacelerar”.
Un rectángulo es el símbolo que representa a la clase, y se divide en
tres áreas. Un diagrama de clases está formado por varios rectángulos
de este tipo conectados por líneas que representan las asociaciones o
maneras en que las clases se relacionan entre si.
Clase Abstracta
Las clases se representan con rectángulos
divididos en tres áreas: la superior
contiene el nombre de la clase, la central
contiene los atributos y la inferior las
acciones.
Clase Aviones
En el área superior figura el nombre
de la clase que utilizamos como ejemplo,
en la central están sus atributos y en
la inferior las acciones que ella realiza.
Note que las acciones llevan paréntesis al
final del nombre dado que las mismas
son funciones y por lo tanto devuelven un
valor.
Nombre de Clase
atributo: Tipo
/ atributo Derivado
operación( )
Aviones
modelo de avión
cantidad de motores
velocidad de crucero
carga útil
acelerar ( )
elevarse ( )
girar ( )
descender ( )
desacelerar ( )
Cátedra de Proyecto Diagramas del UML
Asociaciones
Las asociaciones son las que representan
a las relaciones estáticas entre las clases.
El nombre de la asociación va por sobre o
por debajo de la línea que la representa.
Una flecha rellena indica la dirección de la
relación. Los roles se ubican cerca del
final de una asociación. Los roles
representan la manera en que dos clases
se ven entre ellas. No es común el
colocar ambos nombres, el de la
asociación y el de los roles a la vez.
Cuando una asociación es calificada, el
símbolo correspondiente se coloca al final
de la asociación, contra la clase que hace
de calificador.
Multiplicidad
Las notaciones utilizadas para señalar la
multiplicidad se colocan cerca del final de
una asociación. Estos símbolos indican el
número de instancias de una clase
vinculadas a una de las instancias de la
otra clase. Por ejemplo, una empresa
puede tener uno o más empleados, pero
cada empleado trabaja para una sola
empresa solamente.
Asociación Tripartita
Diagrama de Objetos
Volver
Los Diagramas de Objetos están vinculados con los Diagramas de Clases. Un
objeto es una instancia de una clase, por lo que un diagrama de objetos puede
ser visto como una instancia de un diagrama de clases. Los diagramas de
objetos describen la estructura estática de un sistema en un momento
particular y son usados para probar la precisión de los diagramas de clases.
Nombre de los objetos
Cada objeto es representado como un
rectángulo, que contiene el nombre del objeto y
su clase subrayadas y separadas por dos
puntos.
Atributos
Como con las clases, los atributos se listan en
un área inferior. Sin embargo , los atributos de
los objetos deben tener un valor asignado.
Nombre Objeto : Clase
Atributo tipo = ´Valor´
Atributo tipo = ´Valor´
Diagrama de Casos de Uso
Volver
Un caso de uso es una descripción de las acciones de un sistema desde el
punto de vista del usuario. Es una herramienta valiosa dado que es una
técnica de aciertos y errores para obtener los requerimientos del sistema,
justamente desde el punto de vista del usuario.
Los diagramas de caso de uso modelan la funcionalidad del sistema
usando actores y casos de uso. Los casos de uso son servicios o
funciones provistas por el sistema para sus usuarios.
Sistema
El rectángulo representa los límites del
sistema que contiene los casos de uso.
Los actores se ubican fuera de los límites
del sistema.
Casos de Uso
Se representan con óvalos. La etiqueta
en el óvalo indica la función del sistema.
Actores
Los actores son los usuarios de un
sistema.
Diagrama de Estados
Volver
En cualquier momento, un objeto se encuentra en un estado particular, la
luz está encendida o apagada, el auto en movimiento o detenido, la
persona leyendo o cantando, etc. . El diagrama de estados UML captura
esa pequeña realidad.
Estado
El estado representa situaciones durante
la vida de un objeto. Se representa con
un rectángulo que tiene sus esquinas
redondeadas.
Transición
Una flecha representa el pasaje entre
diferentes estados de un objeto. Se
etiqueta con el evento que lo provoca y
con la acción resultante.
Estado Inicial
Estado Final
Diagrama de Secuencias
Volver
Los diagramas de clases y los de objetos representan información
estática. No obstante, en un sistema funcional, los objetos interactúan
entre sí, y tales interacciones suceden con el tiempo. El diagrama de
secuencias UML muestra la mecánica de la interacción con base en
tiempos.
Rol de la Clase
El rol de la clase describe la manera en que
un objeto se va a comportar en el contexto.
No se listan los atributos del objeto.
Activación
Los cuadros de activación representan el
tiempo que un objeto necesita para
completar una tarea.
Objeto : Clase
Activaciones
Objeto:Clases Objeto:Clases
Cátedra de Proyecto Diagramas del UML
Mensajes
Los mensajes son flechas que representan
comunicaciones entre objetos. Las medias
flechas representan mensajes asincrónicos.
Los mensajes asincrónicos son enviados
desde un objeto que no va a esperar una
respuesta del receptor para continuar con
sus tareas. .
Líneas de Vida
Las líneas de vida son verticales y en línea
de puntos, ellas indican la presencia del
objeto durante el tiempo.
Mensajes
Objeto:Clases Objeto:Clases
Flecha Tipo de mensaje
Simple
Sincrónico
Asincrónico
Time out
Rechazado
Líneas de Vida
Objeto:Clase Objeto:Clase
Cátedra de Proyecto Diagramas del UML
Destrucción de Objetos
Los objetos pueden ser eliminados
tempranamente usando una flecha
etiquetada "<>" que apunta a
una X.
Loops
Una repetición o loop en un diagrama de
secuencias, es representado como un
rectángulo. La condición para abandonar el
loop se coloca en la parte inferior entre
corchetes [ ].
jueves, 28 de febrero de 2019
Constructores y destructores
CONSTRUCTORES Y DESTRUCTORES
¿Que es un constructor en c#?
Constructores en C#
Cada vez que se crea una clase o estructura, se llama a su constructor. Una clase o estructura puede tener varios constructores que toman argumentos diferentes. Los constructores permiten al programador establecer valores predeterminados, limitar la creación de instancias y escribir código flexible y fácil de leer.
En C# podemos definir un método que se ejecute inicialmente y en forma automática. Este método se lo llama constructor.
El constructor tiene las siguientes características:
- Tiene el mismo nombre de la clase.
- Es el primer método que se ejecuta.
- Se ejecuta en forma automática.
- No puede retornar datos.
- Se ejecuta una única vez.
- Un constructor tiene por objetivo inicializar atributos.
Sintaxis de un Constructor en C#
Modificador NombredelaClase (Parámetros)
{
Instrucciones
}
Veamos un Ejemplo de un constructor en C#
using System;
namespace constructores
{
class EjConstructor
{
int a;
int b;
//declaramos el constructor
public EjConstructor(int x, int y)
{
a = x;
b = y;
}
public int Suma()
{
return a + b;
}
public int resta()
{
return a - b;
}
class Principal
{
static void Main(string[] args)
{
//creamos objeto de la clase y le pasamos los parametros al constructor
EjConstructor obj = new EjConstructor(10, 20);
Console.WriteLine("La suma es: "+obj.Suma());
Console.WriteLine("La resta es: "+obj.resta());
Console.ReadKey();
}
}
}
}
Ejercicios Resueltos de Constructores en C#
Ejemplo 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaConstructor
{
class Operarios
{
private int[] sueldos;
public Operarios()
{
sueldos = new int[5];
for (int f = 0; f < sueldos.Length; f++)
{
Console.Write("Ingrese el sueldo "+(f+1)+": ");
string linea = Console.ReadLine();
sueldos[f] = int.Parse(linea);
}
}
public void Imprimir()
{
Console.WriteLine("Los Sueldos Ingresados.");
for (int f = 0; f < sueldos.Length; f++)
{
Console.WriteLine(sueldos[f]);
}
Console.ReadKey();
}
static void Main(string[] args)
{
Operarios op = new Operarios();
op.Imprimir();
}
}
}
Explicación:
Como la clase se llama Operarios el constructor tiene el mismo nombre, no disponemos la palabra clave void ya que el constructor no puede retornar datos.
La ventaja de plantear un constructor en lugar de definir un método con cualquier nombre es que se llamará en forma automática cuando se crea un objeto de esta clase:
Operarios op = new Operarios();
Cuando se crea el objeto op se llama al método constructor.
Finalmente llamamos al método imprimir:
op.Imprimir();
Ejemplo 2
Plantear una clase llamada Alumno y definir como atributos su nombre y su edad. En el constructor realizar el ingreso de datos. Definir otros dos métodos para imprimir los datos ingresados y un mensaje si es mayor o no de edad (edad >=18)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaConstructor
{
class Alumno
{
private string nombre;
private int edad;
public Alumno()
{
Console.Write("Ingrese nombre:");
nombre = Console.ReadLine();
Console.Write("Ingrese edad:");
string linea = Console.ReadLine();
edad = int.Parse(linea);
}
public void Imprimir()
{
Console.WriteLine("Nombre:" + nombre);
Console.WriteLine("Edad:" + edad);
}
public void EsMayorEdad()
{
if (edad >= 18)
{
Console.Write(nombre + " es mayor de edad.");
}
else
{
Console.Write(nombre + " no es mayor de edad.");
}
}
static void Main(string[] args)
{
Alumno alumno1 = new Alumno();
alumno1.Imprimir();
alumno1.EsMayorEdad();
Console.ReadKey();
}
}
}
Al ejecutar el código muestra el siguiente resultado
En la main el constructor se llama en forma automática cuando creamos un objeto de la clase Alumno:
static void Main(string[] args)
{
Alumno alumno1 = new Alumno();
Los otros dos métodos deben llamarse por su nombre y en el orden que necesitemos:
alumno1.Imprimir();
alumno1.EsMayorEdad();
¿Que es un destructor en c#?
DESTRUCTOR EN C#
Un destructor es un método que se llama antes de finalizar la vida de un objeto. Se puede utilizar para afianzar ciertas operaciones que queremos que se realicen antes de destruir un objeto. Por ejemplo, se podría usar el destructor para asegurarnos que se cierra una conexión a una base de datos, o que se cierra un archivo abierto del objeto en cuestion.
El formato general de un destructor es el siguiente:
~nombre_clase() {
// Código del destructor.
}
La tilde ~ se puede representar teniendo pulsada la tecla ALT y escribiendo a continuación los número 126.nombre_clase es el nombre de la clase, evidentemente.
CLR - Garbage Collection
Una de las responsabilidades del CLR (Common Language Runtime) es la de proporcionar la gestión automática de la duración completa de los objetos en el entorno .NET FrameWork. Vaya... ¿y qué significa esto? Bien. Como se habrá podido observar, cuando creamos un objeto a partir de una clase, utilizamos la palabra clave new. Esta palabra lo que hace es asignar dinámicamente memoria para el nuevo objeto, devolviendo una referencia para poder encontrarlo. Hasta aquí todo normal. Pero si os fijáis, en ningún momento he incluido en los ejemplos escritos una instrucción para desalojar la memoria, esto es, no he destruido manualmente el objeto para liberar la memoria. Así en C está Malloc ó Calloc y free, en Pascal ó Modula-2 está el New y Dispose (creo recordar, hace muchos años que no programo en este maravilloso lenguaje) ó PowerBuilder con su Create y Destroy.
Una de las grandes comodidades, de verdad, que me he encontrado a la hora de estar estudiando esta herramienta, y que nos va a ahorrar horas de trabajo, es el Garbage Collection ó recolección de elementos no utilizados. ¿Y qué es esto? Es un sistema que recopila objetos automáticamente (en segundo plano, de forma transparente, sin que sea necesaria la intervención del programador!). El funcionamiento es el siguiente: cuando no existe ninguna referencia a un objeto, se supone que el objeto ha dejado de ser necesario, y la memoria ocupada por él se libera. Esta memoria reciclada se puede utilizar para una asignación posterior.
Esto quiere decir que nos tenemos que despreocupar de liberar memoria de forma manual, con la tranquilidad que eso conlleva.
Pequeño inciso: Cuando estaba estudiando en la Universidad, en las primeras prácticas de C bajo Linux (año 1.999, mas menos), se nos decía que este sistema operativo era muy bueno, que rara vez se colgaba... Bueno, el caso es que mi primera práctica programando en C, la compilaba, la ejecutaba, y ...crash, el Linux se colgaba!!!!. Después de destrozarme la cabeza, hice una pequeña investigación. Hice un grep de malloc y un grep de free en los ficheros fuentes. Tenía 67 mallocs y 2 free... Aquí aprendí la importancia de liberar memoria.... y al final aprobé y todo!!!!
NOTA IMPORTANTE: El método DESTRUCTOR siempre se llama antes que el Garbage Collection tenga lugar.
A continuación vamos a ver un ejemplo sencillo para dejar claro los conceptos de destructor y constructor, así como la limpieza automática de memoria. El código es el siguiente:
/*
Autor: ANGELOIDE
PROGRAMA: ejemplo5.cs
OBSERVACIONES: Clases en C# - Constructor, destructor y memoria
FECHA: 01/07/2009
*/
using System ;
class clase_numero {
// Definición del constructor.
public clase_numero(int id) {
ii_numero = id ;
}
// Definición del destructor.
~clase_numero() {
Console.WriteLine("Destruyendo objeto " + ii_numero) ;
}
// Definición de variables de instancia.
private int ii_numero ;
// Definición de métodos.
}
class Ejemplo5 {
// Procedimiento principal.
public static void Main() {
// Definimos varios objetos a partir de una clase mediante un bucle for.
int i ;
for (i = 1 ; i < 10 ; i++) {
// Creamos el objeto con identificador i.
clase_numero objeto_numero = new clase_numero(i) ;
// Mostramos por pantalla el identificador de objeto.
Console.WriteLine("Creado objeto con id " + i) ;
}
}
}
El resultado, como siempre, una vez compilado y ejecutado, es el siguiente:

¿Y qué es lo que hace este programa? Vamos por partes. En general lo que hace este programita es crear 10 objetos instanciados de la clase clase_numero y decir por pantalla que se han creado. ¿Cómo lo hacemos? Darse cuenta que en el constructor podemos inicializar el valor de la variable privada ii_numero (mediante el paso de un parámetro). Pues bien , creamos 10 objetos seguidos mediante un bucle for que hay en el cuerpo del Main. Para cada valor de i, vamos creando un objeto, de manera que más abajo escribo en la consola el id del objeto que es. La sintáxis del bucle for utilizado aquí es la siguiente:
for (Inicialización de i ; Condición para que se cumpla el cuerpo del bucle ; Incremento de la variable i) {
// Cuerpo del bucle.
}
No os preocupéis ahora por la sintaxis de estas estructuras de control. Se verá más adelante. Lo importante es quedarse con el otro concepto.
i++ lo que hace es evaluar i y luego incrementar en 1 el valor de i. Esto se verá también mas adelante.
Una vez que los objetos dejan de ser referenciados, se eliminan automáticamente. ¿Cómo lo sabemos? Porque se ejecuta el método destructor, el cual escribe por pantalla qué objeto está a punto de ser destruido. Recordar que inmediatamente después del método destructor viene el sistema de recolección de elementos no utilizados, que es el que libera memoria.
El ejemplo no tiene mucho más que comentar, ya que el código lo dice todo. Espero que os haya aclarado los conceptos de constructor, destructor y liberación de memoria automática.
Suscribirse a:
Comentarios (Atom)




