SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
ARRAYS (LISTAS Y TABLAS)
       (               )
Sugerencias y herramientas para crear para crear y presentar diapositivas en
formato panorámico
Contenido
 Arrays
 Inicialización de un array
 Arrays de caracteres y cadenas de texto
 Arrays multidimensionales
 Utilización de arrays como parámetros
 Ordenación de listas
 Búsqueda en listas
 Resumen
 Ejercicios
 E
Arrays
 Una array (lista o tabla) es una secuencia de datos del
 mismo tipo. Los datos se llaman elementos del array y se
 numeran consecutivamente 0,1,2,3, etc. Normalmente el
 array se utiliza para almacenar tipos tales como char, int o
     y            p                p                  ,
 float
 Los elementos de un array se numeran, y estos números se
 denominan valores índice o subíndice del array
Declaración de un array
 Un array se declara de modo similar a otros tipos
          y                                    p
 de datos, excepto que se debe indicar al
 compilador el tamaño o longitud del array. La
 sintaxis para declarar un array de una dimensión
 determinada es;
 Tipo nombreArray [numeroDeElementos];
   Int numeros[10];
Cont…
Cont
 Se puede acceder a cada elemento del array
 utilizando un índice en el nombre del array
   Printf(“%d n”,numeros [4]);
 visualiza el valor d l elemento 5 d l array. L arrays
  i li      l l del l              del        Los
 siempre comienzan en el elemento 0
   #define N 20
   Float vector [N];
   Scanf(“%f”,&vector[2]);
Precaución
 C no comprueba que los índices del array están
 dentro del rango definido. Así, por ejemplo, se
 puede intentar acceder a números [12] y el
 compilador no producirá ningún error, lo que puede
 producir un fallo en su programa
Almacenamiento en memoria de los arrays
 Los elementos de los
 arrays se almacenan en
 bloques contiguos Así
          contiguos.
 por ejemplo los arrays
   Int edades [5]
              [5];
   Char codigos [5]
Inicialización de un array
 Se deben asignar valores a los elementos del array
                g                                    y
 antes de utilizarlos, tal como se asigna valores a
 variables
 Cuando se inicializa un array, el tamaño del array se
 puede determinar automáticamente por las constantes
 de inicialización
 d i i i li ió
   Int numeros [6]={10,20,30,40,50,60}
   Int [] {3 4 5}
   I t n[] ={3,4,5}
Ejemplo 8 2
        8.2
 /*Programa que lee 8 numeros y a continuacion visualiza
 el total de los numeros*/                                 }
 #include <stdio.h>                                            printf("nLista de numeros: ");
 #include <stdlib.h>                                           for (i=0; i<NUM; i++)
 # define NUM 8
                                                               {
 int main ()
                                                                  printf ("%d",nums[i]);
 {
                                                                  total += nums[i];
     int nums [NUM];
     int i;                                                       }
     int total =0;                                                printf( nLa
                                                                  printf("nLa suma de los numeros es
                                                           %dn",total);
     for (i=0; i<NUM; i++)
     {
                                                                  system("PAUSE");
         printf("Por favor, introduzca el numero; ");             return 0;
         scanf("%d",&nums[i]);                                    }
Arrays de caracteres y cadenas de texto
 Una cadena de texto es
 un       conjunto    de
 caracteres, tales como
 <ABCDEFG>.
 <ABCDEFG> C soporta
 cadenas       de   texto
 utilizando un array de
 caracteres que contenga
 una      secuencia   de
 caracteres
Cont…
Cont
 El medio mas fácil de inicializar un array es hacer la
 inicialización de la declaración;
   Char Cadena[7] = “ABCDEF”;
 La asignación de valores a cadena se puede hacer del
 modo siguiente;
   Cadena [0]=‘A’;
   Cadena [1]=‘B’;
   …
   Cadena[6]= 0 ;
   Cadena[6]=‘0’;
Ejemplo 8 4
        8.4
 /*visualiza un array formado   p
                                printf("nIntroduzca una lista de %d
                                       (
 con enteros positivos*/
                 i i */         elementos positivos.n",MAX);
 #include <stdio.h>             for (i = 0; i < MAX; muestra[i]>0?++i:i)
                                scanf ("%f",&muestra[i]);
 #include <stdlib.h>
            stdlib.h
                                printf ("nDatos leidos del teclado: " ) ;
 #define MAX 10                 for ( i = 0; i < MAX; ++i)
 float muestra[MAX];            printf ("%ft",muestra[i]) ;
 int main()                     system("PAUSE");
                                return 0;
 {
                                }
 int i;
Arrays multidimensionales
 Los arrays multidimensionales son aquellos que tienen
 mas de una dimensión y, en consecuencia, mas de un
 índice
 Los
 L arrays mas usuales son l d d di
                      l       los de dos dimensiones,
                                                 i
 conocidos también por el nombre de tablas o matrices
 La sintaxis para la declaración de un array de dos
 dimensiones es
   <tipo de datoElemento><nombre array>[<numero de
   filas>][<numero d columnas>]
   fil   ][        de l       ]
Inicialización de arrays multidimensionales
 Int tabla [2][3]={{51,52,53},{54,55,56}};
                  {{         }{           }}
 Int tabla2 [3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
Acceso a los elementos de los arrays bidimensionales
  Se puede acceder a los elementos de arrays bidimensionales de
  igual f
  i    l forma que a l elementos d un array unidimensional
                     los l       de           idi    i l
  El formato general para la asignación directa de valores a los
  elementos es;
    Inserción de elementos
    <nombre array>[indice fila][indice columna]=valor elemento;
    Tabla [2][3]=4.5;
           [2][3] 4.5;
    Extracción de elementos
    <variable>=<nombre array>[indice fila][indice columna];
    Ventas=Tabla[1][1];
    V        T bl [1][1]
Acceso a elementos mediante bucles
 Se puede acceder a los elementos de arrays
      p                                    y
 bidimensionales mediante bucles anidados. Su
 sintaxis es;
  Int IndiceFila, IndiceCol;
  For (IndiceFila=0; IndiceFila<NumFilas; ++IndiceFila)
       (                                              )
  For (indiceCol=0; IndiceCol<NumCol; ++IndiceCol)
  Procesar elemento [IndiceFila][indiceCol];
                        [       ][        ];
Ejemplo 8 9
        8.9
 /*llenala tabla con datos de entrada y muestar los
 resultados*/                                         }
 #include <stdio.h>                                   /* Visualizar la tabla */
 #include <stdlib.h>                                  for (fila = 0; fila < 2; fila++)
 int main ()
                                                      {
 {
                                                      for (col = 0; col < 4; col++)
 float discos [2] [4] ;
                                                      {
 int fila, col;
 for (fila = 0; fila < 2; fila++)                     printf ("n Pts %.lf n",discos [fila] [col] ) ;
 {                                                    }
 for (col = 0; col < 4; col++)                        }
 {                                                    system("PAUSE");
 scanf ("%f",&discos[fila][col]) ;                    return 0; ;
 }                                                    }
Arrays de mas de dos dimensiones
 C proporciona la posibilidad de almacenar varias dimensiones, un
 array tridimensional se puede considerar como un conjunto d
          idi     i l          d       id               j      de
 arrays bidimensionales combinados juntos para formar, en
 profundidad una tercera dimensión
 El código siguiente permite procesar el array
   int pagina, linea, columna;
   for (pagina = 0; pagina < PAGINAS; ++pagina)
       (p g          ;p g                ;   p g )
   for (linea = 0; linea < LINEAS; ++linea)
   for (columna = 0; columna < COLUMNAS; ++columna)
   <procesar Libro [pagina] [ lineal [columna] >
Utilización de arrays como parámetros
 En C todos los arrays se pasan por referencia
 (dirección). Esto significa que cuando se llama a una
 función y se utiliza un array como parámetro, se debe
 tener cuidado de no modificar los arrays en una
 función llamada
 El código que se utiliza para pasar un array a una
         g q                 p    p            y
 función incluye el tipo de elemento del array y su
 nombre. El siguiente ejemplo incluye dos funciones que
 procesan arrays
Ejemplo 8 6
        8.6
 /*calcula la suma de una lista de 10 numeros y el valor maximo*/
                                                                    }
 #include <stdio.h>
                                                                    int SumaDeEnteros(const int ArrayEnteros[], int NoElementos)
 #include <stdlib.h>
                                                                    {
 int SumaDeEnteros(const int ArrayEnteros[], int NoElementos);
                                                                    int i, Total = 0;
 int maximo(const int ArrayEnteros[], int NoElementos);             for (i = 0; i < NoElementos; i++)
 int main ()                                                        Total += ArrayEnteros[i];

 {                                                                  return Total;

 int Items [10] ;                                                   }
                                                                    int maximo(const int ArrayEnteros[], int NoElementos)
 int Total, i;
                                                                    {
 puts("introduzca 10 numeros, seguidos por return");
                                                                    int mx;
 for (i = 0; i < 10; i++)
                                                                    int i;
 scanf ("%d",&Items[i]);                                            mx = ArrayEnteros [ 0 ] ;
 printf("Total = %d n",SumaDeEnteros(Items,10));                   for (i = 1; i < NoElementos; i++)

 printf("Va1or maximo: %d n",maximo(Items,10));                    mx = (ArrayEnteros [i] >mx ? ArrayEnteros [i] : mx) ;

 system ("PAUSE");                                                  return mx;
                                                                    }
 return 0;
Paso de cadenas como parámetros
 La técnica de pasar arrays como parámetros se utiliza para pasar
 cadenas d caracteres a f i
   d       de               funciones. L cadenas son arrays d
                                       Las d                   de
 caracteres cuando una cadena se pasa a una función, la función
 conoce que se ha almacenado el final del array cuando ve un valor
 de 0 en un elemento del array
 Considere estas declaraciones de una constante y una función que
 acepta una parámetro cadena y un valor de su longitud
   #define MAXLON 128
   Void FuncDemo (char s[], int long);
Ordenación de listas
 La ordenación de arrays es otra de las tareas usuales en la
 mayoría de los programas. La ordenación o clasificación es
 el procedimiento mediante el cual se disponen elementos
 del array en un orden especificado, tal como orden
          y                   p          ,
 alfabético u orden numérico
Algoritmo de la burbuja
 La ordenación por burbuja es uno de los métodos
                p          j
 mas fáciles de ordenación. El método de
 ordenación es muy simple. Se compara cada
 elemento del array con el siguiente, si no están en
 orden correcto, se intercambian entre si sus valores.
 El valor mas pequeño flota hasta la parte superior
 del array como si fuera una burbuja en un vaso de
 refresco con gas
   f
Ejemplo 8 8
        8.8
 #include <stdio.h>
 #include <stdlib.h>                                                   printf ("%.2f,%c",a[i],((i+1)%10==0));

 /* prototipos */                                                      }

 void imprimir(float a[], int n);                                      printf ("%.2f n",a[n-1]);

 void intercambio(float* x, float* y);                                 }

 void ordenar (float a[], int n) ;                                     void intercambio(float* x, float* y)

 int main()                                                            {

 {                                                                     float aux;

 float a[10]={25.5,34.1,27.6,15.24,3.27, 5.14, 6.21,7.57,4.61, 5.4};   aux = *x;

 imprimir(a,10);                                                       *x = *y;

 ordenar (a,10 ) ;                                                     *y = aux;

 imprimir(a,10);                                                       }

 system("PAUSE");                                                      /* ordenar burbuja */

 return 0;                                                             void ordenar (float a[], int n)

 }                                                                     {

 void imprimir(float a[], int n)                                       int i, j;

 {                                                                     for (i = n-1; i>0; i--)

 int i = 0;                                                            for (j =0; j < i; j++)

 for ( ; i < n-1; i++)                                                 if (a[j] > a[j+1])

 {                                                                     intercambio(&a[j] ,&a[j+1]) ;
                                                                       }
Búsqueda en listas
 Los arrays son uno de los medios principales por los
 cuales se almacenan los datos en programas C.
 debido a esta causa existen operaciones
                         causa,
 fundamentales cuyo tratamiento es imprescindible
 conocer.
 conocer Estas operaciones esenciales son; la
 búsqueda de elementos y la ordenación y
 clasificación de las listas
Búsqueda secuencial
 Este algoritmo busca el elemento dado, recorriendo
 secuencialmente el array desde un elemento al
 siguiente,
 siguiente comenzando en la primera posición del
 array y se detiene cuando se encuentra el elemento
 buscado o bien se alcanza el final del array
 Esta tarea se realiza con bucles en nuestro caso con
 el b l while
   l bucle hil
Búsqueda sec
 enum {FALSE, TRUE};
                                         {
 int BusquedaSec(int Lista[MAX], int     Encontrado=((A[i]==Elemento)?TRU
 Elemento)                               E:i++);
 {                                       }
 int Encontrado = FALSE;                 /*Si se encuentra el elemento se
 int i = 0;                              devuelve la posición en la lista. * /
 / * Búsqueda en la lista hasta que se   if (Encontrado)
                                            (          )
 encuentra el elemento o se alcanza el   return (i) ;
 final de la lista. */                   else
 while ((!Encontrado) && (i <= MAX 1))
                            < MAX-1))    return (-1) ;
                                                ( 1)
                                         1
Ejercicios
 Escribir una función que invierta el contenido de n
 números enteros. El primero se vuelve el último; el
 segundo, penúltimo, etc.
 segundo el penúltimo etc
 Escribir un programa que lea las dimensiones de
 una matriz, l
           ti   lea y visualice l matriz y a
                          i li     la      ti
 continuación encuentre el mayor y menor elemento
 de la
 d l matriz y sus posiciones.
            i          ii
Patrón de prueba de pantalla panorámica (16:9)




                               Prueba de la
                                relación de
                                  aspecto
                            (Debe parecer circular)




       4x3

16x9

Contenu connexe

Tendances (18)

Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
Arreglos C++
Arreglos C++Arreglos C++
Arreglos C++
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
 
Tema 0 Repaso Programación en Java
Tema 0 Repaso Programación en JavaTema 0 Repaso Programación en Java
Tema 0 Repaso Programación en Java
 
Punteros2
Punteros2Punteros2
Punteros2
 
Tema 1
Tema 1Tema 1
Tema 1
 
7
77
7
 
Funcionamiento de un pila2
Funcionamiento de un pila2Funcionamiento de un pila2
Funcionamiento de un pila2
 
Tema6
Tema6Tema6
Tema6
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Ejercicios con Python parte 05
Ejercicios con Python parte 05Ejercicios con Python parte 05
Ejercicios con Python parte 05
 
Descubriendo scala
Descubriendo scalaDescubriendo scala
Descubriendo scala
 
Estructura de Datos Arreglos
Estructura de Datos ArreglosEstructura de Datos Arreglos
Estructura de Datos Arreglos
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacion
 
I4 u2 tema3
I4 u2 tema3I4 u2 tema3
I4 u2 tema3
 
Arreglos
ArreglosArreglos
Arreglos
 
Pract met de la program templa
Pract met de la program templaPract met de la program templa
Pract met de la program templa
 

En vedette

Clase 10_ programacion
Clase 10_ programacionClase 10_ programacion
Clase 10_ programaciondiego MC
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodosOrlando Verdugo
 
Lenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesLenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesKarina Arguedas Ruelas
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaCarlitos Correa Jr.
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matricesAriannaYadiraT
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en CVane Borjas
 

En vedette (6)

Clase 10_ programacion
Clase 10_ programacionClase 10_ programacion
Clase 10_ programacion
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodos
 
Lenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesLenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y Componentes
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
 

Similaire à Clase 9- programacion

Similaire à Clase 9- programacion (20)

Práctica 12
Práctica 12Práctica 12
Práctica 12
 
Arreglos en C++
Arreglos en C++Arreglos en C++
Arreglos en C++
 
Arrays 8
Arrays 8Arrays 8
Arrays 8
 
Arreglos
ArreglosArreglos
Arreglos
 
12637788.ppt
12637788.ppt12637788.ppt
12637788.ppt
 
!Prograc6
!Prograc6!Prograc6
!Prograc6
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C++
Arreglos en C++Arreglos en C++
Arreglos en C++
 
Utp pti_s5_arreglos
 Utp pti_s5_arreglos Utp pti_s5_arreglos
Utp pti_s5_arreglos
 
Utp pti_s5_arreglos 2012-2
 Utp pti_s5_arreglos 2012-2 Utp pti_s5_arreglos 2012-2
Utp pti_s5_arreglos 2012-2
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructuras
Estructuras Estructuras
Estructuras
 
Arreglos Java
Arreglos JavaArreglos Java
Arreglos Java
 
Utp lpi_s5_arreglos 2012-2
 Utp lpi_s5_arreglos 2012-2 Utp lpi_s5_arreglos 2012-2
Utp lpi_s5_arreglos 2012-2
 
7.arreglos en java
7.arreglos en  java7.arreglos en  java
7.arreglos en java
 
Tema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdfTema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdf
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 

Plus de diego MC

Que es_mision
 Que es_mision Que es_mision
Que es_misiondiego MC
 
Contenido cient fico(didactica especial)
Contenido cient fico(didactica especial)Contenido cient fico(didactica especial)
Contenido cient fico(didactica especial)diego MC
 
Sicolog a evolutiva_contenido
Sicolog a evolutiva_contenidoSicolog a evolutiva_contenido
Sicolog a evolutiva_contenidodiego MC
 
Neurociencias 4
Neurociencias 4Neurociencias 4
Neurociencias 4diego MC
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programaciondiego MC
 
Neurociencias 4
Neurociencias 4Neurociencias 4
Neurociencias 4diego MC
 
Presentacion unidad 4_neurociencias
Presentacion unidad 4_neurocienciasPresentacion unidad 4_neurociencias
Presentacion unidad 4_neurocienciasdiego MC
 

Plus de diego MC (13)

Que es_mision
 Que es_mision Que es_mision
Que es_mision
 
Contenido cient fico(didactica especial)
Contenido cient fico(didactica especial)Contenido cient fico(didactica especial)
Contenido cient fico(didactica especial)
 
Sicolog a evolutiva_contenido
Sicolog a evolutiva_contenidoSicolog a evolutiva_contenido
Sicolog a evolutiva_contenido
 
Neurociencias 4
Neurociencias 4Neurociencias 4
Neurociencias 4
 
Clase 6
Clase 6Clase 6
Clase 6
 
Clase 5
Clase 5Clase 5
Clase 5
 
Clase 4
Clase 4Clase 4
Clase 4
 
Clase 3
Clase 3Clase 3
Clase 3
 
Clase 2
Clase 2Clase 2
Clase 2
 
Clase 1
Clase 1Clase 1
Clase 1
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Neurociencias 4
Neurociencias 4Neurociencias 4
Neurociencias 4
 
Presentacion unidad 4_neurociencias
Presentacion unidad 4_neurocienciasPresentacion unidad 4_neurociencias
Presentacion unidad 4_neurociencias
 

Clase 9- programacion

  • 1. ARRAYS (LISTAS Y TABLAS) ( ) Sugerencias y herramientas para crear para crear y presentar diapositivas en formato panorámico
  • 2. Contenido Arrays Inicialización de un array Arrays de caracteres y cadenas de texto Arrays multidimensionales Utilización de arrays como parámetros Ordenación de listas Búsqueda en listas Resumen Ejercicios E
  • 3. Arrays Una array (lista o tabla) es una secuencia de datos del mismo tipo. Los datos se llaman elementos del array y se numeran consecutivamente 0,1,2,3, etc. Normalmente el array se utiliza para almacenar tipos tales como char, int o y p p , float Los elementos de un array se numeran, y estos números se denominan valores índice o subíndice del array
  • 4. Declaración de un array Un array se declara de modo similar a otros tipos y p de datos, excepto que se debe indicar al compilador el tamaño o longitud del array. La sintaxis para declarar un array de una dimensión determinada es; Tipo nombreArray [numeroDeElementos]; Int numeros[10];
  • 5. Cont… Cont Se puede acceder a cada elemento del array utilizando un índice en el nombre del array Printf(“%d n”,numeros [4]); visualiza el valor d l elemento 5 d l array. L arrays i li l l del l del Los siempre comienzan en el elemento 0 #define N 20 Float vector [N]; Scanf(“%f”,&vector[2]);
  • 6. Precaución C no comprueba que los índices del array están dentro del rango definido. Así, por ejemplo, se puede intentar acceder a números [12] y el compilador no producirá ningún error, lo que puede producir un fallo en su programa
  • 7. Almacenamiento en memoria de los arrays Los elementos de los arrays se almacenan en bloques contiguos Así contiguos. por ejemplo los arrays Int edades [5] [5]; Char codigos [5]
  • 8. Inicialización de un array Se deben asignar valores a los elementos del array g y antes de utilizarlos, tal como se asigna valores a variables Cuando se inicializa un array, el tamaño del array se puede determinar automáticamente por las constantes de inicialización d i i i li ió Int numeros [6]={10,20,30,40,50,60} Int [] {3 4 5} I t n[] ={3,4,5}
  • 9. Ejemplo 8 2 8.2 /*Programa que lee 8 numeros y a continuacion visualiza el total de los numeros*/ } #include <stdio.h> printf("nLista de numeros: "); #include <stdlib.h> for (i=0; i<NUM; i++) # define NUM 8 { int main () printf ("%d",nums[i]); { total += nums[i]; int nums [NUM]; int i; } int total =0; printf( nLa printf("nLa suma de los numeros es %dn",total); for (i=0; i<NUM; i++) { system("PAUSE"); printf("Por favor, introduzca el numero; "); return 0; scanf("%d",&nums[i]); }
  • 10. Arrays de caracteres y cadenas de texto Una cadena de texto es un conjunto de caracteres, tales como <ABCDEFG>. <ABCDEFG> C soporta cadenas de texto utilizando un array de caracteres que contenga una secuencia de caracteres
  • 11. Cont… Cont El medio mas fácil de inicializar un array es hacer la inicialización de la declaración; Char Cadena[7] = “ABCDEF”; La asignación de valores a cadena se puede hacer del modo siguiente; Cadena [0]=‘A’; Cadena [1]=‘B’; … Cadena[6]= 0 ; Cadena[6]=‘0’;
  • 12. Ejemplo 8 4 8.4 /*visualiza un array formado p printf("nIntroduzca una lista de %d ( con enteros positivos*/ i i */ elementos positivos.n",MAX); #include <stdio.h> for (i = 0; i < MAX; muestra[i]>0?++i:i) scanf ("%f",&muestra[i]); #include <stdlib.h> stdlib.h printf ("nDatos leidos del teclado: " ) ; #define MAX 10 for ( i = 0; i < MAX; ++i) float muestra[MAX]; printf ("%ft",muestra[i]) ; int main() system("PAUSE"); return 0; { } int i;
  • 13. Arrays multidimensionales Los arrays multidimensionales son aquellos que tienen mas de una dimensión y, en consecuencia, mas de un índice Los L arrays mas usuales son l d d di l los de dos dimensiones, i conocidos también por el nombre de tablas o matrices La sintaxis para la declaración de un array de dos dimensiones es <tipo de datoElemento><nombre array>[<numero de filas>][<numero d columnas>] fil ][ de l ]
  • 14. Inicialización de arrays multidimensionales Int tabla [2][3]={{51,52,53},{54,55,56}}; {{ }{ }} Int tabla2 [3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  • 15. Acceso a los elementos de los arrays bidimensionales Se puede acceder a los elementos de arrays bidimensionales de igual f i l forma que a l elementos d un array unidimensional los l de idi i l El formato general para la asignación directa de valores a los elementos es; Inserción de elementos <nombre array>[indice fila][indice columna]=valor elemento; Tabla [2][3]=4.5; [2][3] 4.5; Extracción de elementos <variable>=<nombre array>[indice fila][indice columna]; Ventas=Tabla[1][1]; V T bl [1][1]
  • 16. Acceso a elementos mediante bucles Se puede acceder a los elementos de arrays p y bidimensionales mediante bucles anidados. Su sintaxis es; Int IndiceFila, IndiceCol; For (IndiceFila=0; IndiceFila<NumFilas; ++IndiceFila) ( ) For (indiceCol=0; IndiceCol<NumCol; ++IndiceCol) Procesar elemento [IndiceFila][indiceCol]; [ ][ ];
  • 17. Ejemplo 8 9 8.9 /*llenala tabla con datos de entrada y muestar los resultados*/ } #include <stdio.h> /* Visualizar la tabla */ #include <stdlib.h> for (fila = 0; fila < 2; fila++) int main () { { for (col = 0; col < 4; col++) float discos [2] [4] ; { int fila, col; for (fila = 0; fila < 2; fila++) printf ("n Pts %.lf n",discos [fila] [col] ) ; { } for (col = 0; col < 4; col++) } { system("PAUSE"); scanf ("%f",&discos[fila][col]) ; return 0; ; } }
  • 18. Arrays de mas de dos dimensiones C proporciona la posibilidad de almacenar varias dimensiones, un array tridimensional se puede considerar como un conjunto d idi i l d id j de arrays bidimensionales combinados juntos para formar, en profundidad una tercera dimensión El código siguiente permite procesar el array int pagina, linea, columna; for (pagina = 0; pagina < PAGINAS; ++pagina) (p g ;p g ; p g ) for (linea = 0; linea < LINEAS; ++linea) for (columna = 0; columna < COLUMNAS; ++columna) <procesar Libro [pagina] [ lineal [columna] >
  • 19. Utilización de arrays como parámetros En C todos los arrays se pasan por referencia (dirección). Esto significa que cuando se llama a una función y se utiliza un array como parámetro, se debe tener cuidado de no modificar los arrays en una función llamada El código que se utiliza para pasar un array a una g q p p y función incluye el tipo de elemento del array y su nombre. El siguiente ejemplo incluye dos funciones que procesan arrays
  • 20. Ejemplo 8 6 8.6 /*calcula la suma de una lista de 10 numeros y el valor maximo*/ } #include <stdio.h> int SumaDeEnteros(const int ArrayEnteros[], int NoElementos) #include <stdlib.h> { int SumaDeEnteros(const int ArrayEnteros[], int NoElementos); int i, Total = 0; int maximo(const int ArrayEnteros[], int NoElementos); for (i = 0; i < NoElementos; i++) int main () Total += ArrayEnteros[i]; { return Total; int Items [10] ; } int maximo(const int ArrayEnteros[], int NoElementos) int Total, i; { puts("introduzca 10 numeros, seguidos por return"); int mx; for (i = 0; i < 10; i++) int i; scanf ("%d",&Items[i]); mx = ArrayEnteros [ 0 ] ; printf("Total = %d n",SumaDeEnteros(Items,10)); for (i = 1; i < NoElementos; i++) printf("Va1or maximo: %d n",maximo(Items,10)); mx = (ArrayEnteros [i] >mx ? ArrayEnteros [i] : mx) ; system ("PAUSE"); return mx; } return 0;
  • 21. Paso de cadenas como parámetros La técnica de pasar arrays como parámetros se utiliza para pasar cadenas d caracteres a f i d de funciones. L cadenas son arrays d Las d de caracteres cuando una cadena se pasa a una función, la función conoce que se ha almacenado el final del array cuando ve un valor de 0 en un elemento del array Considere estas declaraciones de una constante y una función que acepta una parámetro cadena y un valor de su longitud #define MAXLON 128 Void FuncDemo (char s[], int long);
  • 22. Ordenación de listas La ordenación de arrays es otra de las tareas usuales en la mayoría de los programas. La ordenación o clasificación es el procedimiento mediante el cual se disponen elementos del array en un orden especificado, tal como orden y p , alfabético u orden numérico
  • 23. Algoritmo de la burbuja La ordenación por burbuja es uno de los métodos p j mas fáciles de ordenación. El método de ordenación es muy simple. Se compara cada elemento del array con el siguiente, si no están en orden correcto, se intercambian entre si sus valores. El valor mas pequeño flota hasta la parte superior del array como si fuera una burbuja en un vaso de refresco con gas f
  • 24. Ejemplo 8 8 8.8 #include <stdio.h> #include <stdlib.h> printf ("%.2f,%c",a[i],((i+1)%10==0)); /* prototipos */ } void imprimir(float a[], int n); printf ("%.2f n",a[n-1]); void intercambio(float* x, float* y); } void ordenar (float a[], int n) ; void intercambio(float* x, float* y) int main() { { float aux; float a[10]={25.5,34.1,27.6,15.24,3.27, 5.14, 6.21,7.57,4.61, 5.4}; aux = *x; imprimir(a,10); *x = *y; ordenar (a,10 ) ; *y = aux; imprimir(a,10); } system("PAUSE"); /* ordenar burbuja */ return 0; void ordenar (float a[], int n) } { void imprimir(float a[], int n) int i, j; { for (i = n-1; i>0; i--) int i = 0; for (j =0; j < i; j++) for ( ; i < n-1; i++) if (a[j] > a[j+1]) { intercambio(&a[j] ,&a[j+1]) ; }
  • 25. Búsqueda en listas Los arrays son uno de los medios principales por los cuales se almacenan los datos en programas C. debido a esta causa existen operaciones causa, fundamentales cuyo tratamiento es imprescindible conocer. conocer Estas operaciones esenciales son; la búsqueda de elementos y la ordenación y clasificación de las listas
  • 26. Búsqueda secuencial Este algoritmo busca el elemento dado, recorriendo secuencialmente el array desde un elemento al siguiente, siguiente comenzando en la primera posición del array y se detiene cuando se encuentra el elemento buscado o bien se alcanza el final del array Esta tarea se realiza con bucles en nuestro caso con el b l while l bucle hil
  • 27. Búsqueda sec enum {FALSE, TRUE}; { int BusquedaSec(int Lista[MAX], int Encontrado=((A[i]==Elemento)?TRU Elemento) E:i++); { } int Encontrado = FALSE; /*Si se encuentra el elemento se int i = 0; devuelve la posición en la lista. * / / * Búsqueda en la lista hasta que se if (Encontrado) ( ) encuentra el elemento o se alcanza el return (i) ; final de la lista. */ else while ((!Encontrado) && (i <= MAX 1)) < MAX-1)) return (-1) ; ( 1) 1
  • 28. Ejercicios Escribir una función que invierta el contenido de n números enteros. El primero se vuelve el último; el segundo, penúltimo, etc. segundo el penúltimo etc Escribir un programa que lea las dimensiones de una matriz, l ti lea y visualice l matriz y a i li la ti continuación encuentre el mayor y menor elemento de la d l matriz y sus posiciones. i ii
  • 29. Patrón de prueba de pantalla panorámica (16:9) Prueba de la relación de aspecto (Debe parecer circular) 4x3 16x9