¡Descarga Introducción a la Programación: Identificadores, Variables, Constantes y Tipos de Datos - y más Apuntes en PDF de Informática solo en Docsity! INFORMÁTICA
Empezando a programar
Identificadores
Un identificador en un lenguaje de programación es un nombre utilizado para referir un valor constante,
una variable, una estructura de datos compleja, o una función, dentro de un programa. Todo identifica-
dor está formado por una secuencia de letras, números y caracteres de subrayado, con la restricción de
que siempre debe comenzar por una letra o un subrayado y que no puede contener espacios en blanco.
Cada compilador fija un máximo para la longitud de los identificadores, siendo habitual un máximo de
32 caracteres.
C diferencia entre mayúsculas y minúsculas, según lo cual C considerará los identificadores contador,
Contador y CONTADOR, por ejemplo, como diferentes.
En cualquier caso, nunca pueden utilizarse las palabras reservadas del lenguaje para la construcción
de identificadores. De acuerdo con el estándar ANSI, C consta únicamente de 32 palabras reservadas
Palabras reservadas de €
auto double int struct
break else long switch
case enuin register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
INFORMÁTICA
Empezando a programar
Identificadores
Palabras reservadas de C y C++,
and and_eq _ asm auto
bitand bitor bool break
case catch char class
compl const const_cast continue
default delete do double
dynamic_cast else enum explicit
export extern false float
for friend goto if
inline int long mutable
namespace new not not_eq
operator or or_eg private
protected public register reinterpret_cast
return short signed sizeof
static static_cast struct switch
template this throw true
try typedef typeid typename
union unsigned using virtual
void volatile wchar_t while
xor xor_eq
INFORMÁTICA
Empezando a programar
Identificadores
Nota:
Por tradición, los identificadores de las variables se escriben com-
pletamente en minúsculas y los identificadores de las constantes en
mayúsculas. Esto nos ayudará a distinguir de un vistazo si un identi-
ficador corresponde a una variable o a una constante.
Una práctica común en los programadores noveles es asignar a todas las
variables y constantes identificadores del tipo: A, B, X, Y, Z. ¿Podría alguien
decirnos qué van a almacenar? ¿El número de plantas de su jardín? O ¿cuán-
tos libros tiene su biblioteca? Debemos huir de esta práctica que nos dificul-
tará mucho la programación.
Nota:
Recuerde utilizar identificadores significativos para las variables
y constantes, de manera que le permitan conocer rápidamente qué
almacenan.
INFORMÁTICA
Empezando a programar
Variables y constantes
Al igual que en matemáticas o física se trabaja con valores en la resolución de
problemas, a lo largo del desarrollo de un programa también existe la nece-
sidad de trabajar con éstos. Tendremos valores que permanecerán constan-
tes a lo largo del programa y otros que variarán. A los primeros se les llama
constantes y a los segundos variables.
Siguiendo con la referencia de las matemáticas y la física, recordemos cons-
tantes como pi (314) o el n* e (271), y variables como la típica x o y, que to-
maban distintos valores a lo largo del problema matemático o físico, Pues,
como ya hemos dicho, el concepto de constante y el de variable también exis-
ten en programación.
Así, podemos considerar que k representa siempre al mismo número (por
ejemplo: 10) o que x representa un número en un momento (por ejemplo: 3)
y otro número en otro momento (por ejemplo: 6). Entonces decimos que k
es una constante, porque su valor siempre permanece igual, y que x es una
variable, porque su valor cambia.
Démonos cuenta de que hemos dicho que la constante k y la variable x son
números, y que hemos dado un nombre a ambas ("k" y "x"); pues bien, al
nombre de la variable o constante nos referiremos como identificador y nos
referiremos como tipo de dato a si será un número u otra cosa lo que alma-
cena. De esta forma, y siguiendo los ejemplos anteriores, k es una constante
cuyo identificador es "k" y cuyo tipo de dato es un número, mientras que x
es una variable cuyo identificador es "x" y cuyo tipo es un número. Pero ¿una
variable o constante puede almacenar algo distinto a un número? Sí, puede
almacenar un número entero o un número real, e incluso una letra, pero esto
lo veremos más adelante, en este mismo capítulo.
INFORMÁTICA
Empezando a programar
Variables y constantes
Los programas de ordenador utilizan diferentes tipos de datos. por lo que requieren de algún mecanismo
para almacenar el conjunto de valores usado. C ofrece dos posibilidades: variables y constantes. Una
variable es un objeto donde se guarda un valor, el cual puede ser consultado y modificado durante la
ejecución del programa. Por el contrario, una constante tiene un valor fijo que no puede ser modificado.
Variables
Toda variable debe declararse antes de ser usada por primera vez en el programa. Las sentencias de
declaración de variables indican al compilador que debe reservar cierto espacio en la memoria del or-
denador con el fin de almacenar un dato de tipo elemental o estructurado. Por ejemplo. la siguiente
declaración de variables indica al compilador que debe reservar espacio en la memoria para tres varia-
bles de tipo entero, a las que nos referiremos con los nombres a, b y c:
int a, b, C;
La declaración consiste en dar un nombre significativo a la variable e indicar el tipo de datos a que
corresponden los valores que almacenará. A continuación se muestra la sintaxis más sencilla de una
sentencia de declaración para una sola variable.
tipo.datos nombre_variable;
Además, en una sola sentencia pueden declararse varias variables de un mismo tipo de datos, sepa-
tando los nombres de las variables mediante comas:
tipodatos nombre _variablel, -, nombre _variableN;
Opcionalmente, es posible asignar un valor inicial a las variables en la propia declaración.
tipodatos nombre variable = valor.inicial;
int a, b, € = 5D;
INFORMÁTICA
Empezando a programar
Tipos de datos
Cada tipo de dato permite almacenar valores pertenecientes a un rango. El
rango de valores de cada tipo de dato mostrado en la tabla corresponde
al mínimo garantizado según las especificaciones del estándar ANSI/ISO de
C, pero los compiladores pueden superar estos rangos.
Pero ¿qué significan los números de los rangos de valores de la tabla ? La
mejor respuesta es con un ejemplo.
En el caso de que una variable sea de tipo int, al ser su rango de valores
de -32767 a 32767, dicha variable podrá almacenar el valor 10, o el 30107, o
el -15728, o el -459, o el 0, es decir, cualquier valor que esté comprendido
entre -32767 y el 32767, pasando por el 0. Sin embargo, no puede almacenar
el valor 90000, ya que está fuera de su rango de valores por ser un número
mayor que 32767.
Por otro lado, aunque más adelante trataremos el tipo float y double,
adelantaremos que éstos pueden almacenar números con coma, como por
ejemplo 3,14, así como números muy grandes, como pueden ser del orden
de millones o miles de millones.
Rango minimo de valores de los tipos de datos.
Rango de valores
de -127 a 127.
int de -32767 a 32767.
float de 18-37 a 1€+37, con seis dígitos de precisión.
double de 1£-37 a 1£+37, con diez dígitos de precisión.
es rare
INFORMÁTICA
Tipos de datos
Tipo char
Este tipo de datos se identifica con la palabra reservada char. Comprende un conjunto ordenado y
finito de caracteres, representados mediante códigos numéricos. La codificación más extendida es el
estándar ASCII que utiliza 8 bits. Así pues, el tipo de datos char es internamente tratado como
un entero, aunque puede manipularse como un carácter propiamente.
Los valores del tipo char son caracteres representados entre comillas sim-
ples (*').
Son caracteres las letras minúsculas, las letras mayúsculas, los números y
otros símbolos del juego estándar de caracteres, como los signos de pun-
tuación. Nosotros trabajaremos con el juego de caracteres de la tabla ASCH
(American Standard Code of Information Exchange, Código Estándar America-
no para el Intercambio de Información). Ejemplos de caracteres son: 'A', '5,
SETE
A cada carácter le corresponde un valor numérico o código siempre posi-
tivo, que es el de la posición que ocupa en la tabla ASCII; así, al carácter 'A"
le corresponde el valor 65 y, de igual manera, pero a la inversa, al valor 65
le corresponde el carácter 'A?.
Nota:
Saber que a cada carácter de la tabla ASCII le corresponde un valor
es algo a tener siempre en cuenta desde el punto de vista de un pro-
gramador. Aunque de momento no le vea la utilidad a esta carac-
terística, la tendremos en cuenta para realizar algunos ejemplos y
ejercicios.
INFORMÁTICA
Tipos de datos
Tipo char
La declaración de variables se realiza como:
char lista de variables;
La forma habitual de expresar una constante de tipo char es mediante el carácter correspondiente
entre comillas:
char x, y;
x= 'f';
y= 02;
x= '5';
Existe una serie de caracteres que se escriben de una manera especial y, aun-
que dentro de las comillas simples hay dos caracteres, equivalen sólo a uno,
Significado
Otros caracteres.
Retroceso
Salto de línea
Tabulación horizontal WE
Comillas dobles au
Comilla simple yo
Barra diagonal invertida Wi
INFORMÁTICA
Tipos de datos
Tipo char
Algo que debe quedar claro es que los caracteres numéricos (1,2, 3, 4,5,
16,7, '8,'9, 'D') son eso, caracteres y no números. Si pretendiésemos sumar
el carácter '2' y el carácter '4' no obtendríamos el carácter '6'. Esto es porque
cuando escribimos los números entre comillas simples representan caracte-
res, símbolos, no valores. El carácter '6' no es el número 6, es un símbolo (una
imagen, un dibujo, un gráfico) que representa al número 6.
Debido a la representación interna de los caracteres mediante números enteros, pueden realizarse
operaciones aritméticas como: *F'+*5*' , 0 lo que es lo mismo, 70 +53 = 123, que equivale al
carácter *[*:0como 'F'+5,estoes 70+ 5 = 75 que equivale al carácter *K'.
Por la misma razón también se establece un orden entre los caracteres. lo que permite usar los
operadores relacionales habituales. Así pues. la comparación 'a' <= 'h' da como resultado el
valor cierto, o la comparación 'K" > 'V* da como resultado el valor falso.
INFORMÁTICA
Tipos de datos
Números enteros: tipo int
La palabra clave utilizada para especificar el tipo de datos entero es int. Dependiendo del orde-
nador, del sistema operativo y el compilador utilizados. el tamaño de un entero en memoria varía. Sin
embargo. hoy en día la mayoría de los computadores almacenan las variables del tipo int en 32 bits (4
bytes). por lo que el rango representable de números enteros va desde —2147483648 hasta 2147483647
(esto es, desde —2*! hasta 2%! — 1). Por otro lado, en el entorno IBM-PC aún existen compiladores en
donde un entero sólo ocupa 16 bits (2 bytes). con un rango entre —32768 y 32767 (desde —2'* hasta
21% — 1). Por ejemplo, Turbo C 2.0, Visual C++ 1.5, etc.
Aunque ya se ha visto previamente. el formato para declarar variables enteras es:
int listade variables;
Donde se especifica una lista de nombres de variables separados por comas.
Los números enteros en C se expresan mediante una serie de digitos, precedidos o no por un signo
+ 0 —. Si el número es positivo, el signo + es opcional. Habitualmente se utiliza la notación decimal,
aunque también es posible usar notación octal y hexadecimal. En los números expresados en octal, se
utiliza un 0 como primer dígito, mientras que en los números expresados en hexadecimal, el número
es precedido por un O y una equis mayúscula o minúscula (Ox O 0X). La tabla muestra algunos
ejemplos de representación de constantes enteras en los distintos formatos.
Representación de enteros en decimal, octal y hexadecimal
Decimal Octal Hexadecimal
27 033 OX1B
4026 07672 OXFBA
-149 -0225 -0x95
Tipos de datos
Tipo int
El tipo int es un número entero, sin parte fraccionaria. Los números de tipo
entero los podemos escribir en forma decimal (sin anteponer un 0 al núme-
ro), octal (anteponiendo un 0 al número) o hexadecimal (anteponiendo 0x
al número).
Ejemplos de números de tipo int son los mostrados en la tabla
Valores de tipo int.
1 0x24 022
0 Ox1 07
24 DxF 0176
4238 Ox1AC 01
INFORMÁTICA Tipos de datos Números reales: tipo float y double INFORMÁTICA
Tipos de datos
Tipo float y double
Generalmente utilizaremos el tipo float para variables en la que deseemos
almacenar números muy grandes y/o con decimales. De esta forma, si que-
remos tener una variable donde almacenar una cantidad numérica de dóla-
res o euros, como pudiera ser 95133.45, usaremos este tipo de dato. También
utilizaremos el tipo float para una variable en la que deseemos almacenar
la estatura de una persona en metros, como puediera ser 1.82, o su peso en
kilogramos, como pudiera ser 75.325,
Nota:
Recuerde que cuando programamos, el punto que aparece en los nú-
meros, como en 3.14, separa la parte entera de la fraccionaria, no lo
confunda con el separador de millares que utilizamos en la vida dia-
ría y que en realidad no existe a la hora de programar.
Por ejemplo, si en un recibo bancario vemos el número 3.758,23, a
nivel de programación el número que usamos es 3758.23.
INFORMÁTICA
Declaración de variables y constantes
Declaración de variables
En € y C++, antes de usar una variable hay que declararla. Una variable se
declara escribiendo su tipo de dato, un espacio, su identificador y punto y
coma (;):
tipo identificador:
Imaginemos que queremos usar una variable para almacenar una edad, otra
para almacenar distancias y otra para almacenar letras. Estas variables decla-
radas en una función main aparecerían de la siguiente manera.
int main (voidp
(
char letra;
int edad;
float distancia;
,
Pero, ¿qué ocurriría si, por ejemplo, necesitásemos una variable para alma-
cenar el número de peras que hay en una tienda de frutas, otra variable para
el número de manzanas, otra para el número de plátanos y otra para el nú-
mero de naranjas? La declaración de todas estas variables sería:
main (void)
peras;
Ant mánzanas;
int plata
int naranj
Hay cuatro variables declaradas del mismo tipo en cuatro líneas. Para estos
casos en los que queremos declarar más de una variable del mismo tipo está la
posibilidad de hacerlo en una línea. Para ello escribimos el tipo de dato de las
variables, un espacio, el identificador de una variable, una coma, un espacio,
el identificador de otra variable, una coma, y así sucesivamente. Tras el últi-
mo identificador debe escribirse un punto y coma (;). Veamos la sintaxis:
tipo identificador_1, identificador 2, ..., identificador_n;
INFORMÁTICA
Declaración de variables y constantes
Declaración de constantes
También podemos asignar cadenas a las constantes creadas con tdefine. Si
un carácter se representaba entre comillas simples y sólo podía contener un
carácter (por ejemplo: 'A”), una cadena se representa entre comillas dobles
y puede contener uno o más caracteres (por ejemplo: "Esto es una cadena”).
Constantes cuyo valor es una cadena son:
LUDO "Hola"
"Hasta la proxima"
ATUBIP"
define NOTA_1 "DO"
Las constantes declaradas mediante +de fine se suelen escribir antes de la
función main y después de las directivas Hinclude:
A
Observe que no se escribe el punto y coma (;) al final de cada declaración,
como ocurría con la palabra reservada const, ya que si lo hiciéramos pro-
vocaríamos errores en el programa. Esto es porque con +def ins el valor de
la constante será todo aquello que se escriba tras el identificador, por lo que
si ponemos un punto y coma tras el valor:
idefine PI 3.14;
entonces, el valor de la constante PI incluirá también el punto y coma, sien-
do: 3.14;
INFORMÁTICA
Declaración de variables y constantes
Declaración de constantes
Pero ¿por qué ocurre esto? La solución está en cómo funciona fdefine.
Supongamos que hemos escrito un programa como el siguiente, en el cual
aparece en varios lugares del código la constante SECRETO. No importa que
ahora no entienda el programa, únicamente localice los lugares donde apa-
rece el identificador SECRETO.
S+include «<stdio.h>
idefine SECRETO 3
int main (void)
t
int numero;
print Valor es 3. A partir de la línea siguiente, cada vez que se encuentre el iden-
acani tificador SECRETO lo sustituirá por su valor.
ushistdin);
if inumera == SECRETO)
printf (“inMuy bien, lo has adivinado.”);
else
printf ("ino siento, no
lo has adivinado. Era: %d", SECRETO);
/* Hacemos una pausa hasta que el usuerio pulse Intro *f
gebchar();
]
Cuando compilemos este programa, el compilador detectará la declaración
de una constante llamada SECRETO mediante la directiva ¿define y cuyo
valor es 3. Á partir de la línea siguiente, cada vez que se encuentre el iden-
tificador SECRETO lo sustituirá por su valor.
INFORMÁTICA
Declaración de variables y constantes
Declaración de constantes
A la vista del compilador, no a la nuestra, el programa tomaría el siguiente
aspecto.
Hinelude <stdio.h>
Hd
ine SECRETO 3
int main (void)
[
int numero;
printf ("Escriba el numero secreto: ");
scaní ("5d”, £numero);
fflushistdin);
if (numero == 3)
printf ("inMuy bien, lo has adivinado.");
else
printf ("inLo siento, no lo has adivinado. Era: 4d", 3);
/* Hacemos una pausa hastá que el usuario pulse Intro */
gerchar ();
)
Observe que a partir de ¿define SECRETO 3, donde había un identificador
SECRETO ahora aparece su valor.
Si en la declaración, después del valor de la constante, hubiéramos escrito
un punto y coma (;), el programa, sólo a la vista del compilador, habría que-
dado así: