Вы находитесь на странице: 1из 7

[MDULO DE INTERAPRENDIZAJE DE GESTIN DE DATOS] 1 de Mayo de 2009

7. EVALO MIS CONOCIMIENTOS Identifico claramente un vector y una matriz? Puedo analizar lgicamente los problemas que requieren del uso de un vector o una matriz? He realizado los diseos conceptual, lgico y fsico en forma ordenada? Documento cada uno adecuadamente cada una de las aplicaciones que he realizado en Visual Basic? Mdulo: Gestin de Datos Unidad de Trabajo: 3 Tema: Mantenimiento de datos en arreglos 1. RECUERDO LO QUE YA SE Algoritmos.- Es la secuencia de pasos lgicos y ordenados orientados a solucionar un problema previamente planteado. En si el algoritmo en la programacin es la solucin lgica a un problema, que posteriormente ser automatizado m ediante un lenguaje de programacin. 2. APRENDO ALGO NUEVO El Mantenimiento de Datos Se entiende por mantenimiento de datos a diferentes procesos automatizados que se realizan a la informacin agrupada en variables, arreglos y/o tablas. Estos procesos estarn definidos por la operacin principal que se realice sobre estos bloques de informacin, as tendremos los principales procesos generales: Ingreso, consulta, modificacin, eliminacin y publicacin. Ingreso de Datos Se entender por ingreso de datos a todo aquel algoritmo que me permita agregar datos a cualquier arreglo (Vectores, Matrices, Tablas). El orden de ingreso de los datos se los puede dar en forma secuencial (Pilas y Colas) o en forma aleatoria, en ambos casos se deber utilizar un contador que actuar de puntero, quin nos indicar la posicin de un dato especfico en el arreglo. Cuando el ingreso de datos es aleatorio, puede generarse espacios de memoria en blanco, es decir posiciones en el arreglo sin valor alguno, en este caso, se dir que la posicin (vectores y/o matrices) o el registro (tablas) tiene un valor Null (Nulo). Si se desea eliminar posiciones Null en los arreglos, deberemos utilizar mtodos conocidos con el nombre de Pilas y Colas, aunque en este momento su estudio no sea del todo necesario ya que, si se realiza un anlisis adecuado del problema y especialmente de su uso podemos evitar la necesidad de utilizarlos.

Arreglo Posicin 1 2 3 4 5 n

Nom Valor Abel Abad Ana Mora Carlos Vera Supone un espacio de memoria vaco llamado (Null)

Paola Loaiza Ester Lara

Uni dad Educati va Experimental Salesiana Domingo Comn | Autor: Diego Morocho Guerrero

15

[MDULO DE INTERAPRENDIZAJE DE GESTIN DE DATOS] 1 de Mayo de 2009

Como se puede observar el algoritmo es bastante sencillo, se trata entonces de ingresar el nombre y asignar ste valor al vector deseado en una posicin as mismo especificada por el usuario. Lamentablemente un algoritmo de ste tipo supone que el usuario conoce exactamente las posiciones de los datos en el arreglo, naturalmente este proceso no ser automtico por lo que estar sujeto a errores humanos, lo que genera el riesgo de perder datos en el proceso de ingreso de datos. 3. TRABAJO Y ME DIVIERTO

Nombre y Tamao del Vector Inicio (Ingreso de datos en un vector Nom[6]) Leer mNom, i Nom(i) = mNom Fin Asignacin del Valor ingresado al Vector Nom en la posicin i

Ejercicio 3.1: realizar una aplicacin en Visual Basic que me permita ingresar datos a un arreglo unidimensional de longitud 10 misma que contendr nombres. Diseo de la Interfaz

Tabla de Propiedades Control Form Propiedad Name Caption Font Name Caption Label Font Alignment AutoSize Name Caption Cancel Valor frmIngreso Ingreso de Datos MS Sans Serif,12,b Labe1 Ingreso de Datos a un Arreglo Unidimensional (Vector) Arial,24,b Center False cmdAceptar, cmdSalir &Aceptar, &Salir False, True Control TextBox Command Button Propiedad Name MaxLength Text Name Caption Cancel Name Caption Alignment Valor txtPos, txtNom 2, 0 cmdAceptar, cmdSalir &Aceptar, &Salir False, True Labe2, Label3 Ingrese Posicin: Ingrese Nombre: Right

Label

Command Button

Uni dad Educati va Experimental Salesiana Domingo Comn | Autor: Diego Morocho Guerrero

16

[MDULO DE INTERAPRENDIZAJE DE GESTIN DE DATOS] 1 de Mayo de 2009


Cdigo de en Visual Basic 6.0 Option Explicit Option Base 1 Dim Nom(10) As String 'Arreglo Nom de longitud 10 Dim mPos As Integer 'Posicin ndice en el arreglo Dim i As Integer Private Sub cmdAceptar_Click() 'Asigno el valor de la posicin ingresada a la variable de memoria mPos mPos = Val(txtPos.Text) 'Asigno el nombre ingresado al arreglo Nom en la posicin mPos Nom(mPos) = txtNom.Text 'Ejecuto los procedimientos para llenado de la lista y borrado de datos MostrarVectorEnLista LimpiarTextBox End Sub Private Sub cmdSalir_Click() End End Sub Private Sub txtNom_KeyPress(KeyAscii As Integer) 'Si presiono la tecla Enter cambiar el SetFocus al CommandButton Aceptar If KeyAscii = 13 Then cmdAceptar.SetFocus End If End Sub Private Sub txtPos_KeyPress(KeyAscii As Integer) 'Ascii = 0 --> Null 'Ascii = 8 --> BackSpace 'Ascii = 13 --> Enter 'Ascii = 27 --> Escape 'Los dgitos de del 0 al 9 en la Tabla de Cdigos Ascii desde el 48 al 57 If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 13 And KeyAscii <> 8 _ And KeyAscii <> 27 Then KeyAscii = 0 End If 'Si presiono la tecla Enter cambiar el SetFocus al TextBox del nombre If KeyAscii = 13 Then txtNom.SetFocus End If End Sub Sub MostrarVectorEnLista() 'Limpio el ListBox lstVector.Clear 'Lleno la lista con los datos del arreglo modificado For i = 1 To 10 lstVector.AddItem "Nom(" & i & ") --> " & Nom(i) Next i End Sub Sub LimpiarTextBox() 'Limpio los TextBox para ingresar nuevos datos txtPos.Text = "" txtNom.Text = "" txtPos.SetFocus End Sub

Uni dad Educati va Experimental Salesiana Domingo Comn | Autor: Diego Morocho Guerrero

17

[MDULO DE INTERAPRENDIZAJE DE GESTIN DE DATOS] 1 de Mayo de 2009


Nombre del Proyecto Nombre del Formulario Nombre de la carpeta Directorio de referencia Volumen de almacenamiento Descripcin del Proyecto Ingreso.vbp frmIngreso.frm Ingreso (Arreglos) u:\Programas\Ingreso(Arreglos) PenAlumno Este proyecto me permitir ingresar datos a un arreglo unidimensional, el vector tendr una longitud de 10, los datos que se ingresarn sern nombres.

Consulta de Datos (Bsqueda) No es ms que un algoritmo que realizar un barrido de datos, el cual consiste en revisar el valor contenido en cada una de las posiciones de un arreglo con el fin de encontrar coincidencias o posiciones en Null. Tambin se lo conoce como bsqueda ya que generalmente buscamos en un arreglo si existe algn dato en particular. Debido a que el algoritmo se limitara a Leer una posicin en el vector y luego Mostrar dicho elemento en forma directa, resulta mucho ms interesante realizar el siguiente ejercicio.

Bsqueda de la posicin de un elemento en un arreglo Inicio (Consulta de datos en un vector Nom[6]) Variable Bandera Leer mNom Auxiliar Ban=Falso Para i=1 Hasta 6 Si Nom(i)=mNom Entonces Asignacin de Posicin en Pos=i el vector Ban=Verdadero Salir Para Fin Si Prximo i Si Ban=Verdadero Entonces Mostrar Encontrado en la posicin: ; Pos Sino Mostrar No se encontr elemento Fin Si Fin

En el ejemplo nos interesa encontrar la posicin de un elemento en un arreglo, para esto es muy comn la utilizacin de banderas, las cuales nos permitirn la verificacin de los estados de ciertas condiciones de nuestro algoritmo. Generalmente los estados generados suelen ser valores booleanos (Verdad o Falso). Las estructuras de repeticin (bucles) tales como Para, Mientras, Hacer u otras son muy utilizadas y necesarias a la vez ya que estas son usadas para repetir un proceso un nmero indeterminado de veces. En nuestro caso en particular utilizamos la estructura Para ya que sta nos permite generar una secuencia numrica automtica, misma que se utilizar para verificar el contenido de cada elemento del vector. Adicionalmente podemos observar que utilizamos la instruccin Salir Para que trunca la ejecucin de la estructura Para, generalmente utilizaremos esta instruccin dentro de un algoritmo de bsqueda para que no siga realizando el barrido cuando hemos encontrado el dato buscado. Uni dad Educati va Experimental Salesiana Domingo Comn | Autor: Diego Morocho Guerrero

18

[MDULO DE INTERAPRENDIZAJE DE GESTIN DE DATOS] 1 de Mayo de 2009


Diseo de la Interfaz

Tabla de Propiedades Control Form Propiedad Name Caption Font Name Caption Font Alignment Name Text Valor frmCosulta Consulta de Datos MS Sans Serif,12,b Labe1 Consulta de Datos a un Arreglo Unidimensional (Vector) Arial,24,b Center txtNom Control Command Button Propiedad Name Caption Cancel Default Name Caption Alignment Name Caption Alignment
BorderStyle

Label

Label Label

Valor cmdAceptar,cmdSalir &Aceptar, &Salir False, True True, False Labe2, Label3 Ingrese Nombre: Posicin: Right lblPos Left Fixed Single

TextBox

Cdigo de en Visual Basic 6.0 Option Explicit Option Base 1 Dim Nom(10) As String 'Arreglo Nom de longitud 10 Dim mPos As Integer 'Posicin ndice en el arreglo Dim Ban As Boolean 'Bandera para controlar bsqueda Dim i As Integer Dim mNom As String Private Sub cmdAceptar_Click() 'Asigno un valor inicial de falso a la bandera que controlar la bsqueda Ban = False 'Asigno a mNom el valor del TextBox eliminado los espacios no necesarios mNom = Trim(txtNom.Text) 'Barrido del vector Nom para verificar coincidencias For i = 1 To 6 'Comparar el valor del vector en la posicin i con el nombre ingresado If Nom(i) = mNom Then mPos = i 'Cambio el estado de la bandera porque se ha encontrado el dato Ban = True 'Trunco la ejecucin del For para que no siga buscando ms coincidencias Exit For End If Next i 'Verifico el estado de la bandera verificar para si se ha encontrado el dato If Ban = True Then Uni dad Educati va Experimental Salesiana Domingo Comn | Autor: Diego Morocho Guerrero

19

[MDULO DE INTERAPRENDIZAJE DE GESTIN DE DATOS] 1 de Mayo de 2009


'Si encontramos la coincidencia presentamos su posicin en el vector lblPos.Caption = mPos Else 'Si no encontramos la coincidencia presento un mensaje al usuario MsgBox "No se encontr elemento", vbOKOnly, "Mensaje del Sistema" End If End Sub Private Sub Form_Load() 'Asignacin de valores al vector Nom Nom(1) = "Abel Abad" Nom(2) = "Ana Mora" Nom(3) = "Carlos Vera" Nom(4) = "David Reinoso" Nom(5) = "Paola Loaiza" Nom(6) = "Ester Lara" Nom(7) = "Flor Pacheco" Nom(8) = "Marcelo Guerrero" Nom(9) = "Pedro Pacheco" Nom(10) = "Mara Andrea Maldonado" End Sub Nombre del Proyecto Nombre del Formulario Nombre de la carpeta Directorio de referencia Volumen de almacenamiento Descripcin del Proyecto Consulta.vbp frmConsulta.frm Consulta (Arreglos) u:\Programas\Consulta(Arreglos) PenAlumno Este proyecto me permitir consultar arreglo.

los

datos

de un

Ingreso en un espacio Null y sin repeticin de datos en un arreglo Inicio (Ingreso de datos en un vector Nom[6]) Leer mNom, Pos Bandera para controlar ingreso Si Nom(Pos)= Entonces de nombres no repetidos Ban=Falso Para i=1 Hasta 6 Si Nom(i)=mNom Entonces p=i Ban=Verdadero Salir Para Fin Si Prximo i Si Ban=Verdadero Entonces Mostrar Ya existe el nombre en la posicin: ; p Sino Nom(Pos)=mNom Fin Si Sino Mostrar Ya existe un elemento en la posicin: ; Pos Fin Si Fin

Uni dad Educati va Experimental Salesiana Domingo Comn | Autor: Diego Morocho Guerrero

20

[MDULO DE INTERAPRENDIZAJE DE GESTIN DE DATOS] 1 de Mayo de 2009


Como observamos podemos utilizar el algoritmo de bsqueda en combinacin con otros procesos de mantenimiento, en ste caso junto con el de ingreso. Como veremos luego el algoritmo bsico de bsqueda, se puede utilizar, y en algunos casos ser completamente necesario su uso en procesos de modificacin, eliminacin y publicacin de datos. A la aplicacin de ingreso de datos en un vector podemos modificarle el algoritmo para la completar ste ejercicio.

Cambios en el cdigo Option Explicit Option Base 1 Dim Nom(10) As String Dim mPos As Integer Dim mNom As String Dim p As Integer Dim Ban As Boolean Dim i As Integer

'Arreglo Nom de longitud 10 'Posicin ndice en el arreglo 'Nombre a ingesar en el arreglo ingresado 'Variable auxiliar de posicin

Private Sub cmdAceptar_Click() 'Asigno el valor de la posicin ingresada a la variable de memoria mPos mPos = Val(txtPos.Text) 'Asigno el valor del TextBox a la variable mNom sin espacios innecesarios mNom = Trim(txtNom.Text) If Nom(mPos) = "" Then Ban = False For i = 1 To 6 'Comparo si el nombre a ingresar es igual al nombre existente en el arreglo If Nom(i) = mNom Then 'Guardo la posicin de la coincidencia en la variable p p = i Ban = True Exit For End If Next i If Ban = True Then MsgBox "Ya existe el nombre en la posicin: " & p, vbOKOnly, "Mensaje del _ sistema" Else 'Asigno el nombre ingresado al arreglo Nom en la posicin mPos Nom(mPos) = txtNom.Text End If Else MsgBox "Ya existe un elemento en la posicin: " & p, vbOKOnly, "Mensaje del _ sistema" End If 'Ejecuto los procedimientos para llenado de la lista y borrado de datos MostrarVectorEnLista LimpiarTextBox End Sub ... El resto del cdigo permanecer igual Modificacin de Datos Es una mezcla entre el de algoritmo de ingreso de datos junto con el de consulta de datos, muy similar al estudiado anteriormente, con ciertas modificaciones al mismo, el algoritmo se escribir bsicamente de la siguiente manera.

Uni dad Educati va Experimental Salesiana Domingo Comn | Autor: Diego Morocho Guerrero

21

Вам также может понравиться