Programación Estructurada PROGRAMACIÓN ESTRUCTURADA Sesión No. 7 Nombre: Estructuras de datos Contextualización Cuando un programa suele ser muy extenso, un problema clásico de los programadores es la exhaustiva definición de variables, que al tratarse de un programa extenso, sobre algún problema en particular, suelen acabarse las descripciones de las variables o los nombres de estas se repiten y se sobrescriben por error. Un método practico para definir bien un grupo de variables para su implementación en alguna acción especifica, es el modelo de estructura de datos de arreglos. Las estructuras de datos permitirán mantener un código mas sano en cuanto a líneas código y orden se refiere aun en lenguajes actuales, incluyendo aquellos derivados del lenguaje de programación C. 1 PROGRAMACIÓN ESTRUCTURADA Introducción al Tema Las estructuras de datos han ayudado a los desarrolladores a mantener un orden y coherencia en los datos que guardan una relación entre si, es importante que comprendas su funcionamiento ya que con su implementación, podrás optimizar códigos de programas especializados. En el lenguaje C encontraras tres tipos de estructuras de datos, conocidas como arreglos, que ayudan a optimizar el uso de memoria de un programa, disminuir errores de sobrescritura etc. En esta sesión aprenderás el concepto de dos tipos de estructuras, los arreglos unidimensionales y los arreglos bidimensionales. En la siguiente sesión, se retomara el tercer tipo de estructura conocido como arreglos multidimensionales, pero primero deberás comprender los conceptos básicos de los primeros dos tipos. 2 PROGRAMACIÓN ESTRUCTURADA Explicación Los arreglos son estructuras de datos que permiten almacenar datos al igual que las variables, con la diferencia de que el grupo de datos almacenados en los arreglos mantienen una estrecha relación entre si por su tipo de dato, es decir, la información que se almacena en ellos pertenece al mismo tipo de dato (Int, Float, Char etc.) lo que lo convierte en un conjunto de datos homogéneos. Los arreglos son elementos ordenados por índices donde se puede almacenar cualquier tipo de dato, previamente definido, cada elemento tiene una ubicación determinada dentro del arreglo, los arreglos seleccionan una región en la memoria donde se van a guardar los elementos que lo componen, el número de elementos debe de ser un entero y van numerados con 0,1,2,… hasta el número de elementos – 1, por ejemplo: Así, podríamos decir que el valor del arreglo C en el índice 1 = 23 ¿Cómo se diferencian los arreglos entre si? 3 PROGRAMACIÓN ESTRUCTURADA 4.1 Arreglos unidimensionales Un arreglo de una dimensión es una lista de variables, todas de un mismo tipo a las que se hace referencia por medio de un nombre común. Una variable individual del arreglo se llama elemento del arreglo. Un arreglo unidimensional es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo. En el lenguaje C los arreglos están íntimamente relacionados con los punteros. Cuando nos referimos al valor de la expresión a[ i ], en C está diseñado para entenderlo como: *((a)+(i)); es decir, el contenido que existe en la dirección del puntero de a incrementando en i. Por este motivo el primer elemento de arreglo es a[0]. Para declarar un arreglo en C se debe seguir la siguiente sintaxis: En este ejemplo de creo un arreglo de 100 numeros enteros llamado calificaciones. Se debe tener cuidado al medir la longitud del arreglo, ya que al ser espacios de memoria reservados, si no se utilizan los espacios de el arreglo, la memoria se desperdicia. 4 PROGRAMACIÓN ESTRUCTURADA ¿Cómo llenar un arreglo? Es aquí donde las estructuras repetitivas vistas en sesiones anteriores nos son de gran utilidad. Una de las estructuras mas urilizadas en lenguaje C es el ciclo repetitivo for, implemnetnadose como se muestra en el siguiente exemplo: #include<stdio.h> void main(){ int a[10]; int i; for(i=0; i<10; i++){ a[i]=i; } } En este ejemplo se creo un arereglo llamado a de longitud 10, donde mediante el siclo for se insertaron números del 0 al 9 quedando de la siguiente forma: tambien se pueden inicializar de forma manual, como en el siguiente ejemplo: int a[10]={0,1,2,3,4,5,6,7,8,9 }; Obteniendo el mismo resultado que en el caso anterior, sólo que a la forma manual se le conoce como inicializacion de arreglo. 5 PROGRAMACIÓN ESTRUCTURADA 4.2 Arreglos bidimensionales Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y columnas, cada elemento contiene un valor y cada dimensión representa una relación, observa la siguiente figura: El mapeo de estos arreglos podría relacionarse con coordenadas cartesianas en posiciones X,Y y se acceden de forma similar a los arreglos unidimensionales. Para crear un arreglo bidimensional debenmos seguir la siguiente sintaxis: 6 PROGRAMACIÓN ESTRUCTURADA Los arreglos bidimensionales tambien son conocidos como matrices, en lenguaje C se extrae el valor de una como en el siguiente ejemplo: #include <stdio.h> int main() { int fila, columna; int matriz[2][2]; for(fila=0; fila<2; fila++){ for(columna=0; columna<2; columna++){ printf(“%d”, matriz[fila][columna]); } } } 7 PROGRAMACIÓN ESTRUCTURADA Conclusión Los arreglos son estructuras de datos que nos permiten organizar información en conjuntos y sectores reservando espacio en memoria para garantizar su almacenamiento y consulta. El mantener la información bien organizada disminuye el riesgo de perdida de información o inconsistencia de la misma por sobrescritura de variables. Se recomienda la implementación de arreglos cuando se hace referencia a un mismo tema y que necesiten almacenarse en un solo paquete de información, (como en los ejemplos anteriores donde lo que se guardaban eran calificaciones). En los arreglos bidimensionales se pueden almacenar relaciones de datos sobre un tema común, por ejemplo, el número de lista de un alumno y su calificación, lo cual permitiría una precisión superior al momento de extraer la información. 8 PROGRAMACIÓN ESTRUCTURADA Para aprender más En el siguiente video encontraras la explicacion grafica de cómo se utilizan los arreglos unidimensionales y bidemensionales en lenguaje C Bbidimensionales https://www.youtube.com/watch?v=KrpUY3Bbiow 9 PROGRAMACIÓN ESTRUCTURADA Actividad de Aprendizaje Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta sesión, ahora tendrás que realizar la siguiente actividad. Instrucciones Escribe un programa donde se utilice un arreglo bidimensional en C Realiza la representación gráfica del arreglo Imprimir la pantalla ya que este escrito en C Convertir en imagen en formato JPG el programa realizado Convertir en imagen en formato JPG la representación gráfica del arreglo Subirlos a la plataforma de la asignatura Esta actividad te ayudara a comprender la función de un arreglo en el lenguaje C, así como su correcta utilización, lo cual te facilitara a entender las siguientes sesiones. Esta actividad representa el 5% de tu calificación y se tomará en cuenta lo siguiente: Tus datos generales. Título. Un programa donde se utilice un arreglo bidimensional en C Representación gráfica del arreglo Ortografía y redacción. Referencias bibliográficas 10 PROGRAMACIÓN ESTRUCTURADA Bibliografía Bronson, G; (2007), C++ para ingeniería y ciencias, México: Thomson. Cairo, O; (2006), Fundamentos de programación piensa en C, México: Pearson Educación Gómez, A; (s/f), Introducción a la computación, México: Cengage Learning. Páez, J; (2004), C y C++ de afán 2ª edición, Colombia: Universidad de Antioquia. 11