Arreglos y Recursividad
-
Upload
sandrasamco6230 -
Category
Documents
-
view
12 -
download
1
description
Transcript of Arreglos y Recursividad
7/21/2019 Arreglos y Recursividad
http://slidepdf.com/reader/full/arreglos-y-recursividad 1/4
ARREGLOS (UNIDIMENSIONALES Y BIDIMENSIONALES)
Un arreglo (array) es una secuencia finita y ordenada de posiciones de memoria que
almacena datos del mismo tipo (Ej. Caracter- char , entero- int o flotante –
float) y a loscuales se puede acceder directamente haciendo uso de subíndices.
Los tipos de arreglos que estudiaremos son:
1) Arreglos Unidimensionales
2) Arreglos Bidimensionales
1) Arreglos Unidimensionales
Es el tipo más simple de arreglos, y está conformado por una sola dimensión con n
número de elementos del mismo tipo.
Arreglo unidimensional, se representa gráficamente un arreglo llamado Demo con 3
posiciones, donde cada posición representa un elemento que estará acompañado por
un número denominado subíndice que indica la posición del elemento dentro del
arreglo.
Demo99 10.4 120
0 1 2
Figura No.1. Arreglo unidimensional.
Como el nombre del arreglo es Demo, entonces para referenciar el elemento en la
posición 0 donde está almacenado el número 99, se utiliza la siguiente sintaxis:
Demo[0].
Para el elemento en la posición 1, donde se almacena el número 10.4, la sintaxis es:
Demo[1].
Para el elemento en la posición 2, donde se almacena el número 120, la sintaxis es:
Demo[2].
En éste ejemplo, el tamaño o longitud del arreglo es de 3 elementos (0, 1, 2); nótese
que el primer elemento está ubicado en la posición 0.
Elemento
SubíndiceNombre del vector
7/21/2019 Arreglos y Recursividad
http://slidepdf.com/reader/full/arreglos-y-recursividad 2/4
2) Arreglos Bidimensionales.
Los arreglos Bidimensionales también conocidos como tablas o matrices, consiste en
una composición de filas y columnas de elementos del mismo tipo.
En la figura No. 2., se ilustra una matriz de 12 elementos (3x4) con 3 filas y 6 columnas.
Figura No. 2.- Arreglo bidimensional
Para ubicar un elemento dentro de una matriz se utilizan dos subíndices: el primer
subíndice hace referencia a la fila y el segundo subíndice hace referencia a la columna.
0 1 2 3
0
1 38
2
Por consiguiente para ubicar el elemento que contiene el número 38 dentro de la matriz
anterior, se denota de la siguiente manera: Demo [1,3] lo que significa que el elemento
que contiene el número 38 se encuentra en un matriz denominada Demo en la fila 1 y
la columna 3.
Inicialización de arreglos bidimensionales:
Como en los arreglos unidimensionales, los arreglos bidimensionales pueden
inicializarse desde su declaración en el programa. Esto se logra enlistando los valores
Fila 0
Columna 0
Fila 1
Fila 2
Columna 1
Columna 2
Columna 3
Elemento
Fila
Columna
Demo
7/21/2019 Arreglos y Recursividad
http://slidepdf.com/reader/full/arreglos-y-recursividad 3/4
iniciales dentro de llaves y separándolo con comas. Además las llaves pueden usarse
para separar filas individuales. Por ejemplo:
Int Demo[2][3] = {{4,5,6},
{8, 12, 88}};
La anterior instrucción declara que Demo es un arreglo de números enteros con dos
filas y tres columnas, con los valores dados en la declaración. El primer conjunto de
llaves internas contiene los valores para la fila 0 y el segundo conjunto de llaves internas
contiene los valores para la fila 1.
Aunque siempre se requieren las comas en las llaves de inicialización, las llaves internas
pueden omitirse. Por tanto la inicialización para Demo puede escribirse como:
Int Demo[2][3] = {4,5,6,
8, 12, 88};
O también:
Int Demo[2][3] = {4,5,6, 8, 12, 88}
7/21/2019 Arreglos y Recursividad
http://slidepdf.com/reader/full/arreglos-y-recursividad 4/4
RECURSIVIDAD
Una función recursiva es aquella función que puede resolver un problema llamándose
así misma varias veces hasta obtener la solución al problema.
Aspectos a tener en cuenta en Recursividad.
La recursividad es un método algorítmico alternativo a la iteracción, ya que toda
sentencia estructurada iterativa puede convertirse en un algoritmo recursivo y
viceversa
Para que un algoritmo recursivo sea correcto es que no genere una secuencia
infinita de llamadas sobre sí mismo, siendo evidente que cualquier algoritmo que
genera esta secuencia no puede terminar nunca, para lo cual debe existir una
instrucción que permita salir de la recursividad.
La mayoría de los problemas pueden resolverse de una manera directa usandométodos no recursivos. Sin embargo, unos problemas pueden resolverse de
manera más lógica y original mediante la recursión1.
No todos los lenguajes de programación admiten recursividad (C++, si).
La recursividad consume muchos recursos de memoria y tiempo de ejecución, yse debe aplicar a funciones que realmente le saquen provecho a éstos recursos.
Tipos de recursividad2:
La recursividad simple no final, donde el caso recursivo consiste en una sola
llamada a la función.
La recursividad múltiple, donde el caso recursivo consta de más de una
llamada de la función.
La recursividad anidada en las que hay llamadas recursivas en el argumento
de la función.
La recursividad indirecta o cruzada, en la que una función llama a otra y esa
otra llama a la primera.
1 YEDIDYAH L, MOSHE J. A, AARON M. TENENBAUM. Estructura de Datos con C y C++. Pearson Education.
México 1997.
2
BERLANGA LL. RAFAEL, IÑESTA Q. J OSÉ MANUEL. Introducción a la Programación en Pascal.Universitat Jaume I.