|
|
||
| PRIMERO DE INGENIEROS INDUSTRIALES | ||
| UNIVERSIDAD POLITÉCNICA DE CARTAGENA |
FUNDAMENTOS DE INFORMÁTICA. PROGRAMACIÓN EN C. |
|
|
Pedro María Alcover Garau |
PRIMERO DE INGENIEROS TÉCNICOS INDUSTRIALES |
|
|
0.
Presentación. |
MODELOS DE REPRESENTACIÓN
Ya se ha dicho que el primer paso cuando se pretende resolver un problema mediante medios informáticos consiste en la abstracción en busca de un modelo. Esto supone crear una representación simplificada, mediante la cual se consideran sólo aquellos detalles que nos interesan para poder tratar el problema. En este proceso de abstracción de la realidad, se selecciona un conjunto de entidades, vinculadas entre sí mediante un conjunto de relaciones. Esas entidades serán creadas en el programa mediante la reserva, para cada una de ellas, de un espacio de memoria. Los diferentes valores que pueden tomar esas entidades quedarán codificados en los distintos estados que puede tomar esa memoria. El estado físico concreto que tome en un momento concreto un determinado espacio de memoria significará un valor u otro dependiendo de cuál sea el código empleado. Cada entidad creada deberá ser identificada de forma inequívoca mediante un nombre. Para la generación de esos nombres hará falta echar mano de un alfabeto. Esas entidades pueden ser, o bien literales, o bien identificadores, o constantes definidas. Entendemos por literal cualquier símbolo que representa un valor. Por ejemplo, 3 representa el número 3 (literal numérico), y “Este es un texto de 7 palabras” representa un texto (literal alfanumérico). Ya se ha hablado de los identificadores. Son símbolos empleados para representar objetos. Ya hemos visto sus reglas de creación. Por ejemplo, Coseno puede ser el identificador para dar nombre a una función que calcule el valor coseno de un ángulo que será recibido como parámetro; Radio puede ser el identificador que se crea para almacenar el valor del valor del radio de una circunferencia. Una constante es un identificador que representa un literal, es decir, que se define para un valor concreto, no variable. Por ejemplo, se podría llamar PI a la constante que guarde el literal 3.14159.
Tipo de dato Un tipo de dato define de forma explícita un conjunto de valores, denominado dominio, sobre el cual se pueden realizar un conjunto de operaciones. Cada espacio de memoria reservado en un programa para almacenar un determinado tipo de valores debe estar asociado a un tipo de dato. La principal motivación es la organización de nuestras ideas sobre los objetos que manipulamos. Un lenguaje de programación proporciona un conjunto de tipos de datos simples o predefinidos (que se llaman los tipos de dato primitivos) y además proporciona mecanismos para definir nuevos tipos de datos, llamados compuestos, combinando los anteriores. Distintos valores pertenecientes a diferentes tipos de datos pueden tener la misma representación en la memoria. Por ejemplo, un byte con el estado 01000001 codificará el valor numérico 65 si este byte está empleado para almacenar valores de un tipo de dato entero; y codificará la letra ’A’ si el tipo de dato es el de los caracteres. Por eso, es muy importante, al reservar un espacio de memoria para almacenar valores concretos, indicar el tipo de dato para el que se ha reservado ese espacio.
Variable Una variable es un elemento o espacio de la memoria que sirve de almacenamiento de un valor, referenciada por un nombre, y perteneciente a un tipo de dato. Podemos definir una variable como la cuádrupla
Donde N es el nombre de la variable; T el tipo de dato para el que se creó esa variable; R es la referencia en memoria, es decir, la posición o dirección de la memoria reservada para esa variable; y K es el valor concreto que adopta esa variable en cada momento y que vendrá codificado mediante un estado físico de la memoria. Por ejemplo, mediante <x, entero, 10001, 7> nos referimos a una variable que se ha llamado x, creada para reservar datos de tipo entero, que está posicionada en la dirección de memoria 10001 y que en este preciso instante tiene codificado el valor entero 7. Al hacer la asignación x ç 3, se altera el estado de esa memoria, de forma que pase a codificar el valor entero 3. En la mayoría de los lenguajes (y también en C) es preciso que toda variable se declare antes de su utilización. En la declaración se realiza la asociación de tipo de dato (que explicita el dominio de valores válidos) con el nombre de la variable. En la declaración de la variable también queda definida la asociación entre el nombre y el espacio de memoria reservado: antes de la ejecución de un programa el ordenador ya conoce los requerimientos de espacio que ese programa lleva consigo.
Variable - Tipo de dato - Valor Una definición intuitiva de valor es: elemento perteneciente a un conjunto. Ese conjunto se explicita mediante la declaración del tipo de dato. Una vez introducidos estos tres conceptos, es útil pensar en ellos conjuntamente. Una variable es un trozo de memoria. Que ese trozo sea más o menos extenso dependerá de para qué haya sido reservada esa variable. Y eso lo determina el tipo de dato para el que se ha creado esa variable. Por ejemplo, si se crea una variable para almacenar enteros que pueden llegar a tomar valores muy grandes, entonces se necesitará al menos 32 bits para codificar esos valores. Si los enteros son pequeños, quizá baste con 16 bits. Qué valor codifique una variable en un momento determinado también depende del tipo de dato. Dos estados iguales pueden codificar valores distintos si se trata de espacios de memoria que codifican tipos de dato diferentes. |
||
|
Otras publicaciones o páginas sobre el lenguaje C: |
|||
| Comentarios o preguntas a: pedro.alcover@upct.es |