1.3Cadenas, Arreglos y Registros.
Arreglos. Es una serie de datos del mismo tipo, también conocidos como vectores o rangos. Una arreglo esta constituido por varias posiciones de memoria de igual tamaño consecutivas que tienen el mismo tipo de variable y se accesan usando el mismo nombre seguido de un subíndice entre corchetes. La cantidad total de espacio que se usa por un arreglo depende de 2 cosas: El número de elementos en el arreglo y El tamaño del arreglo.

¿Por qué Usar los Arreglos? Por que son uno de los factores esenciales de los programas de computadora. Permiten que se haga referencia a entradas individuales en una tabla de elementos de datos usando el mismo código y variando el índice del elemento.
La Declaración de un Arreglo es igual a como se haría con una variable, a excepción de que también se especifica la cantidad de elementos en el arreglo encerrado entre corchetes de la siguiente manera: tipo nombre_del_arreglo[tamaño];
Cuando se declara un arreglo, sus valores se pueden inicializar de la siguiente manera:
Int lista[9]= {0, 4, 78, 5, 32, 9, 77, 1, 23}
No trate de engañar al Compilador inicializando mas valores en el arreglo de los que puede, ya que este no lo obedecerá, sin embargo, si inicializa solo una parte del arreglo, las restantes posiciones se inicializan con 0´s.
Si desea imprimir un valor de un arreglo, la línea luce así: printf ("%d", lista[1]);
Una Característica importante de los arreglos en C es que no se pueden modificar los limites superior e inferior (y por tanto el rango) durante el programa. El limite inferior se fija siempre en 0 y el superior lo fija el programador, es decir:
Se han visto hasta ahora, arreglos llamados Unidimensionales, pero existen también los llamados Bidimensionales, y se declaran así: tipo nombre_arreglo_bi[tamaño][tamaño]; Estos también son comúnmente conocidas como Matrices, El tamaño en la declaración de la matriz estipula Renglon-Columna y se representarían así:
Estos también se pueden inicializar:
Int lista_nueva[2][2]={{14, 34},{23, 67}}; y se acceden de la misma manera que un unidimensional. Ejemplo printf ("%d", lista_nueva[1][0]); Y de esta forma se pueden construir arreglos Multidimensionales p/e:
int grande[3][4][7]; ó incluso int mas_grande [5][7][8][2][3][2]; pero se debe de tener cuidado al manejar estos arreglos por que son complejos de manipular a la larga. A pesar de ser Bidimensionales, en la memoria siguen siendo representados como espacios secuenciales lineales.
Cadenas de Caracteres.
Es uno de los tipos de datos más usados en cualquier lenguaje de programación, y en VB 2005 no podría faltar jeje.
Una cadena (o string en inglés) es un tipo de dato que permite almacenar caracteres o texto en general. Por ejemplo:
Dim hola as String = "Hola mundo"
Con eso se ha declarado una cadena que contiene la frase "hola mundo". Una cadena se declara entre comillas dobles. Todo lo que esté dentro de las comillas se considerará como el String:
Dim numerito as String = "123456789"
El ejemplo anterior no es un nùmero, sino una cadena, un string que tiene como contenido dígitos.
Operaciones que se pueden hacer con cadenas hay varias; por ejemplo concatener 2 cadenas:
Dim hola as String = "Hola mundo, "
Dim hola2 as String = "es un bonito día"
Dim total as String = hola & hola2
MsgBox(total)
Si lo ejecutas, se muestra un mensaje con el texto de la cadena, "Hola mundo, es un bonito día". Como viste, para concatenar usas el simbolo & (el ampersand).
Hay otras operaciones que ofrece el VB 2005; por ejemplo, puedes ver qué operaciones se pueden hacer si a una variable String le pones punto (es decir, por ejemplo, total. ). Justo al poner el punto verás una lista con todas las operaciones que puedes hacer.
La ayuda MSDN de Microsoft:
http://msdn.microsoft.com/es-es/library/…
Registros.
Es un conjunto de datos que se compone de campos. Por ejemplo, en una tabla se tienen los campos: TituloLibro, Año y Autor; un registro vendría a ser lo siguiente:
"Cien Años de Soledad",1967 , "Gabo"
Una imagen de registros.
http://oreilly.com/catalog/9780596006815…
1.4Recursión.
Se dice que algo es recursivo si se define en función de sí mismo o a sí mismo. También se dice que nunca se debe incluir la misma palabra en la definición de ésta. El caso es que las definiciones recursivas aparecen con frecuencia en matemáticas, e incluso en la vida real. Un ejemplo: basta con apuntar una cámara al monitor que muestra la imagen que muestra esa cámara. El efecto es verdaderamente curioso, en especial cuando se mueve la cámara alrededor del monitor.
En matemáticas, tenemos múltiples definiciones recursivas:
- Números naturales:
(1) 1 es número natural.
(2) el siguiente número de un número natural es un número natural
- El factorial: n!, de un número natural (incluido el 0):
(1) si n = 0 entonces: 0! = 1
(2) si n > 0 entonces: n! = n · (n-1)!
Asimismo, puede definirse un programa en términos recursivos, como una serie de pasos básicos, o paso base (también conocido como condición de parada), y un paso recursivo, donde vuelve a llamarse al programa. En un computador, esta serie de pasos recursivos debe ser finita, terminando con un paso base. Es decir, a cada paso recursivo se reduce el número de pasos que hay que dar para terminar, llegando un momento en el que no se verifica la condición de paso a la recursividad. Ni el paso base ni el paso recursivo son necesariamente únicos.
Por otra parte, la recursividad también puede ser indirecta, si tenemos un procedimiento P que llama a otro Q y éste a su vez llama a P. También en estos casos debe haber una condición de parada.
Existen ciertas estructuras cuya definición es recursiva, tales como los árboles, y los algoritmos que utilizan árboles suelen ser en general recursivos.
Un ejemplo de programa recursivo en C, el factorial:
int factorial(int n)
{
if (n == 0) return 1;
return n * factorial(n-1);
}
1.5Principios de los TDA
El concepto de tipo de dato abstracto (TDA, Abstract Data Type), fue propuesto por primera vez hacia 1974 por John Guttag y otros, pero no fue hasta 1975 que por primera vez Liskov lo propuso para el lenguaje CLU.
El lenguaje Turbo Pascal fue determinante para la común aceptación de los TDAs con la introducción de las Units, si bien estas no cumplen con las características básicas de un Tipo de dato Abstracto como por ejemplo la encapsulación de los datos. El lenguaje Ada pudo implementar exitosamente los TDAs con sus Packages. Vale recordar que estos dos últimos lenguajes soportan formalmente la Programación modular.
Definición
Con mucha frecuencia se utilizan los términos TDA y Abstracción de Datos de manera equivalente, y esto es debido a la similitud e interdependencia de ambos. Sin embargo, es importante definir por separado los dos conceptos.
Como ya se mencionó, los Lenguajes de Programación Orientados a Objetos son lenguajes formados por diferentes métodos o funciones y que son llamados en el orden en que el programa lo requiere, o el usuario lo desea. La abstracción de datos consiste en ocultar las características de un objeto y obviarlas, de manera que solamente utilizamos el nombre del objeto en nuestro programa. Esto es similar a una situación de la vida cotidiana. Cuando yo digo la palabra “perro”, usted no necesita que yo le diga lo que hace el perro. Usted ya sabe la forma que tiene un perro y también sabe que los perros ladran. De manera que yo abstraigo todas las características de todos los perros en un solo término, al cual llamo “perro”. A esto se le llama ‘Abstracción’ y es un concepto muy útil en la programación, ya que un usuario no necesita mencionar todas las características y funciones de un objeto cada vez que éste se utiliza, sino que son declaradas por separado en el programa y simplemente se utiliza el término abstracto (“perro”) para mencionarlo.
En el ejemplo anterior, “perro” es un Tipo de Dato Abstracto y todo el proceso de definirlo, implementarlo y mencionarlo es a lo que llamamos Abstracción de Datos.