Fundamentos de Programación I
2. Elementos de un programa
Luis Rodríguez Baena (
[email protected])
Universidad Pontificia de Salamanca
Escuela Superior de Ingeniería y Arquitectura
Datos y tipos de datos
Los datos constituyen los elementos básicos sobre
los que trabajará un algoritmo.
● La elección de un tipo de dato determinará el algoritmo
utilizado para procesarlos.
Algoritmos + estructuras de datos = programas (Nicklaus Wirth).
● Por ejemplo:
Si un programa procesa una lista de alumnos…
○ Requerirá un algoritmo con una estructura repetitiva que repita el
mismo proceso para todos los alumnos hasta que finalice la lista.
Si un programa necesita hacer distinción entre las personas
solteras o casadas…
○ Requerirá de un algoritmo con una estructura selectiva que permita
hacer la distinción entre los dos estados posibles que puede tomar el
estado civil de una persona.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
2
Datos y tipos de datos (II)
Dato: unidad mínima de información con la que puede
trabajar un programa.
● El concepto de “información mínima” puede cambiar de un programa
a otro en función de los tipos de datos que maneje.
Por ejemplo, mientras que FORTRAN puede trabajar con números complejos,
las primeras versiones de BASIC sólo podían trabajar con números reales.
Tipo de dato: conjunto de valores distintos que puede tomar
un dato.
● La mayoría de los lenguajes tienen un conjunto de tipos de datos
similar.
● Cada lenguaje puede nombrarlos o almacenarlos de forma distinta.
● Aunque el procesador sólo trabaja con datos binarios, los lenguajes
de alto nivel realizan una abstracción de la información.
El tipo de dato indica al programa como tiene que interpretar esa secuencia
de bits.
○ Por ejemplo, la secuencia de bits 0000000001000001 puede ser interpretada por
un programa como…
− El valor numérico decimal 65 si se considera como un tipo de dato numérico.
− El carácter A, si se considera como un tipo de dato carácter.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
3
Clasificación de los tipos de datos
Tipos de datos
Simples
Estructurados
Enteros
Reales
Carácter
Cadena
Numéricos
Lógicos
Alfanuméricos
Punteros
Subrango
Enumerados
Conjuntos
Arrays
Registros /
estructuras
Cadena
Archivos
Estándar
Definidos por el
usuario
Estáticos
Dinámicos
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
4
Datos simples
Un dato simple es aquel que no se puede subdividir
en otros más pequeños.
● Por el contrario un dato estructurado estaría compuesto de
otros datos que serán a su vez simples o estructurados.
Datos estándar (datos primitivos o integrados).
● Datos que son directamente soportados por el lenguaje de
programación.
Vamos a considerar los siguientes tipos de datos
estándar.
● Numéricos.
● Lógicos.
● Carácter.
● Cadena.
● Punteros.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
5
Datos simples (II)
Datos numéricos.
● Entero.
Podrá contener cualquier valor numérico entero.
En C, según su tamaño en bytes pueden ser int, short, long.
● Real.
Cualquier valor numérico con parte decimal.
En C podrán ser float y double.
Datos carácter.
● Podrán contener cualquier carácter válido.
● En C se corresponde con el tipo de dato char y se puede considerar también como un dato
entero.
Datos lógicos.
● Sólo podrán contener los valores si/no, verdad/falso.
● En C no existen de forma directa y las expresiones lógicas devuelve 0 si es falsa o 1 si es
verdadera.
El archivo de cabecera stdbool.h contiene especificaciones que enmascaran esto.
● Podrán contener una secuencia de caracteres.
● En C no existen directamente y se consideran arrays de caracteres terminados en un carácter
Datos de tipo cadena.
nulo.
Datos de tipos puntero.
● Contienen exclusivamente direcciones de memoria dónde se almacenen otros datos.
● Se ven en profundidad en la asignatura de Fundamentos II
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
6
Datos simples (III)
Datos definidos por el usuario.
● El usuario (programador) decide el conjunto de valores que
puede almacenar el tipo de dato.
● Es necesario indicar el nombre del tipo y el conjunto de
valores.
● Según la forma en que se especifica el conjunto de valores.
Datos enumerados.
○ Se enumeran de forma explícita cada uno de los valores que puede contener.
− Ejemplos:
díaSemana = {lunes,
• Una dato de tipo diaSemana podrá contener cualquiera de estos valores.
martes,miércoles,jueves,viernes,sábado,domingo}
○ En C se puede hacer algo parecido con las constantes enumeradas.
Datos subrango.
○ Son un subconjunto de algún tipo de dato ya definido.
○ Ejemplos:
sigloXX = 1900..1999
semanaLaboral = lunes..viernes
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
7
Datos estructurados
Datos compuestos de otros datos.
● Se podrán tratar tanto individualmente como en su conjunto.
Según su forma de almacenamiento en memoria podrán ser:
Se reserva un espacio fijo para almacenarlos y siempre ocupan la misma
● Estáticos.
posición de memoria.
● Dinámicos.
del programa.
El espacio que ocupan y su posición pueden variar a lo largo de la ejecución
En la asignatura de Fundamentos de Programación I se
tratarán la siguientes estructuras de datos estáticas:
● Arrays.
● Registros.
● Cadenas.
Se pueden considerar también un dato estructurado puesto que están
compuestas de datos más simples (caracteres).
Otros datos estructurados estáticos son:
● Archivos (se verán en Fundamentos de Programación II).
● Conjuntos.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
8
Constantes
Enteras.
signo -.
Reales.
Datos que no cambian su valor a lo largo de la
ejecución del programa.
Constantes literales.
● Representación de la información que contiene el dato.
● Según el tipo de información que contengan pueden ser.
○ Formadas por los dígitos de 0 a 1 y pueden estar precedidas por el
○ Representación en coma fija.
− Formadas por los dígitos de 0 a 1, el punto decimal y pueden estar
precedidas por el signo – .
• Por ejemplo, 567.56 o -34.678.
○ Representación en coma flotante.
− Además de la mantisa, van seguidas por la base (representada por la
letra E) y el exponente.
• Por ejemplo, 2.34E02 (sería 2,34 x 102) o 1.034E-21 (sería 1,034 x 10-21).
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
9
Constantes (II)
Constantes literales (continuación…).
● Lógicas.
○ C no tiene este tipo de constantes, aunque el archivo de cabecera stdbool.h
Representas mediante las palabras reservadas verdad o falso.
define las constantes true y false que valen 1 y 0 respectivamente..
Cualquier carácter del juego de caracteres utilizado encerrado entre
● Carácter.
comillas.
○ C distingue entre constantes de carácter y de cadena.
− En C el delimitador de caracteres es la comilla simple.
● Cadena.
Secuencia de caracteres del juego de caracteres utilizado encerrado entre
comillas.
○ En C, el delimitador de cadenas es la comilla doble.
Constantes simbólicas.
● Constantes a las que se asigna un nombre nemotécnico
● El compilador sustituirá todas las apariciones de ese nombre por
(identificador).
su valor asignado en la declaración de la constante.
En C se pueden declarar mediante el modificador const.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
10
Variables
Datos que pueden variar su contenido a lo largo de la
ejecución de un programa.
El nombre de la variable es un identificador válido.
Las variables primitivas se almacenan en una zona de
memoria que se reserva al arrancar el programa (pila) y
queda inaccesible cuando termina.
● Cuando en el programa se indica que se va a utilizar, por ejemplo,
una variable entera.
Antes de la ejecución del programa se busca una zona de memoria lo
suficientemente grande como para almacenar un dato entero.
A esa zona de la memoria se le asigna un identificador (un nombre).
Mientras que se ejecuta el programa al utilizar ese identificador se estará
haciendo referencia a esa zona de memoria.
Al terminar el programa, el identificador “desaparece”, por lo que no se
puede utilizar esa zona de memoria, ya que no se puede hacer referencia
a ella.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
11
Expresiones
Modifican los datos presentes en el algoritmo.
Conjunto de variables, constantes, operadores y llamadas a funciones
que siempre devuelven un valor.
● El valor será de un tipo determinado que depende de los operadores y los
operandos de la función.
● Según el tipo de dato que devuelven habrá expresiones:
Numéricas.
Lógicas.
De cadena.
En un algoritmo, las expresiones algebraicas comunes tendrán que ser
traducidas a expresiones algorítmicas:
2
a
c
5
2
d
b
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012
12
Expresiones aritméticas
Dan como resultado un valor de tipo numérico.
Están compuestas de operandos numéricos y operadores aritméticos.
El lenguaje algorítmico UPSAM utiliza los siguientes operadores aritméticos:
Operador
Significado
Ejemplo
**
+
-
*
/
mod
div
Exponenciación
2 ** 3 equivale a 23
Suma aritmética
Resta. Como operador unario (con un solo
operando) actuará como el signo neg
Comentarios de: 2. Elementos de un programa - Fundamentos de Programación I (0)
No hay comentarios