Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arreglos
Profesor(a): Alumno(a):
Mia khalifa Michell Manzanillo
INTRODUCCIÓN
Vectores.
Donde:
Nótese que el bucle recorre los elementos del vector empezando por el
elemento 0 (i=0) y hasta el elemento TAM-1 (condición i < TAM).
Matrices.
Las matrices, también llamadas tablas bidimensionales, no son otra cosa que
vectores con dos dimensiones. Por lo que los conceptos de acceso,
inicialización, etc. son similares. La declaración de una variable matriz tiene la
forma siguiente:
Donde:
--- [tamaño1] [tamaño2] es una expresión entera constante que indica el
numero de filas y columnas respectivamente que contendrá la matriz.
int a[10][5];
int main()
{
int a[10][5];
int i, j;
for (i=0; i<10; i++)
for (j=0; j<5; j++)
a[i][j] = 0;
return 0;
}
Ejemplo.
#include <stdio.h>
#define TALLA 3
int main()
{
float a[TALLA][TALLA], b[TALLA][TALLA];
float s[TALLA][TALLA], p[TALLA][TALLA];
int i, j, k;
/* Lectura de la matriz a */
for (i=0; i<TALLA; i++)
for (j=0; j<TALLA; j++) {
printf ("Elemento (%d, %d): ", i, j);
scanf ("%f", &a[i][j]);
}
/* Lectura de la matriz b */
for (i=0; i<TALLA; i++)
for (j=0; j<TALLA; j++) {
printf ("Elemento (%d, %d): ", i, j);
scanf ("%f", &b[i][j]);
}
/* Calculo de la suma */
for (i=0; i<TALLA; i++)
for (j=0; j<TALLA; j++)
s[i][j] = a[i][j] + b[i][j]
Este tipo de tablas se caracteriza por tener tres o más dimensiones. Al igual
que vectores y matrices, todos los elementos almacenados en ellas son del
mismo tipo de datos. La declaración de una tabla multidimensional tiene la
forma siguiente:
Donde:
int a[10][8][3];
En este ejemplo, a es un arreglo de 10 × 8 x 3 enteros
#include <stdio.h>
int main()
{
float b[3][2][4];
int i, j, k;
Ejemplo
#include <stdio.h>
#include <stdlib.h>
#define DIM 10
int main()
{
int tabla_random [DIM][DIM][DIM], a, b, c;
for (a= 0; a< DIM; a++)
for (b= 0; b< DIM; b++)
for (c= 0; c< DIM; c++)
tabla_random[a][b][c] = rand();
/* Muestra series de DIM en DIM elementos. */
for (a= 0; a< DIM; a++)
for (b= 0; b < DIM; b++) {
for (c= 0; c < DIM; c++) {
printf("\n tabla[%d][%d][%d] = ", a, b, c );
printf("%d", tabla random[a][b][c] );
}
printf("\nPulse ENTER para seguir" );
getchar();
}
return 0;
}
int var1[10];
char nombre[50];
float numeros[200];
long double cantidades[25];
Por supuesto los subíndices resultantes de las operaciones tienen que estar
acotados a aquellos para los que el array fue declarado y ser enteros.
Inicialización de Arreglos: La inicialización de los arrays sigue las mismas
reglas que vimos para los otros tipos de variables, es decir: Si se declaran
como globales (afuera del cuerpo de todas las funciones) cada uno de sus
elementos será automáticamente inicializado a cero. Si en cambio, su
declaración es local a una función, no se realiza ninguna inicialización,
quedando a cargo del programa cargar los valores de inicio. La inicialización
de un array local, puede realizarse en su declaración, dando una lista de
valores iníciales:
int numero[8] = { 4 , 7 , 0 , 0 , 0 , 9 , 8 , 7 } ;
Obsérvese que la lista está delimitada por llaves. Otra posibilidad, sólo válida
cuando se inicializan todos los elementos del array, es escribir:
int numero[] = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , } ;
En éste caso los tres primeros elementos del mismo valdrán 1, y los restantes
cero en el caso que la declaración sea global, ó cualquier valor impredecible
en el caso de que sea local.
Métodos de Ordenamiento
a)Selección Directa
i <- 1
min <-i
j <- i + 1
min <-j
j <- j + 1
intercambia(arreglo[min],arreglo[i])
i <- i +1
b)Ordenación por Burbuja
i <- 1
j <- N
intercambia(arreglo[j],arreglo[j-1])
j<j-1
i <- i +1
procedimiento mezclar(dat,izqp,izqu,derp,deru)
inicio
en caso contrario
temporal[ind] <=dat[dera]
a)Búsqueda Secuencial
ind <- 1
en caso contrario
b)Búsqueda Binaria
Las condiciones que debe cumplir el arreglo para poder usar búsqueda binaria
son que el arreglo este ordenado y que se conozca el numero de elementos.
primero <- 1
ultimo <- N
en caso contrario
en caso contrario
La idea principal de este método consiste en aplicar una función que traduce el
valor del elemento buscado en un rango de direcciones relativas. Una
desventaja importante de este método es que puede ocasionar colisiones.
inicio
il <- inicio
repite
en caso contrario