sábado, 13 de abril de 2019

Conexión de visual Basic con base de datos


PROCEDIMIENTO 

1. Abra Visual Basic 2010 y cree un nuevo proyecto desde menú Archivo y asignarle el nombre Base De Datos.
2. Cuando se despliegue el IDE, Abra  el menú proyecto y en el submenú que se abre, elija Agregar nuevo elemento.
3.Se desplegará una nueva ventana… Elija Base de Datos local…
4. Dé clic en Aceptar…
 5.Dé clic dos veces en botón Anterior para que aparezca esta ventana…
6. Dé clic en Nueva conexión y aparece la siguiente ventana…
7.Dé clic en Cambiar y elija Archivo de base de datos Microsoft Access y luego dé clic en Aceptar…
8. Aparece esta ventana… Dé clic en el botón Examinar para navegar hasta el archivo donde tiene almacenada la base de datos…
9. Luego dé clic en Abrir y se mostrará la ventana pero ya con la base de datos  de Access en la casilla correspondiente que dice Nombre del archivo de la base de datos…
10. De clic en Aceptar…y le aparece una ventana con una advertencia en la cual debe contestar 
11. Ponga un Check en las casillas de verificación de  tablas y vistas…
12. Luego clic en finalizar…
13. Visual Basic lo llevará de nuevo al IDE, pero ahora observe que a la izquierda hay un botón que dice Orígenes de datos…Ábralo…
14. Se mostrará esta ventana que obviamente será diferente de acuerdo a su base de datos, por que las tablas, a lo mejor son diferentes y tienen otro nombre…
15. Ahora agregue al formulario,  cada campo de la tabla, poniéndole el puntero del mouse y arrastrando uno a la vez.
16.Observe que automáticamente se instalan en el formulario los botones para navegar entre los registros, también hay botones para guardar, agregar y eliminar.
17.Presione F5 para ejecutar el programa.
18. Aquí hay tres registros, por que solo esos hay en la base de datos, pero quizá, en la que usted conectó hayan muchos más.
19.Ahora puede navegar entre los registros y modificar el formulario. Por ejemplo ponerle color y títulos en el Label para que se vea diferente.

miércoles, 6 de marzo de 2019

Metodos de busquedad

¿cuales son los metodos de busquedad que exiten?


 Un algoritmo de búsqueda binaria (o corte binario) es una función para buscar un valor particular en un arreglo ordenado. Eliminando la mitad de los datos en cada paso. La búsqueda binaria encuentra la media, compara y determina si el valor se encuentra en esa posición o esta antes o después. Una Búsqueda Binaria es un ejemplo de la técnica “Divide y Conquista” (o mejor dicho “Decrece y Conquista”).

Búsqueda Secuencial: 

La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo.
El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utilizar la técnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.

Búsqueda Binaria. 
La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.

Algoritmo

#include <stdio.h>
int main() {
int b,i,j,k, v[12];
for(i=0;i<12;i++)
scanf("%d",&v[i]);
printf("fin del llenado\n");
printf("ingrese numero a buscar ");
scanf("%d",&b);
i= 0;
j= 12-1;
do {
k= (i+j)/2;
if (v[k]<=b )
i=k+1;
if (v[k]>=b )
j= k-1;
} while (i<=j);
printf("elemento %d esta en %d\n",v[k],k);

return 0;

Metodos de ordenamiento

¿cuales metodos de ordanimiento de vectores existen?


Ordenamiento de burbuja

El Ordenamiento de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas “burbujas”.

También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar.

Método de selección

El algoritmo de ordenación por selección procede encontrando el mayor elemento del vector e intercambiando su posición con el último elemento. A continuación se repite el procedimiento sobre los elementos 1 … N-1, y así sucesivamente.

ordenamiento por inserción

es una manera muy natural de ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria. Requiere O(n²) operaciones para ordenar una lista de n elementos.

ordenamiemto SHELL

El ordenamiento Shell (Shell sort en inglés) es un algoritmo de ordenamiento. Su implementación original, requiere O(n2) comparaciones e intercambios en el peor caso. 
El algoritmo Shell sort mejora el ordenamiento por inserción comparando elementos separados por un espacio de varias posiciones. Esto permite que un elemento haga "pasos más grandes" hacia su posición esperada. Los pasos múltiples sobre los datos se hacen con tamaños de espacio cada vez más pequeños. El último paso del Shell sort es un simple ordenamiento por inserción, pero para entonces, ya está garantizado que los datos del vector están casi ordenados.

Algoritmo del método burbuja

martes, 5 de marzo de 2019

Diagramas UML

1. ¿Que son ?

  • UML es una herramienta propia de personas que tienen conocimientos relativamente avanzados de programación y es frecuentemente usada por analistas funcionales (aquellos que definen qué debe hacer un programa sin entrar a escribir el código) y analistas-programadores (aquellos que dado un problema, lo estudian y escriben el código informático para resolverlo en un lenguaje como Java, C#, Python o cualquier otro).

  • UML son una serie de normas y estándares que dicen cómo se debe representar algo.
  • UML es una técnica para la especificación sistemas en todas sus fases. 
  • UML es un lenguaje para hacer modelos y es independiente de los métodos de análisis y diseño. Existen diferencias importantes entre un método y un lenguaje de modelado. Un método es una manera explícita de estructurar el pensamiento y las acciones de cada individuo. Además, el método le dice al usuario qué hacer, cómo hacerlo, cuándo hacerlo y por qué hacerlo; mientras que el lenguaje de modelado carece de estas instrucciones. Los métodos contienen modelos y esos modelos son utilizados para describir algo y comunicar los resultados del uso del método.

Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado consiste de vistas, diagramas, elementos de modelo ¾ los símbolos utilizados en los modelos ¾ y un conjunto de mecanismos generales o reglas que indican cómo utilizar los elementos. Las reglas son sintácticas, semánticas y pragmáticas

¿Cuales UML existen?


DIAGRAMAS DE CASOS DE USO

Estos diagramas muestran operaciones que se esperan de una aplicación o sistema y como se relaciona con su entorno, es por ello que se ve desde el punto de vista del usuario. Describen un uso del sistema y como éste interactúa con el usuario.

Los casos de usos se representan en el diagrama por una elipses la cual denota un requerimiento solucionado por el sistema.
El conjunto de casos de usos representa la totalidad de operaciones que va a desarrollar el sistema. Por último a estos elipses lo acompaña un nombre significativo de manera de rótulo.

DIAGRAMA DE CLASES

En UML el diagrama de clases es uno de los tipos de diagramas o símbolo estático y tiene como fin describir la estructura de un sistema mostrando sus clases, atributos y relaciones entre ellos.

Estos diagramas son utilizados durante el proceso de análisis y diseño de los sistemas informáticos, en donde se intentan conformar el diagrama conceptual de la información que se manejará en el sistema.

DIAGRAMA DE OBJETOS

Forma parte de la vista estática del sistema. En este diagrama se modelan las instancias de la clases del Diagrama de Clases. Este diagrama cabe aclarar que cuenta con objetos y enlaces. En estos diagramas también es posible encontrar las clases para tomar como referencia su instalación.

DIAGRAMAS DE COMPORTAMIENTOS

Diagrama de Estados
Un estado es una condición durante la vida de un objeto, de forma que cuando dicha condición se satisface se lleva a cabo alguna acción o se espera por un evento.
 El estado de un objeto se puede caracterizar por el valor de uno o varios de los atributos de su clase, además, el estado de un objeto también se puede caracterizar por la existencia de un enlace con otro objeto.

El diagrama de estados engloba todos los mensajes que un objeto puede enviar o recibir, en otras palabras es un escenario que representa un camino dentro de un diagrama.

Como característica de estos diagramas siempre cuentan con dos estados especiales, el inicial y el final, con la particularidad que este diagrama puede tener solo un estado inicial pero varios estados finales.

DIAGRAMA DE IMPLEMENTACIÓN

Diagrama de componentes

Lo que distingue el Diagrama de Componentes de otro tipo de diagramas es sin duda su contenido. Normalmente contiene componentes, interfaces y relaciones entre ellos.Los componentes perteneces a un mundo físico, es decir, representan a un bloque de construcción al modelar aspectos físicos de un sistema.

Cada componente debe tener un nombre que lo distinga de los demás. Al igual que las clases los componentes pueden enriquecerse con compartimientos adicionales que muestran sus detalles.

2. ¿Para que sirven los diagramas de objetos?

Un diagrama de objetos se enfoca en los atributos de un conjunto de objetos y cómo esos objetos se relacionan entre sí. Por ejemplo, en el siguiente diagrama de objetos, las tres cuentas bancarias están ligadas al banco mismo. Los títulos de clase muestran el tipo de cuentas (ahorros, corriente y tarjeta de crédito) que un cliente dado podría tener con este banco en particular. Los atributos de clase son diferentes para cada tipo de cuenta. 

ejemplo:
3. ¿Para que sirven los diagramas de casos de uso?

Para capturar el comportamiento deseado del sistema sin tener que especificar como se implementa ese comportamiento.
Como medio de comprensión del sistema para des arrolladores, usuarios finales y expertos del dominio.
Ayudan a validar la arquitectura y a verificar el sistema en el transcurso del desarrollo de este. 
ejemplo:
4. ¿Para que sirve el diagrama de clases?

Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de agregación, ya que una clase es una descripción de conjunto de objetos que comparten los mismos atributos, operaciones, métodos, relaciones y semántica; mostrando un conjunto de elementos que son estáticos, como las clases y tipos junto con sus contenidos y relaciones. Un diagrama de clases esta compuesto por los siguientes elementos: Clase: atributos, métodos y visibilidad. Relaciones: Herencia, Composición, Agregación, Asociación y Uso.

ejemplo:
5. ¿En que etapa del ciclo de vida de un software se generan los diagramas UML?

se encuentra en la etapa de desarrollo de modelos del sw.

Archivos en POO


¿Qué son los archivos?

Un archivo es una secuencia de datos almacenados en un medio persistente que están disponibles para ser utilizados por un programa. Todos los archivos tienen un nombre y una ubicación dentro del sistema de archivos del sistema operativo.
Los datos en un archivo siguen estando presentes después de que termina el programa que lo ha creado. Un programa puede guardar sus datos en archivos para usarlos en una ejecución futura, e incluso puede leer datos desde archivos creados por otros programas.

Tipo de archivos que existen

a. texto (text) o secuenciales (acceso secuencial),
b. tipiados (tipificados) o con tipo (file of) (acceso aleatorio), aleatorios,
c. no tipiados (no tipificados) o sin tipo (file).
Archivos de texto: (secuenciales) Son archivos que contienen texto
(carácter ASCII)
Archivos con tipo: (aleatorios)
Archivos que contienen datos de cualquier tipo como integer, real, byte,
record, datos con estructuras.
Archivos sin tipo: Archivos en los que no se conoce su estructura ni su
contenido; están concebidos para acceso de bajo nivel a los datos de un
disco (E/S de bytes).

Estructura de POO

¿Qué es una estructura en el lenguaje c?

Las estructuras son colecciones de variables relacionadas bajo un nombre.
Las estructuras pueden contener variables de muchos tipos diferentes de datos a diferencia de los arreglos que contienen únicamente elementos de un mismo tipo de datos


¿Cómo se crea una estructura?

En C/C++ se forma una estructura utilizando la palabra reservada
struct, seguida por un campo etiqueta opcional, y luego una lista
de miembros dentro de la estructura. La etiqueta opcional se
utiliza para crear otras variables del tipo particular de la estructura:
struct [ <nombre tipo de estructura >] {
[<tipo> <nombre-variable [, nombre-variable,]>];
[<tipo> <nombre-variable [, nombre-variable...]>];
} [ <variables de estructura>]
Un punto y coma finaliza la definición de una estructura puesto
que ´esta es realmente una sentencia C/C++
.

¿Cómo se introducen datos en la estructura?

Veamos ahora como introducir los datos de todos los alumnos de forma sencilla y luego mostrar estos datos por pantalla. Para que el ejemplo no se haga tan extenso, hagamos un poco más pequeña la estructura, solo pondremos el nombre y la edad de cada alumno:


¿Cómo se introducen datos en la estructura?




Veamos ahora como introducir los datos de todos los alumnos de forma sencilla y luego mostrar estos datos por pantalla. Para que el ejemplo no se haga tan extenso, hagamos un poco más pequeña la estructura, solo pondremos el nombre y la edad de cada alumno:

¿Cómo se imprime una estructura?

si quisiéramos hacer una función para imprimir productos, no haría falta pasar todas sus propiedades como parámetros, sino un solo parámetro de tipo struct Producto.
Esto:
void imprimir (long código, float precio) {
printf ("Producto con código %lu y precio $%.2f", código, precio);
}
Pasaría a esto:
void imprimir (struct Producto un Producto) {
printf ("Producto con código %lu y precio $%.2f", unProducto.codigo, unProducto.precio);

lunes, 4 de marzo de 2019

Constructores y destructores


¿Qué es un constructor en POO?

El objetivo de un constructor es el de inicializar un objeto cuando éste es creado. Asignaremos los valores iniciales, así como los procesos que ésta clase deba realizar.
Se utiliza para crear tablas de métodos virtuales y poder así desarrollar el polimorfismo, una de las herramientas de la programación orientada a objetos (POO). Al utilizar un constructor, el compilador determina cuál de los objetos va a responder al mensaje (virtual) que hemos creado. Tiene un tipo de acceso, un nombre y un paréntesis.

  • sintaxis:  
[atributos] [modificadores] <identificador> ([parámetros] ) [inicializador]
{
// Cuerpo del constructor.
}

  • Ejemplo: 

class Producto
{
private int clave;
private double precio;
public Producto (int c, double p)
{
clave = c;
precio = p;
}
public double daPrecio ( )
{
return precio;
}


¿Qué es el destructor?

Un destructor en algunos lenguajes de programación orientados a objetos es un método de una clase que se llama justo antes de una instancia de esa clase y se elimina de la memoria. No todos los lenguajes de programación orientados a objetos suelen tener un destructor.

La contrapartida de un destructor es un constructor que se ejecuta cuando se crea el objeto, se instancia y se lo inicializa.
  • Ejemplo: 

La sintaxis para declarar un destructor es:
[atributos] ~ <identificador> ()
{
// Cuerpo del destructor.
}
Notas:
Una clase solamente puede tener un destructor.
Los destructores no pueden heredarse o sobrecargarse.
Los destructores no pueden invocarse, sino que son invocados automáticamente.
Un destructor no acepta modificadores ni parámetros. Por ejemplo, la siguiente es una declaración de un destructor para la clase Figura:
~ Figura ()
{
// Instrucciones para limpiar.
}
El destructor llama implícitamente al método Object. Finaliza() en la clase base object. Por lo tanto, el código destructor precedente es traducido automáticamente a:
protector override void Finaliza ()
{
try
{
// Instrucciones para limpiar.
}
finally
{
base. Finaliza ();
}


        Estructura de una clase

        ¿Que es una clase?

        una clase es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables -el estado, y métodos apropiados para operar con dichos datos -el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase.

        ejemplo:

        #include <iostream
         #include <cstring>
         using std: cout;
        using std: endl;
         // Esto define la clase CRender 
        class CRender 
        public: 
        char buffer [255]; 
        void m_Renderizar (const char *cadena);
         };
         /* implementar m_Renderizar () para la c;*/ 
        void CRender: m_Renderizar (const char *cadena)
         {
         strcpy (buffer, cadena) ;//copia la cadena

         return;