PROGRAMACION II MODULO III - ESTRUCTURA DE DATOS LINEALES                            LECCION I – ARREGLOS  1.   Estructura...
PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Estructuras continuas / lineales   Son aquellas que ocupan un espacio de memo...
PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Estructuras continuas / lineales    NOTA: Las estructuras continuas son susce...
PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Estructuras continuas / lineales   Dos clases de estructuras:   1)Arreglos: c...
PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Tipo de arreglos  ¿Cómo representar arreglos de más de una dimensión: matrice...
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>              #d...
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...
PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglos – Carga de Datos Secuencial                                         ...
PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglo – Carga de datos aleatoria   De acuerdo a lo comentado con anteriorid...
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
Próxima SlideShare
Cargando en…5
×

Programacion ii modulo3-leccion1

636 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
636
En SlideShare
0
De insertados
0
Número de insertados
27
Acciones
Compartido
0
Descargas
5
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Programacion ii modulo3-leccion1

  1. 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. 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. 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. 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. 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. 6. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Tipo de arreglos
  7. 7. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglos - Concepto
  8. 8. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Arreglos
  9. 9. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Arreglos
  10. 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. 11. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C – Arreglos –Ejercicio
  12. 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. 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. 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. 15. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Arreglo – Carga de datos aleatoria
  16. 16. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Arreglo – Carga de datos aleatoria
  17. 17. PROGRAMACION II FUNDAMENTOS DEL LENGUAJE C - Funciones con cadena de caracteres

×