Está en la página 1de 16

Visual basic

Visual Basic (VB) es un lenguaje de programación dirigido por eventos, desarrollado por Alan


Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con
importantes agregados. Su primera versión fue presentada en 1991, con la intención de
simplificar la programación utilizando un ambiente de desarrollo.
La última versión fue la 6, liberada en 1998, para la que Microsoft extendió el soporte hasta
marzo de 2008.
En 2001 Microsoft propuso abandonar el desarrollo basado en la API Win32 y pasar a
un framework o marco común de librerías, independiente de la versión del sistema
operativo .NET Framework, a través de Visual Basic .NET (y otros lenguajes como C
Sharp (C#) de fácil transición de código entre ellos); fue el sucesor de Visual Basic 6.
Aunque Visual Basic es de propósito general, también provee facilidades para el desarrollo de
aplicaciones de bases de datos usando Data Access Objetos, Remoto o ActiveX Data Objetos.
Visual Basic contiene un entorno de desarrollo integrado o IDE que integra editor de textos para
edición del código fuente, un depurador, un compilador (y enlazador) y un editor de interfaces
gráficas o GUI.
Visual Basic para Excel combina un entorno de programación integrado cuyo nombre
recibe Editor de Visual Basic y el lenguaje de programación que utiliza es Visual Basic. El
objetivo de VB para Excel es crear programas y diseñarlos fácilmente desarrollando nuevas
funcionalidades en Excel. Podremos utilizar las plantillas de Excel para dar un formato más
adecuado a los datos y las distintas funciones de Excel para obtener buenos resultados.

¿Para qué sirve Visual Basic en Excel?


Excel nos proporciona muchas herramientas para manipular la información de la hoja de
cálculo, pero en ocasiones, deseamos realizar las acciones repetitivas en Excel de una manera
más sencilla o crear funcionalidades que no están contempladas en la aplicación de Office.

Visual Basic funcionará a través de macros de Excel, vistos en el tutorial de Excel avanzado,


que nos permitirán crear tareas automatizadas paso a paso. Este lenguaje de programación
nos servirá para facilitarnos el trabajo y aunque en un primer momento nos puede intimidar el
hecho de aprender a programar en VB, gracias a los ejemplos de VB para
Excel podremos conseguirlo de forma adecuada.

Si tienes un ordenador Mac también puedes utilizar esta funcionalidad, descubre cómo crear
macros de Excel con Mac.

Cómo activar Visual Basic en Excel

Para empezar a trabajar con este lenguaje de programación, deberemos activar Visual Basic


en Excel. Para ello, habilitaremos la ficha de Programador siguiendo los pasos indicados:
o Hacer clic en el botón de Office y seleccionar Opciones de Excel.
o Elegiremos la opción más frecuente de la lista de opciones.
o En el panel de la derecha, seleccionamos la opción mostrar ficha de programador en la cinta de
opciones y aceptamos los cambios.
o Se mostrará la ficha de programador en la cita de opciones.

Visual basic. Constituye un IDE (entorno de desarrollo integrado, o, en inglés, Integrated


Development Envaronen) que ha sido empaquetado como un Programa de aplicación; es decir,
consiste en un editor de código (programa donde se escribe el código fuente), un depurador
(programa que corrige errores en el código fuente para que pueda ser bien compilado), un
compilador (programa que traduce el código fuente a lenguaje de máquina), y un constructor de
interfaz gráfica o GUI (es una forma de programar en la que no es necesario escribir el código
para la parte gráfica del Programa, sino que se puede hacer de forma visual).

Con Visual Basic se pueden desarrollar aplicaciones para Windows más rápidamente. Los


errores de Programación no se generan tan frecuentemente y, si lo hacen, son más sencillos
de depurar. Además incluye dos conceptos importantes:

 Un método visual de creación de aplicaciones, incluyendo formularios (Ventanas), controles


y, componentes del formulario.
 La habilidad de asociar código directamente a cada evento de cada elemento del diseño
visual.
 Es posible escribir aplicaciones sin usar componentes visuales, es decir
escribir aplicaciones de consola.

1. Programación
Como sucede con cualquier otro lenguaje de programación moderno, Visual Basic
admite un gran número de elementos de lenguaje y construcciones de programación
comunes. En esta guía se describen todos los elementos de primer orden de la
programación con Visual Basic.

Convenciones de código y estructura de programas


Contiene documentación sobre la estructura básica y las convenciones de código de
Visual Basic, como convenciones de nomenclatura, comentarios en el código y las limitaciones
que Visual Basic presenta.

Características del lenguaje Visual Basic


Contiene vínculos a temas en los que se presentan y detallan las características más
importantes de Visual Basic, como los literales LINQ y XML.

Interoperabilidad COM
Se explican los problemas de interoperabilidad relacionados con la creación y uso de objetos
del Modelo de objetos componentes (COM) con Visual Basic.

Referencia del lenguaje Visual Basic


Contiene información de referencia sobre los distintos aspectos de la programación en
Visual Basic.

Compilador de línea de comandos de Visual Basic


Contiene información sobre el uso del compilador de línea de comandos de Visual Basic, las
opciones de compilador y la herramienta de actualización de palabras clave.

Estructura del programa

Un programa de Visual Basic se construye con bloques de creación estándar.


Una solución consta de uno o varios proyectos. A su vez, un proyecto puede contener uno o
varios ensamblados. Cada ensamblado se compila a partir de uno o varios archivos de origen.
Un archivo de origen proporciona la definición e implementación de clases, estructuras,
módulos e interfaces, que en última instancia contienen todo el código.

Para más información sobre estos bloques de creación de un programa de Visual Basic,
consulte Soluciones y proyectos y Ensamblados en .NET.

Elementos de programación de nivel de archivo

Al iniciar un proyecto o archivo y abrir el editor de código, verá código ya implementado y en el


orden correcto. Cualquier código que escriba debe seguir la siguiente secuencia:

1. Instrucciones Option
2. Instrucciones Imports

3. Instrucciones Namespace y elementos de nivel de espacio de nombres

Si escribe las instrucciones en un orden diferente, pueden producirse errores de compilación.

Un programa también puede contener instrucciones de compilación condicionales. Puede


intercalar estas en el archivo de origen entre las instrucciones de la secuencia anterior.

Instrucciones Option
Las instrucciones Option establecen reglas básicas para código posterior, lo que ayuda a evitar
errores de sintaxis y lógica. La instrucción Option Explicit garantiza que todas las variables se
declaran y se escriben correctamente, lo que reduce el tiempo de depuración. La instrucción
Option Strict ayuda a minimizar los errores lógicos y la pérdida de datos que pueden producirse
al trabajar entre variables de diferentes tipos de datos. La instrucción Option
Compare especifica la forma en que las cadenas se comparan entre sí, en función de sus
valores Binary o Text.

Instrucciones Imports

Puede incluir una instrucción Imports (espacio de nombres y tipo .NET) para importar nombres
definidos fuera del proyecto. Una instrucción Imports permite al código hacer referencia a
clases y otros tipos definidos en el espacio de nombres importado, sin tener que calificarlos.
Puede usar tantas instrucciones Imports como considere adecuado. Para más información,
consulte Referencias y la instrucción Imports.

Instrucciones Namespace
Los espacios de nombres le ayudan a organizar y clasificar los elementos de programación
para facilitar la agrupación y el acceso. Use la instrucción Namespace para clasificar las
siguientes instrucciones dentro de un espacio de nombres determinado. Para más información,
consulte Espacios de nombres en Visual Basic.

Instrucciones de compilación condicional


Las instrucciones de compilación condicional pueden aparecer casi en cualquier lugar del
archivo de origen. Hacen que partes del código se incluyan o excluyan en tiempo de
compilación en función de determinadas condiciones. También puede usarlas para depurar la
aplicación, ya que el código condicional solo se ejecuta en modo de depuración. Para más
información, consulte Compilación condicional.

Elementos de programación de nivel de espacio de nombres


Las clases, las estructuras y los módulos contienen todo el código del archivo de origen. Son
elementos de nivel de espacio de nombres que pueden aparecer dentro de un espacio de
nombres o en el nivel de archivo de origen. Contienen las declaraciones de todos los demás
elementos de programación. Las interfaces, que definen firmas de elemento, pero que no
proporcionan ninguna implementación, también aparecen en el nivel de módulo. Para más
información sobre los elementos de nivel de módulo, consulte los siguientes recursos:

 Instrucción Class

 Structure (Instrucción)

 Module (Instrucción)

 Instrucción Interface

Los elementos de datos de nivel de espacio de nombres son las enumeraciones y los
delegados.

Elementos de programación de nivel de módulo

Los procedimientos, los operadores, las propiedades y los eventos son los únicos elementos de
programación que pueden contener código ejecutable (instrucciones que realizan acciones en
tiempo de ejecución). Son los elementos de nivel de módulo del programa. Para más
información sobre los elementos de nivel de procedimiento, consulte los siguientes recursos:

 Instrucción Function

 Instrucción Sub

 Declare Statement

 Operator Statement

 Property Statement

 Event (Instrucción)

Los elementos de datos de nivel de módulo son las variables, las constantes, las
enumeraciones y los delegados.

Visual Basic .NET es un lenguaje de programación orientado a objetos que cuenta con los
beneficios que le brinda .NET Framework, el modelo de programación diseñado para simplificar
la programación de aplicaciones en un entorno sumamente distribuido: Internet.
El lenguaje Visual Basic .NET es totalmente diferente a sus antecesores, permite crear
aplicaciones de escritorio, Web y móviles. Brinda un completo número de características para
hacer que el desarrollo de aplicaciones sea realmente rápido.
OBJETIVO
El participante identificará los elementos del .NET Framework y utilizará el paradigma de la
programación orientada a objetos que brinda Visual Basic .NET.
PERFIL DE INGRESO
El curso está dirigido a personas interesadas en conocer el lenguaje de programación Visual
Basic .NET para desarrollar aplicaciones.
Los interesados deberán:

 Haber acreditado o demostrar conocimientos equivalentes al curso Introducción a la


programación.
 Contar con una cuenta de correo activa y acceso a Internet para conectarse al sitio del
curso.
 Disponer de al menos 10 horas a la semana para revisar a fondo los contenidos y
realizar las actividades de cada tema.

2. Algoritmos, diagramas, de flujo y programas


¿Qué es un diagrama de flujo?

Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo informático.


Se usan ampliamente en numerosos campos para documentar, estudiar, planificar, mejorar y
comunicar procesos que suelen ser complejos en diagramas claros y fáciles de comprender.
Los diagramas de flujo emplean rectángulos, óvalos, diamantes y otras numerosas figuras para
definir el tipo de paso, junto con flechas conectoras que establecen el flujo y la secuencia.
Pueden variar desde diagramas simples y dibujados a mano hasta diagramas exhaustivos
creados por computadora que describen múltiples pasos y rutas. Si tomamos en cuenta todas
las diversas figuras de los diagramas de flujo, son uno de los diagramas más comunes del
mundo, usados por personas con y sin conocimiento técnico en una variedad de campos. Los
diagramas de flujo a veces se denominan con nombres más especializados, como "diagrama
de flujo de procesos", "mapa de procesos", "diagrama de flujo funcional", "mapa de procesos
de negocios", "notación y modelado de procesos de negocio (BPMN)" o "diagrama de flujo de
procesos (PFD)". Están relacionados con otros diagramas populares, como los diagramas
de flujo de datos (DFD) y los diagramas de actividad de lenguaje unificado de modelado (UML).

Diagramas de flujo para algoritmos/programación informática

Como una representación visual del flujo de datos, los diagramas de flujo son útiles para
escribir un programa o algoritmo y explicárselo a otros o colaborar con otros en el mismo.
Puedes usar un diagrama de flujo para explicar detalladamente la lógica detrás de un programa
antes de empezar a codificar el proceso automatizado. Puede ayudar a organizar una
perspectiva general y ofrecer una guía cuando llega el momento de codificar. Más
específicamente, los diagramas de flujo pueden:

 Demostrar cómo el código está organizado.

 Visualizar la ejecución de un código dentro de un programa.

 Mostrar la estructura de un sitio web o aplicación.


 Comprender cómo los usuarios navegan por un sitio web o programa.

A menudo, los programadores pueden escribir un pseudocódigo, una combinación de lenguaje


natural y lenguaje informático que puede ser leído por personas. Esto puede permitir más
detalle que el diagrama de flujo y servir como reemplazo del diagrama de flujo o como el
próximo paso del código mismo.

Los diagramas relacionados que se emplean en el software informático incluyen:

 Lenguaje unificado de modelado (UML): este es el lenguaje de propósito general usado en la


ingeniería de software para el modelado.

 Diagramas Nassi-Shneiderman (NSD): usados para la programación informática


estructurada. Llevan el nombre de sus creadores: Isaac Nassi y Ben Shneiderman, quienes
los desarrollaron en 1972 en la Universidad Estatal de Nueva York en Stony Brook. También
se denominan "estructogramas".

 Diagramas DRAKON: DRAKON es un lenguaje de programación visual de algoritmos


empleado para crear diagramas de flujo.

3. Estructuras algorítmicas selectivas


Las estructuras lógicas selectivas se encuentran en la solución algorítmica de casi todo tipo de
problemas. Las utilizamos cuando en el desarrollo de la solución de un problema debemos
tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir. Esta
toma de decisión (expresada en el diagrama de flujo con un rombo) se basa en la evaluación
de una o más condiciones que nos señalarán como alternativa o consecuencia, la rama a
seguir. Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir, se
toma una decisión, se marca la rama correspondiente a seguir, se vuelve a tomar otra decisión,
se marca la rama correspondiente a seguir, se vuelve a tomar otra decisión y así
sucesivamente. Por lo que para alcanzar la solución de un problema o sub problema debemos
aplicar prácticamente un árbol de decisión.
 
Las estructuras algorítmicas de selección (o selectivas) que se utilizan para la toma de
decisiones lógicas las podemos clasificar de la siguiente manera:
Cabe señalar que cuando a las estructuras selectivas las aplicamos en cascada, podemos
utilizar una combinación de las estructuras señaladas anteriormente en la clasificación.

ESTRUCTURA La estructura de selección simple evalúa una condición, si ésta es


SELECTIVA SIMPLE (IF - verdadera ejecuta una o varias instrucciones, si es falsa continua
END IF) la ejecución normal del programa.

SINTAXIS:

 If <comprobación lógica>Then


        [Acciones a realizarse si se cumple la condición]
 End If 
 

EJEMPLO

Verificar si un número es positivo.

 
 If a > 0 Then
    Label1.Caption = "positivo"
End If

EJEMPLO

Verificar si el crédito de un cliente es suficiente para realizar una nueva compra y
calcular su nuevo crédito disponible.

Desarrollo:

If Precio < CreditoDisponible Then


    Cargo = "Aprobado" 
    CreditoDisponible = CreditoDisponible - Precio
End If
   

ESTRUCTURA SELECTIVA La instrucción If se utiliza para decidir qué acción


DOBLE   (IF-ELSE-ENDIF)  realizar entre dos posibles opciones.

SINTAXIS:

 If <comprobación lógica> Then


    [Acciones a realizarse si se cumple la condición]
Else
    [Acciones a realizarse si no se cumple la condición]
End If

 EJEMPLOS

El siguiente ejemplo muestra como dato de entrada la edad de una persona en la


variable v Edad y se debe informar si esta persona es mayor de edad (21 años).

Desarrollo:
If vEdad >= 21 Then
        MessageBox.Show("Es mayor de edad")
Else
        MessageBox.Show("Es menor de edad")
End If

ESTRUCTURA SELECTIVA COMPUESTA Sirve para encadenar sentencias IF de modo que


(ELSEIF) en un resultado

negativo de un IF se pueda evaluar otra expresión, que tendría a su vez otros enunciados
THEN y probablemente ELSE u otro ELSEIF.

EJEMPLO

Averiguar si un número tiene uno o más dígitos.

Desarrollo:

Dim numero, digitos As Integer                                         


Dim myString As String
numero = 53
    If numero < 10 Then
        digitos = 1
    ElseIf numero < 100 Then
         digitos = 2
    Else
         digitos = 3
    End If

    If digitos = 1 Then


         myString = "El número tiene un dígito"
    Else
        myString = "El número tiene mas de un dígito"
    End If
   

ESTRUCTURA SELECTIVA Este tipo de condiciones lo usamos para tener varios


MÚLTIPLE (SELECT CASE) tipos de comparaciones (Expresiones a evaluar).

Sintaxis:

Select Case <expresión a evaluar>


    Case <lista de expresiones>
        Instrucciones
    Case <otra lista de expresiones>
         Instrucciones
    Case Else ‟Si no se cumple ninguna de las listas de expresiones
End Select

EJEMPLO

El siguiente ejemplo pide por medio de un inputbox un numero entre 1 y 12 y muestra


una caja de mensaje com el nombre del mes del año correspondiente.

Desarrollo

Dim N As Integer
N = InputBox("Ingrese N?")
Select Case N
    Case 1 : MessageBox.Show("Enero")                          
    Case 2 : MessageBox.Show("Febrero")
    Case 3 : MessageBox.Show("Marzo")
    Case 4 : MessageBox.Show("Abril")
    Case 5 : MessageBox.Show("Mayo")
    Case 6 : MessageBox.Show("Junio")
    Case 7 : MessageBox.Show("Julio")
    Case 8 : MessageBox.Show("Agosto")
    Case 9 : MessageBox.Show("Septiembre")
    Case 10: MessageBox.Show("Octubre")
    Case 11: MessageBox.Show("Noviembre")
    Case 12: MessageBox.Show("Diciembre")
    Case Else
        MessageBox.Show("Error de datos")
End Selec

4. Estructuras algorítmicas repetitivas


Las estructuras algorítmicas repetitivas son aquellas que sirven para evitar andar repitiendo las
acciones varias veces.

Nos sirven para que una acción se ejecute un determinado número de veces, y depende del
cumplimiento de una determinada condición.

Las estructuras repetitivas permiten ejecutar acciones que pueden descomponerse en otras
acciones primitivas, esta estructura debe tener una entrada y una salida en la cual se ejecute
la acción un determinado o indeterminado numero de veces. Las estructuras repetitivas pueden
ser :WHILE (mientras), FOR (para), DO WHILE (hacer mientras).
Estructuras Repetitivas
o FOR (PARA)

Esta estructura ejecuta las acciones del cuerpo del bucle un número especificado de veces, y
de modo automático controla el número de iteraciones o pasos.

Esta estructura se compone de tres expresiones. La primera expresión es aquella que asigna


un valor inicial (acción a ejecutar), la segunda expresión es la que determina como y cuando se
continua o no el bucle, una condición que debe ser satisfecha para que se continue
la ejecución (expresión lógica), y la tercera expresión permite que el valor inicial (índice) se
modifique en cada pasada.

o WHILE (MIENTRAS)

Repite el cuerpo del bucle mientras se cumpla una determinada condición.

o DO- WHILE (HACER MIENTRAS)

La estructura HACER MIENTRAS cumple la misma función que la estructura MIENTRAS.

La diferencia está en que la estructura MIENTRAS comprueba la condición al inicio y repetir lo


hace al final. Es por ello que la estructura HACER MIENTRAS se ejecuta por lo menos una vez.

ESTRUCTURAS ALGORITMICAS SELECTIVAS Y REPETITIVAS


1. ALGORITMOS
1. Un algoritmo es una secuencia finita de instrucciones; cada una de estas instrucciones
tiene un significado preciso y se puede ejecutar con una cantidad finita de esfuerzo en un
tiempo finito. Un algoritmo se define como un método que se realiza paso a paso para la
solución de un problema que termina en un número finito de pasos.
2. ESTRUCTURAS ALGORITMICAS REPETITIVAS.
1. Las estructuras que repiten una secuencia de instrucciones un número determinado de
veces se denominan Bucles y se denomina Iteración al hecho de repetir la ejecución de
una secuencia de acciones.
1. Las estructuras repetitivas se utilizan cuando se quiere que un conjunto de
instrucciones se ejecuten un cierto número finito de veces, por ejemplo, escribir algo en
pantalla cierta cantidad de veces, mover un objeto de un punto a otra cierta cantidad
de pasos, o hacer una operación matemática cierta cantidad de veces. Se les llama
bucle o ciclo a todo proceso que se repite cierto número de veces dentro de un
pseudocódigo o un programa y las estructuras repetitivas nos permiten hacerlo de
forma sencilla. Las estructuras repetitivas se utilizan cuando se quiere
2. PUEDEN SER
1. MIENTRAS: ESTRUCTURA MIENTRAS (WHILE). es aquélla en que el cuerpo del
bucle se repite mientras se cumple una determinada condición.
1. PSEUDOCÓDIGO: Repite el cuerpo del bucle mientras se cumpla una determinada
condición. Mientras condición Acción_1 Acción_2 Acción_3 Acción_n Fin_mientras
1. VECTORES Son aquéllos de una sola dimensión, por lo que también son llamados
arreglos Unidimensionales. Ejemplo: Un vector de una dimensión llamado CALIF,
que consta de n elementos.
2. REPETIR: La estructura repetir cumple la misma función que la estructura mientras. La
diferencia está en que la estructura mientras comprueba la condición al inicio y repetir
lo hace al final. Es por ello que la estructura repetir se ejecuta por lo menos una vez.
1. PSEUDOCODIGO: Hacer Acción_1 Acción_2 Acción_3 Acción_n Mientras condición
3. DESDE: Esta estructura ejecuta las acciones del cuerpo del bucle un número
especificado de veces, y de modo automático controla el número de iteraciones o
pasos.
1. PSEUDOCODIGO: Desde i=0 hasta 100 Acción_1 Acción_2 Acción_3 Acción_n
Fin_desde
2. Es aquélla en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se
suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente
hasta el fin del proceso. La estructura secuencial tiene una entrada y una salida
1. CARACTERISTICAS: Las estructuras selectivas se utilizan para tomar decisiones lógicas;
de ahí que se suelan denominar también estructuras de decisión o alternativas. En las
estructuras selectivas se evalúa una condición y en función del resultado la misma se
realiza una opción u otra. Las condiciones se especifican usando expresiones lógicas. La
representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then,
else o bien en español si, entonces, sino), con una figura geométrica en forma de rombo o
bien con un triángulo en el interior de una caja rectangular.
3. PUEDEN SER
1. SIMPLES: (SI-ENTONCES/IF-THEN). La estructura alternativa simple si-entonces (en
inglés if-then o bien IF-THEN ) ejecuta una determinada acción cuando se cumple una
determinada condición. La selección si-entonces evalúa la condición y . . Si la condición es
verdadera, entonces ejecuta la acción S1 (o acciones caso de ser S1 una acción
compuesta y constar de varias acciones). Si la condición es falsa, entonces no hacer nada.
1. PSEUDOCÓDIGO: Si <condición> Entonces <acción S1> Fin_si
2. DOBLES : ALTERNATIVA DOBLE ( SI-ENTONCES-SI_NO / IF - THEN - ELSE ): La
estructura anterior es muy limitada y normalmente se necesitará una estructura que
permita elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no
de una determinada condición.
1. PSEUDOCODIGO: Si < condición > entonces < acción S1 > si_no <acción S2> fin_si
3. MULTIPLES: SEGÚN _ SEA, CASO DE / CASE). Cuando existen más de dos elecciones
(alternativas) posibles, es cuando se presenta el caso de alternativas múltiples. Si el
número de alternativas es grande puede plantear serios problemas de escritura del
algoritmo y naturalmente de legibilidad. La estructura de decisión múltiple evaluará una
expresión que podrá tomar n valores distintos 1,2,3,4,..n . Según que elija uno de estos
valores en la condición, se realizará una de las n acciones, o lo que es igual, el flujo del
algoritmo seguirá un determinado camino entre los n posible
1. PSEUDOCÓDIGO: [e1]: acción S1 [e2]: acción S2 : [en]: acción Sn else acción Sx
end_case

5. Estructuras de datos: arreglos y registros


Los arreglos son estructuras de datos que viven en memoria principal de la computadora y la
característica fundamental, de la memoria principal, es que el acceso a cualquier posición de
memoria, es constante, ya sea para almacenar datos o recuperar datos de una posición de
memoria. Estamos entonces ante una estructura de datos que responde con un órden de
magnitud O(1) para almacenar y recuperar datos de un elemento del arreglo. Claro está que el
espacio que demanda un arreglo, es de un órden de magnitud O(n), o sea lineal.

Archivos en Arreglos

 Definiciones de Archivos:
o Un archivo ( file ) es un colección de registros ( records ).
o Un registro tiene uno o más campos ( fields ).
o Un campo es un contenedor de información.
o Una clave ( key ) es un campo usado para distinguir a los registros.
o Un ejemplo :
 Guía Telefónica :
 Campo Nombre
 Campo Dirección
 Campo Número
 Aplicación 1 : Busca por Nombre
 Aplicación 2 : Busca por Número
 Aplicación 3 : Busca por Dirección
 Las condiciones iniciales son las siguientes :
o Utilizaremos arreglos para almacenar el archivo en memoria principal.
o Los registros del archivo ya estan en memoria principal.
o Los registros del archivo los denominaremos R1, R2, R3, ..., Ri, ..., Rn donde
1=< i =< n.
o Existen en memoria tantos arreglos como campos tenga el archivo.
o Existen en memoria n slots, donde en cada uno de ellos se dispone un registro
del archivo.
 Registros almacenados secuencialmente en memoria :
 R1 R2 R3 Ri Rn
 ........------------------.......--------.......--------.......
 | | | | | | | |
 ........------------------.......--------.......--------.......
 Registros almacenados no secuencialmente en memoria :
 Indice int int float int boolean int string Registros
 *----* *----* *----------* *----* *--------* *----* *-------------------*
 0 | || || || || || || | R1
 *----* *----* *----------* *----* *--------* *----* *-------------------*
 1 | || || || || || || | R2
 ......*----*.*----*.*----------*.*----*.*--------*.*----*.*-------------------*......
 2 . | || || || || || || | . slot R3
 ......*----*.*----*.*----------*.*----*.*--------*.*----*.*-------------------*......
 3 | || || || || || || | R4
 *----* *----* *----------* *----* *--------* *----* *-------------------*
 4 | || || || || || || | R5
 *----* *----* *----------* *----* *--------* *----* *-------------------*
 5 | || || || || || || | R6
 *----* *----* *----------* *----* *--------* *----* *-------------------*
 . . .. .. .. .. .. .. .
 . . .. .. .. .. .. .. .
 . . .. .. .. .. .. .. .
 . . .. .. .. .. .. .. .
 *----* *----* *----------* *----* *--------* *----* *-------------------*
 n-3 | || || || || || || | Rn-2
 *----* *----* *----------* *----* *--------* *----* *-------------------*
 n-2 | || || || || || || | Rn-1
 *----* *----* *----------* *----* *--------* *----* *-------------------*
 n-1 | || || || || || || | Rn
 *----* *----* *----------* *----* *--------* *----* *-------------------*

 ¿Cómo definiría un grupo de programadores un arreglo?


o Un conjunto de posiciones de memoria consecutivas.
o Un conjunto de pares de valores, índice y valor, donde para cada índice definido,
hay un valor asociado con dicho índice.
o Una colección de variables del mismo tipo, que son referenciadas con un
nombre común.
 ¿Cuál es el error de estas definiciones?
o Hay confusión entre la estructura de datos y la implementación.
o La relación entre índice y valor, en términos matemáticos es una
correspondencia o mapping, pero nos interesa un enfoque de ciencias de la
computación.
 ¿Cuál es la definición que interesa a las ciencias de la computación?
o En ciencias de la computación debe darse una definición más funcional,
explicitando las definiciones de las funciones que son permitidas sobre la
estructura de datos.
o Por ejemplo, en el caso de los arreglos, arrays en inglés, solo nos interesan dos
funciones, la que recupera valores desde el arreglo y la que almacena valores
en el arreglo.
o La siguiente es una definición, acorde con las ciencias de la computación:
o structure ARRAY(value, index)
o
o declare CREATE() ----> array
o RETRIEVE(array, index) ----> value
o STORE(array, index, value) ----> array
o
o for all A perteneciente a array
o i, j perteneciente a index
o x perteneciente a value
o
o let
o RETRIEVE(CREATE,i) ====> error
o RETRIEVE(STORE(A,i,x),j) ====> if EQUAL(i,j) then x else
RETRIEVE(A,j)
o end
o
o end ARRAY

Donde :
 CREATE produce un nuevo arreglo vacío.
 RETRIEVE con dos entradas, un arreglo y un índice, devuelve el valor
apropiado o un error.
 STORE almacena un nuevo par, índice y valor, en el arreglo.
 El primer axioma aclara que un arreglo recién creado no tiene duplas
índice y valor, y querer recuperar el valor de un índice cualquiera nos
lleva a un error.
 El segundo axioma aclara que recuperar un valor que acaba de
almacenarse equivale a preguntarse acerca de los índices intervinientes.
 ¿Cuán performante es esta estructura de datos?
o Esta pregunta depende de la implementación de la estructura de datos. Por
ejemplo, si los arreglos se implementan en memoria principal convencional con
acceso al azar a cualquier posición de memoria, las funciones RETRIEVE y
STORE se ejecutan en un tiempo constante, absolutamente independiente de la
cantidad de pares que conforman el arreglo, estando en presencia de un órden
de magnitud del tipo O(1).
 ¿Cómo definir arreglos n dimensionales?
o Si interpretamos los índices como n dimensionales ( i1, i2, ..., in ) estamos en
presencia de arreglos n dimensionales.
 ¿Qué datos podemos almacenar en arreglos?
o Ruleta
 7 10 8 17 29 11 13 2 32 35 24 17 0 5 16
o Semana
 "Lunes" "Martes" "Miercoles" "Jueves" "Viernes" "Sabado" "Domingo"
o Edificio
 "Subsuelo" "Planta Baja" "Primer Piso" "Segundo Piso" "Terraza"
o Temperatura
 "27,2 C" "27,9 C" "28,5 C" "29,3 C" "31,0 C" "29,8 C" "28,6 C"
 27,2 27,9 28,5 29,3 31,0 29,8 28,6
o Polinomio
 1 x**4 + 10 x**3 + 3 x**2 + 0 x**1 + 34 x**0
 34 0 3 10 1

‰ Datos estructurados: colección de datos caracterizada por su organización y las operaciones


que se pueden realizar sobre ella. ‰ Están compuestos por otros tipos de datos más simples.
Están compuestos por otros tipos de datos más simples. ‰ Según la forma de asignación de
memoria:
● Estructuras de datos estáticas. 9 Reservan espacio de almacenamiento en tiempo de
compilación Reservan espacio de almacenamiento en tiempo de compilación. 9 Su tamaño y
posición en memoria no cambian a lo largo de la ejecución del programa.
● Estructuras de datos dinámicas. Estructuras de datos dinámicas. 9 Reservan espacio de
almacenamiento en tiempo de ejecución. 9 Su tamaño y posición en memoria pueden cambiar
a lo largo de la ejecución del programa.
‰ Estructura de datos formada por un conjunto finito y ordenado de elementos homogéneos.
● Elementos homogéneos: todos los elementos son del mismo tipo: el tipo base del array.
● Serie finita: tiene un tamaño limitado que habrá que definir en la declaración y que no puede
cambiar.
● Ordenado: cada elemento puede ser identificado por la posición que ocupa en la estructura y
ser tratado individualmente. 9 En todo caso, estarán ordenados por su posición dentro de la
estructura. ‰ Se trata de una estructura de acceso directo o aleatorio.
● Es posible acceder a cada elemento de forma individual. 9 Los elementos pueden
seleccionarse arbitrariamente y son igualmente accesibles. 9 Para designar a un elemento se
utilizará el selector. o Uno o más índices que indican su posición dentro de la estructura.
● Dependiendo del número de índices necesario para referenciar un componente habrá:
Dependiendo del número de índices necesario para referenciar un componente habrá: 9 Arrays
unidimensionales (vectores). 9 Arrays bidimensionales (matrices) 9 Arrays multidimensional.
‰ La referencia a un elemento de hace mediante un único índice. ● Sería la repetición de una
variable del tipo base del array. ‰ ¿Có d t t d ¿Cómo se pue den tra tar de n d t a tos h é?
omog éneos ? ● Solución 1: Utilizar una única variable y destruir el contenido anterior en cada
asignación. 9 No se puede recuperar la información. ● Solución 2: Utilizar n variables. 9
Impracticable. ● Solución 3: Utilizar un array de n elementos. 9 Repite un dato simple n veces.
Declaración de variables de tipo vector ‰ En los ti p , py os de datos estándar, el com pilador
ya conoce cómo almacenar el dato en memoria y cómo interpretar su contenido. ‰ E l nos
arrays será i d á d i l ti á necesario a dem ás decir cual es su tipo base, su número de
elementos y cómo se hará referencia a los componentes individuales. ● El compilador sabe lo
que es un array, pero no sabe ni su tipo, ni su número de elementos ni cómo se referenciará
cada elemento. ‰ Declaración: var array[limInf..limSup] de tipoBase : nombreArray
Declaración de variables de tipo vector (II) ‰ tipoBase. ● Indicaría el tipo de dato de cada
elemento del array. ● Puede ser cualquier tipo de dato estándar o definido por el usuario. ‰
nombreArra y. ● Un identificador válido. ‰ limInf..limSup. ● Doble función: 9 Es un subrango
con todos los valores posible que podrá tomar un índice de array. o Los índices debe ser
mayores o iguales a limInf y mayores o iguales a limSup. 9 Indica también el número de
elementos del array: todos los valores posibles entre los dos límites. ● Normalmente se tratará
de valores enteros, pero en algunos lenguajes se puede utilizar cualquier valor de tipo ordinal
(como pueden ser los datos de tipo carácter)

También podría gustarte