SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
PROGRAMACION II

 MODULO III - ESTRUCTURA DE DATOS LINEALES

                            LECCION I – ARREGLOS

  1.   Estructuras continuas / lineales
  2.   Concepto de arreglos
  3.   Tipos
  4.   Declaraciones
  5.   Referencia
  6.   Ejemplos




                                                   TEMA Nº 0 pág. 1/6
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Estructuras continuas / lineales

   Son aquellas que ocupan un espacio de memoria (bloque) continuo (un byte
   al lado del otro).
   Todas las declaraciones de tipos básicos son lineales, tanto si se reservan
   de manera estática como de manera dinámica.
   Es necesario tener una dirección de memoria que permita llegar al bloque
   donde está la estructura.
                                     Desventajas:
   Ventajas:                         1)Es necesario conocer, ya sea en tiempo
   1)Sólo se requiere una            estático o dinámico, el número de bytes
   dirección de memoria para         que se requiere para reservar el bloque su
   llegar al bloqueacceso fácil a    tamaño es estático, no puede crecer.
   la información.                   2)Para bloques de gran tamaño, es posible
   2)Una vez que se llega al         que se de el caso de no encontrar un
   bloque toda la data está          espacio continuo lo suficientemente
   accesible acceso rápido a la      grande para satisfacer la necesidad (aún
   información.                      habiendo memoria disponible) posibles
                                     problemas de reserva de memoria.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Estructuras continuas / lineales

    NOTA: Las estructuras continuas son susceptibles al problema de
    fragmentación de memoria aún habiendo varios bytes de memoria
    disponibles, la alternación de bloques ocupados y libres hace que los
    espacios continuos sean más pequeños de los que se necesitan.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Estructuras continuas / lineales

   Dos clases de estructuras:
   1)Arreglos: conjunto finitode elementos del mismo tipo.
   2)Registros: conjunto finitode elementos de tipo diferente


   Para su definición / declaración se requieren tres cosas:
   1)Conocer el tipo de dato único de todos sus elementos.
   2)Conocer la cantidad de elementos del conjunto.
   3)Dar un identificador válido para acceder a los
   elementos del conjunto.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Tipo de arreglos

  ¿Cómo representar arreglos de más de una dimensión: matrices por ejemplo?

  1 dimensión vector
  2 dimensiones matriz bidimensional
  3 dimensiones matriz tridimensional
  N dimensiones matriz híper-espacial
  Se agrega otro tamaño y se usa otro índice para cada nueva dimensión
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Tipo de arreglos
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Arreglos - Concepto
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Arreglos
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Arreglos
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Arreglos –Ejemplo palindromos
              #include <stdio.h>
              #define LONGITUD 81
              #define NULO '0'
              main( )
              {
                     char texto[LONGITUD];
                     unsigned int longitud, izq, der;
                     printf( "Comprobación de palíndromos.n" );
                     printf( "Introduzca texto: ");
                     gets( texto );
                     longitud = 0;
                     while( texto[longitud] != NULO ) {
                                longitud = longitud + 1;
                     } /* while */
                     izq = 0;
                     der = longitud;
                     while( ( texto[izq] == texto[der] ) && ( izq < der ) ) {
                                izq = izq + 1;
                                der = der – 1;
                     } /* while */
                     if( izq < der ) {
                        printf( "No es palíndromo.n" );
                     } else {
                        printf( "¡Es palíndromo!n" );
                     } /* if */
              } /* main */
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Arreglos –Ejercicio
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Arreglos – Carga de Datos Secuencial
   Como se comentó anteriormente la carga secuencial es ordenada y de acuerdo a esto deberemos
   llenar el vector respetando el siguiente orden
   v[0], v[1], v[2], v[3], v[4]
   Como se ve, el que cambia en forma creciente es el índice del vector que es el que me permite hacer
   la carga en forma secuencial.
   Para llevar esto a código de programa debemos pensar en una estructura de control que me permita
   realizar un número prefijado de repeticiones y que me incremente una variable en una unidad. Dicha
   estructura de control es el ciclo FOR.
   Un ejemplo de programa que me permite cargar un vector en forma secuencial es el siguiente
   #include <stdio.h>
   void main(void)
   {
       int v[5],i;
      for (i=0;i<5;i++)
      {
         printf("Ingrese valor a cargar en el vector");
         scanf("%d",&v[i]);
       }
   }

   En el programa la variable i del ciclo for va a tomar valores desde 0 a 4 ordenadamente. Cuando comienza el for la variable i
   vale 0 (i=0), se cumple con la condición de que i<5 y entonces entramos al for. Se ejecuta el printf y luego el scanf lee desde
   el teclado y carga el valor en v[i] (v[0]). Se vuelve al for incrementando i en 1 (i++) por lo tanto el valor de i ahora es 1 y se
   cargará v[1], siguiendo i=2 y v[2], i=3 y v[3] para finalmente i=4 y v[4]. De esta forma se carga el vector en forma secuencial.
   Note que de esta forma se cargan todos los elementos del vector.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Arreglos – Carga de Datos Secuencial




                                          Observe que el promedio
                                          se calcula recién cuando
                                          termina el FOR, es decir
                                          cuando tengo la suma
                                          completa. Si se
                                          pone dentro del FOR, en
                                          lugar de calcular el
                                          promedio 1 sola vez se
                                          calcularía 100 veces.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C – Arreglo – Carga de datos aleatoria
   De acuerdo a lo comentado con anterioridad para la carga aleatoria debo ingresar
   2 valores que son la posición donde quiero guardar el número y luego el número
   que quiero cargar.
   Puede ocurrir que en algún caso no se carguen todos los elementos del vector o
   que se pretenda cargar algún valor en un lugar ya cargado. Para analizar esto
   comenzaremos por el caso más simple y dejando que el usuario decida cuando
   terminar de cargar elementos en el vector. De acuerdo a esto como no se sabe
   cuantos elementos se van a cargar ni en que orden , debemos primero inicializar
   todos los elementos del vector en un valor conocido que normalmente es cero.
   Seguidamente se debe usar un ciclo de control en el cuál la cantidad de iteraciones
   que se realicen quede fijada por alguna condición que acepte el usuario, en este
   caso el ciclo que más se adecua es el while o do while.
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Arreglo – Carga de datos aleatoria
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Arreglo – Carga de datos aleatoria
PROGRAMACION II

 FUNDAMENTOS DEL LENGUAJE C - Funciones con cadena de caracteres

Weitere ähnliche Inhalte

Was ist angesagt?

Manejo De Memoria
Manejo De MemoriaManejo De Memoria
Manejo De Memoriamosh88
 
Matlab 2
Matlab 2Matlab 2
Matlab 2jmh700
 
Fundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de Analisi y Diseño de Algoritmos FADAFundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de Analisi y Diseño de Algoritmos FADAJose Luis Dorao
 
Compu1 (1)
Compu1 (1)Compu1 (1)
Compu1 (1)jbersosa
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++LenHugo
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesAbrirllave
 
Introducción a los Punteros en el lenguaje C
Introducción a los Punteros en el lenguaje CIntroducción a los Punteros en el lenguaje C
Introducción a los Punteros en el lenguaje CDiego Santimateo
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióNDavid Puga
 
Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assemblerANDREA
 
Estructura de instrucciones de control
Estructura de instrucciones de controlEstructura de instrucciones de control
Estructura de instrucciones de controlSusana Moyolema
 
Estructura de instrucciones de control...
Estructura de instrucciones de control...Estructura de instrucciones de control...
Estructura de instrucciones de control...Susana Moyolema
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistenteguest0fc4fa
 
Curso: Seguridad física y criptografía: Algoritmo DES
Curso: Seguridad física y criptografía: Algoritmo DESCurso: Seguridad física y criptografía: Algoritmo DES
Curso: Seguridad física y criptografía: Algoritmo DESJack Daniel Cáceres Meza
 

Was ist angesagt? (20)

Java básico
Java  básicoJava  básico
Java básico
 
Trabajo bucles bn
Trabajo bucles bnTrabajo bucles bn
Trabajo bucles bn
 
Manejo De Memoria
Manejo De MemoriaManejo De Memoria
Manejo De Memoria
 
Matlab 2
Matlab 2Matlab 2
Matlab 2
 
Floyd
FloydFloyd
Floyd
 
03 - Entrada y salida en lenguaje C
03 - Entrada y salida en lenguaje C03 - Entrada y salida en lenguaje C
03 - Entrada y salida en lenguaje C
 
Fundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de Analisi y Diseño de Algoritmos FADAFundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de Analisi y Diseño de Algoritmos FADA
 
Compu1 (1)
Compu1 (1)Compu1 (1)
Compu1 (1)
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Paralela2
Paralela2Paralela2
Paralela2
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Introducción a los Punteros en el lenguaje C
Introducción a los Punteros en el lenguaje CIntroducción a los Punteros en el lenguaje C
Introducción a los Punteros en el lenguaje C
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióN
 
la instrucción if , Leer cadenas, caracteres
 la instrucción if , Leer cadenas, caracteres la instrucción if , Leer cadenas, caracteres
la instrucción if , Leer cadenas, caracteres
 
Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assembler
 
Estructura de instrucciones de control
Estructura de instrucciones de controlEstructura de instrucciones de control
Estructura de instrucciones de control
 
Estructura de instrucciones de control...
Estructura de instrucciones de control...Estructura de instrucciones de control...
Estructura de instrucciones de control...
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistente
 
Curso: Seguridad física y criptografía: Algoritmo DES
Curso: Seguridad física y criptografía: Algoritmo DESCurso: Seguridad física y criptografía: Algoritmo DES
Curso: Seguridad física y criptografía: Algoritmo DES
 

Ähnlich wie Programación II - Arreglos en C

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
 
19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facilDariana Acuariogv
 
Gestion de memoria en tiempo de ejecucion
Gestion de memoria en tiempo de ejecucionGestion de memoria en tiempo de ejecucion
Gestion de memoria en tiempo de ejecucionAndresDvila
 
Diapositivas marleni
Diapositivas marleniDiapositivas marleni
Diapositivas marlenilenithoz
 
Diapositivas marleni
Diapositivas marleniDiapositivas marleni
Diapositivas marlenilenithoz
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)José Antonio Sandoval Acosta
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C SharpEdgardo Martinez
 
Presentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cPresentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cMonica Martinez
 
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)José Antonio Sandoval Acosta
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOLuiS YmAY
 
Programacion web introduccion 11 3
Programacion web introduccion 11 3Programacion web introduccion 11 3
Programacion web introduccion 11 3Molano-10
 

Ähnlich wie Programación II - Arreglos en C (20)

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++
 
19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Gestion de memoria en tiempo de ejecucion
Gestion de memoria en tiempo de ejecucionGestion de memoria en tiempo de ejecucion
Gestion de memoria en tiempo de ejecucion
 
Diapositivas marleni
Diapositivas marleniDiapositivas marleni
Diapositivas marleni
 
Diapositivas marleni
Diapositivas marleniDiapositivas marleni
Diapositivas marleni
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
Modelo Simulado
Modelo SimuladoModelo Simulado
Modelo Simulado
 
Presentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cPresentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_c
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 
Guia 5 dev c++
Guia 5 dev c++Guia 5 dev c++
Guia 5 dev c++
 
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Programacion web introduccion 11 3
Programacion web introduccion 11 3Programacion web introduccion 11 3
Programacion web introduccion 11 3
 

Mehr von karlalopezbello

03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetoskarlalopezbello
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2karlalopezbello
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3karlalopezbello
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2karlalopezbello
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1karlalopezbello
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-karlalopezbello
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacionkarlalopezbello
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtualkarlalopezbello
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_karlalopezbello
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfilkarlalopezbello
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfilkarlalopezbello
 

Mehr von karlalopezbello (20)

03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetos
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-
 
Didactica del chat
Didactica del chatDidactica del chat
Didactica del chat
 
Didactica del foro
Didactica del foroDidactica del foro
Didactica del foro
 
Guia completa de_moodle
Guia completa de_moodleGuia completa de_moodle
Guia completa de_moodle
 
Publicacion de material
Publicacion de materialPublicacion de material
Publicacion de material
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacion
 
Actividades en moodle
Actividades en moodleActividades en moodle
Actividades en moodle
 
Plataforma moodle
Plataforma moodlePlataforma moodle
Plataforma moodle
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtual
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Transparencias7
Transparencias7Transparencias7
Transparencias7
 
Transparencias5
Transparencias5Transparencias5
Transparencias5
 

Programación II - Arreglos en C

  • 1. PROGRAMACION II MODULO III - ESTRUCTURA DE DATOS LINEALES LECCION I – ARREGLOS 1. Estructuras continuas / lineales 2. Concepto de arreglos 3. Tipos 4. Declaraciones 5. Referencia 6. Ejemplos TEMA Nº 0 pág. 1/6
  • 2. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Estructuras continuas / lineales Son aquellas que ocupan un espacio de memoria (bloque) continuo (un byte al lado del otro). Todas las declaraciones de tipos básicos son lineales, tanto si se reservan de manera estática como de manera dinámica. Es necesario tener una dirección de memoria que permita llegar al bloque donde está la estructura. Desventajas: Ventajas: 1)Es necesario conocer, ya sea en tiempo 1)Sólo se requiere una estático o dinámico, el número de bytes dirección de memoria para que se requiere para reservar el bloque su llegar al bloqueacceso fácil a tamaño es estático, no puede crecer. la información. 2)Para bloques de gran tamaño, es posible 2)Una vez que se llega al que se de el caso de no encontrar un bloque toda la data está espacio continuo lo suficientemente accesible acceso rápido a la grande para satisfacer la necesidad (aún información. habiendo memoria disponible) posibles problemas de reserva de memoria.
  • 3. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Estructuras continuas / lineales NOTA: Las estructuras continuas son susceptibles al problema de fragmentación de memoria aún habiendo varios bytes de memoria disponibles, la alternación de bloques ocupados y libres hace que los espacios continuos sean más pequeños de los que se necesitan.
  • 4. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Estructuras continuas / lineales Dos clases de estructuras: 1)Arreglos: conjunto finitode elementos del mismo tipo. 2)Registros: conjunto finitode elementos de tipo diferente Para su definición / declaración se requieren tres cosas: 1)Conocer el tipo de dato único de todos sus elementos. 2)Conocer la cantidad de elementos del conjunto. 3)Dar un identificador válido para acceder a los elementos del conjunto.
  • 5. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Tipo de arreglos ¿Cómo representar arreglos de más de una dimensión: matrices por ejemplo? 1 dimensión vector 2 dimensiones matriz bidimensional 3 dimensiones matriz tridimensional N dimensiones matriz híper-espacial Se agrega otro tamaño y se usa otro índice para cada nueva dimensión
  • 6. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Tipo de arreglos
  • 7. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglos - Concepto
  • 8. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Arreglos
  • 9. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Arreglos
  • 10. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglos –Ejemplo palindromos #include <stdio.h> #define LONGITUD 81 #define NULO '0' main( ) { char texto[LONGITUD]; unsigned int longitud, izq, der; printf( "Comprobación de palíndromos.n" ); printf( "Introduzca texto: "); gets( texto ); longitud = 0; while( texto[longitud] != NULO ) { longitud = longitud + 1; } /* while */ izq = 0; der = longitud; while( ( texto[izq] == texto[der] ) && ( izq < der ) ) { izq = izq + 1; der = der – 1; } /* while */ if( izq < der ) { printf( "No es palíndromo.n" ); } else { printf( "¡Es palíndromo!n" ); } /* if */ } /* main */
  • 11. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglos –Ejercicio
  • 12. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglos – Carga de Datos Secuencial Como se comentó anteriormente la carga secuencial es ordenada y de acuerdo a esto deberemos llenar el vector respetando el siguiente orden v[0], v[1], v[2], v[3], v[4] Como se ve, el que cambia en forma creciente es el índice del vector que es el que me permite hacer la carga en forma secuencial. Para llevar esto a código de programa debemos pensar en una estructura de control que me permita realizar un número prefijado de repeticiones y que me incremente una variable en una unidad. Dicha estructura de control es el ciclo FOR. Un ejemplo de programa que me permite cargar un vector en forma secuencial es el siguiente #include <stdio.h> void main(void) { int v[5],i; for (i=0;i<5;i++) { printf("Ingrese valor a cargar en el vector"); scanf("%d",&v[i]); } } En el programa la variable i del ciclo for va a tomar valores desde 0 a 4 ordenadamente. Cuando comienza el for la variable i vale 0 (i=0), se cumple con la condición de que i<5 y entonces entramos al for. Se ejecuta el printf y luego el scanf lee desde el teclado y carga el valor en v[i] (v[0]). Se vuelve al for incrementando i en 1 (i++) por lo tanto el valor de i ahora es 1 y se cargará v[1], siguiendo i=2 y v[2], i=3 y v[3] para finalmente i=4 y v[4]. De esta forma se carga el vector en forma secuencial. Note que de esta forma se cargan todos los elementos del vector.
  • 13. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglos – Carga de Datos Secuencial Observe que el promedio se calcula recién cuando termina el FOR, es decir cuando tengo la suma completa. Si se pone dentro del FOR, en lugar de calcular el promedio 1 sola vez se calcularía 100 veces.
  • 14. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglo – Carga de datos aleatoria De acuerdo a lo comentado con anterioridad para la carga aleatoria debo ingresar 2 valores que son la posición donde quiero guardar el número y luego el número que quiero cargar. Puede ocurrir que en algún caso no se carguen todos los elementos del vector o que se pretenda cargar algún valor en un lugar ya cargado. Para analizar esto comenzaremos por el caso más simple y dejando que el usuario decida cuando terminar de cargar elementos en el vector. De acuerdo a esto como no se sabe cuantos elementos se van a cargar ni en que orden , debemos primero inicializar todos los elementos del vector en un valor conocido que normalmente es cero. Seguidamente se debe usar un ciclo de control en el cuál la cantidad de iteraciones que se realicen quede fijada por alguna condición que acepte el usuario, en este caso el ciclo que más se adecua es el while o do while.
  • 15. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Arreglo – Carga de datos aleatoria
  • 16. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Arreglo – Carga de datos aleatoria
  • 17. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Funciones con cadena de caracteres