SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

E) representacion matricial
E) representacion matricialE) representacion matricial
E) representacion matricialyesuam
 
Circuito de Hamilton
Circuito de HamiltonCircuito de Hamilton
Circuito de HamiltonVicentino
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamientoLalo Chooper
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CCristian Maza
 
Aplicaciones de los espacios vectoriales en la ingenieria industrial
Aplicaciones de los espacios vectoriales en la ingenieria industrial Aplicaciones de los espacios vectoriales en la ingenieria industrial
Aplicaciones de los espacios vectoriales en la ingenieria industrial ODALYSISABELAZUMBAMO
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Diego Maxdj Chicaiza
 
1.4 problemas con estructuras selectivas
1.4 problemas con estructuras selectivas1.4 problemas con estructuras selectivas
1.4 problemas con estructuras selectivasSNPP
 
Arreglos Bidimensionales
Arreglos BidimensionalesArreglos Bidimensionales
Arreglos Bidimensionalesguestefc95b
 
Algebra lineal 3. Transformaciones lineales
Algebra lineal 3. Transformaciones linealesAlgebra lineal 3. Transformaciones lineales
Algebra lineal 3. Transformaciones linealesEdward Ropero
 
Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binarioMauricio Solano
 
Mapa conceptual Colas
Mapa conceptual ColasMapa conceptual Colas
Mapa conceptual Colasaponteuniv
 
Examenes resueltos algebra lineal
Examenes resueltos algebra linealExamenes resueltos algebra lineal
Examenes resueltos algebra linealERICK CONDE
 

La actualidad más candente (20)

E) representacion matricial
E) representacion matricialE) representacion matricial
E) representacion matricial
 
grafos conexos
grafos conexosgrafos conexos
grafos conexos
 
Circuito de Hamilton
Circuito de HamiltonCircuito de Hamilton
Circuito de Hamilton
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Cuestionario de algoritmos
Cuestionario de algoritmosCuestionario de algoritmos
Cuestionario de algoritmos
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 
Aplicaciones de los espacios vectoriales en la ingenieria industrial
Aplicaciones de los espacios vectoriales en la ingenieria industrial Aplicaciones de los espacios vectoriales en la ingenieria industrial
Aplicaciones de los espacios vectoriales en la ingenieria industrial
 
Recursividad
RecursividadRecursividad
Recursividad
 
Espacios vectoriales.g.2017
Espacios vectoriales.g.2017Espacios vectoriales.g.2017
Espacios vectoriales.g.2017
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++
 
1.4 problemas con estructuras selectivas
1.4 problemas con estructuras selectivas1.4 problemas con estructuras selectivas
1.4 problemas con estructuras selectivas
 
Colas estáticas. IESIT
Colas estáticas. IESITColas estáticas. IESIT
Colas estáticas. IESIT
 
Matrices pseint
Matrices   pseintMatrices   pseint
Matrices pseint
 
Arreglos Bidimensionales
Arreglos BidimensionalesArreglos Bidimensionales
Arreglos Bidimensionales
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Algebra lineal 3. Transformaciones lineales
Algebra lineal 3. Transformaciones linealesAlgebra lineal 3. Transformaciones lineales
Algebra lineal 3. Transformaciones lineales
 
Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binario
 
Mapa conceptual Colas
Mapa conceptual ColasMapa conceptual Colas
Mapa conceptual Colas
 
Examenes resueltos algebra lineal
Examenes resueltos algebra linealExamenes resueltos algebra lineal
Examenes resueltos algebra lineal
 

Destacado (20)

Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Gotoxy
GotoxyGotoxy
Gotoxy
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
 
Estructura básica de pascal
Estructura básica de pascalEstructura básica de pascal
Estructura básica de pascal
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
Tipos de datos en pascal
Tipos de datos en pascalTipos de datos en pascal
Tipos de datos en pascal
 
Tablas de multiplicar (código Dev C++)
Tablas de multiplicar (código Dev C++)Tablas de multiplicar (código Dev C++)
Tablas de multiplicar (código Dev C++)
 
Ejercicios de arreglo
Ejercicios de arregloEjercicios de arreglo
Ejercicios de arreglo
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 
Cadenas
CadenasCadenas
Cadenas
 
Manual sgbdoo db4 o en c#
Manual sgbdoo db4 o en c#Manual sgbdoo db4 o en c#
Manual sgbdoo db4 o en c#
 
Ejercicio de listas de lenguaje c
Ejercicio de listas de lenguaje cEjercicio de listas de lenguaje c
Ejercicio de listas de lenguaje c
 
Arreglos C++
Arreglos C++Arreglos C++
Arreglos C++
 
Codigo de fibonassi
Codigo de fibonassiCodigo de fibonassi
Codigo de fibonassi
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
 
Arrays, arreglos o vectores en c++
Arrays, arreglos o vectores en c++Arrays, arreglos o vectores en c++
Arrays, arreglos o vectores en c++
 
Diseño de bucles
Diseño de buclesDiseño de bucles
Diseño de bucles
 
Archivo logico
Archivo logicoArchivo logico
Archivo logico
 
lenguaje pascal
lenguaje pascallenguaje pascal
lenguaje pascal
 

Similar a Arrays: listas y tablas (20)

arrays
arraysarrays
arrays
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Práctica 12
Práctica 12Práctica 12
Práctica 12
 
Arreglos en C++
Arreglos en C++Arreglos en C++
Arreglos en C++
 
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
 
Tema6
Tema6Tema6
Tema6
 

Más de die_dex

Appendix a introduction tonthe microprocessor and the microcomputer
Appendix a introduction tonthe microprocessor and the microcomputerAppendix a introduction tonthe microprocessor and the microcomputer
Appendix a introduction tonthe microprocessor and the microcomputerdie_dex
 
Comercio internacional
Comercio internacionalComercio internacional
Comercio internacionaldie_dex
 
Analisis del comercio exterior en la ultima década
Analisis del comercio exterior en la ultima décadaAnalisis del comercio exterior en la ultima década
Analisis del comercio exterior en la ultima décadadie_dex
 
Micro-nanosystems for electrical metrology and precision instrumentation
Micro-nanosystems for electrical metrology and precision instrumentationMicro-nanosystems for electrical metrology and precision instrumentation
Micro-nanosystems for electrical metrology and precision instrumentationdie_dex
 
Bolometric Applications at Room Temperature
Bolometric Applications at Room TemperatureBolometric Applications at Room Temperature
Bolometric Applications at Room Temperaturedie_dex
 
Proposed changes to the definition of the ampere and the kilogram and their i...
Proposed changes to the definition of the ampere and the kilogram and their i...Proposed changes to the definition of the ampere and the kilogram and their i...
Proposed changes to the definition of the ampere and the kilogram and their i...die_dex
 
Analog to Digital Converters Testing
Analog to Digital Converters TestingAnalog to Digital Converters Testing
Analog to Digital Converters Testingdie_dex
 
Towards Uniformity of DC Voltage Metrology within SIM
Towards Uniformity of DC Voltage Metrology within SIMTowards Uniformity of DC Voltage Metrology within SIM
Towards Uniformity of DC Voltage Metrology within SIMdie_dex
 
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADORFUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADORdie_dex
 
Urgencia hipertensiva
Urgencia hipertensivaUrgencia hipertensiva
Urgencia hipertensivadie_dex
 
Guia para la_atencion_del_parto_normal_en_mcf
Guia para la_atencion_del_parto_normal_en_mcfGuia para la_atencion_del_parto_normal_en_mcf
Guia para la_atencion_del_parto_normal_en_mcfdie_dex
 
Equipo humano y materiales para recepción de recién
Equipo humano y materiales para recepción de reciénEquipo humano y materiales para recepción de recién
Equipo humano y materiales para recepción de reciéndie_dex
 
Crisis hipertensivas
Crisis hipertensivasCrisis hipertensivas
Crisis hipertensivasdie_dex
 
GENERACIÓN ELÉCTRICA
GENERACIÓN ELÉCTRICAGENERACIÓN ELÉCTRICA
GENERACIÓN ELÉCTRICAdie_dex
 
FORMATO IEEE
FORMATO IEEEFORMATO IEEE
FORMATO IEEEdie_dex
 
HISTORIA DE LAS TELECOMUNICACIONES
HISTORIA DE LAS TELECOMUNICACIONESHISTORIA DE LAS TELECOMUNICACIONES
HISTORIA DE LAS TELECOMUNICACIONESdie_dex
 
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01die_dex
 
Metrologia
MetrologiaMetrologia
Metrologiadie_dex
 
Mediciones e instrumentacion_industrial
Mediciones e instrumentacion_industrialMediciones e instrumentacion_industrial
Mediciones e instrumentacion_industrialdie_dex
 

Más de die_dex (20)

Appendix a introduction tonthe microprocessor and the microcomputer
Appendix a introduction tonthe microprocessor and the microcomputerAppendix a introduction tonthe microprocessor and the microcomputer
Appendix a introduction tonthe microprocessor and the microcomputer
 
Comercio internacional
Comercio internacionalComercio internacional
Comercio internacional
 
Analisis del comercio exterior en la ultima década
Analisis del comercio exterior en la ultima décadaAnalisis del comercio exterior en la ultima década
Analisis del comercio exterior en la ultima década
 
Micro-nanosystems for electrical metrology and precision instrumentation
Micro-nanosystems for electrical metrology and precision instrumentationMicro-nanosystems for electrical metrology and precision instrumentation
Micro-nanosystems for electrical metrology and precision instrumentation
 
Bolometric Applications at Room Temperature
Bolometric Applications at Room TemperatureBolometric Applications at Room Temperature
Bolometric Applications at Room Temperature
 
Proposed changes to the definition of the ampere and the kilogram and their i...
Proposed changes to the definition of the ampere and the kilogram and their i...Proposed changes to the definition of the ampere and the kilogram and their i...
Proposed changes to the definition of the ampere and the kilogram and their i...
 
Analog to Digital Converters Testing
Analog to Digital Converters TestingAnalog to Digital Converters Testing
Analog to Digital Converters Testing
 
Towards Uniformity of DC Voltage Metrology within SIM
Towards Uniformity of DC Voltage Metrology within SIMTowards Uniformity of DC Voltage Metrology within SIM
Towards Uniformity of DC Voltage Metrology within SIM
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADORFUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
 
Urgencia hipertensiva
Urgencia hipertensivaUrgencia hipertensiva
Urgencia hipertensiva
 
Guia para la_atencion_del_parto_normal_en_mcf
Guia para la_atencion_del_parto_normal_en_mcfGuia para la_atencion_del_parto_normal_en_mcf
Guia para la_atencion_del_parto_normal_en_mcf
 
Equipo humano y materiales para recepción de recién
Equipo humano y materiales para recepción de reciénEquipo humano y materiales para recepción de recién
Equipo humano y materiales para recepción de recién
 
Crisis hipertensivas
Crisis hipertensivasCrisis hipertensivas
Crisis hipertensivas
 
GENERACIÓN ELÉCTRICA
GENERACIÓN ELÉCTRICAGENERACIÓN ELÉCTRICA
GENERACIÓN ELÉCTRICA
 
FORMATO IEEE
FORMATO IEEEFORMATO IEEE
FORMATO IEEE
 
HISTORIA DE LAS TELECOMUNICACIONES
HISTORIA DE LAS TELECOMUNICACIONESHISTORIA DE LAS TELECOMUNICACIONES
HISTORIA DE LAS TELECOMUNICACIONES
 
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
 
Metrologia
MetrologiaMetrologia
Metrologia
 
Mediciones e instrumentacion_industrial
Mediciones e instrumentacion_industrialMediciones e instrumentacion_industrial
Mediciones e instrumentacion_industrial
 

Arrays: listas y tablas

  • 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