Tema 2 - ASI Iliberis

Anuncio
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del
lenguaje de programación C. Este capítulo incluye además los siguientes temas:
-Creación de un programa.
-Elementos básicos que componen un programa.
-Tipos de datos en C y cómo se declaran.
-Concepto de constantes y su declaración.
-Concepto y declaración de variables.
-Tiempo de vida o duración de variables.
-Operaciones básicas de entrada/salida.
2.1. ESTRUCTURA GENERAL DE UN PROGRAMA EN C
Una función en C es un grupo de instrucciones que realizan una o más acciones. Un programa
C puede incluir: directivas de preprocesador; declaraciones globales; la función main( );
funciones definidas por el usuario; comentarios del programa.
2.1.1. Directivas del preprocesador
El preprocesador consta de directivas que son instrucciones al compilador. Todas las
directivas del preprocesador comienzan con el signo de libro o «almohadilla» (#) y no
terminan en punto y coma, ya que no son instrucciones del lenguaje C.
La directiva #include indica al compilador que lea el archivo fuente (archivo cabecera o de
inclusión) que viene a continuación de ella y su contenido lo inserte en la posición donde se
encuentra dicha directiva. Estas instrucciones son de la forma #include <nombrearch.h> o
bien #include “nombrearch.h”.
Pág. 1/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
La directiva #define indica al preprocesador que defina un ítem de datos u operación para el
programa C. Por ejemplo, la directiva # define TAM 1 0 sustituirá el valor 1 0 cada vez que
TAM aparezca en el programa.
2.1.2. Declaraciones globales
Las declaraciones globales indican al usuario que las constantes o variables así declaradas son
comunes a todas las funciones de su programa. Se sitúan antes de la función main( ). La zona
de declaraciones globales puede incluir declaraciones de variables además de declaraciones
de prototipos de función.
2.1.3. Función main( )
Cada programa C tiene una función main( ) que es un punto inicial de entra da al programa. Su
estructura es:
void main( )
{
...
bloque de sentencias
}
Además de la función main ( ), un programa C consta de una colección de funciones que son
subprogramas que devuelven un único valor. Las sentencias de C situadas en el cuerpo de la
función main( ),o de cualquier otra función, deben terminar en punto y coma.
2.1.4. Funciones definidas por el usuario
Un programa C es una colección de funciones. C proporciona funciones predefinidas que se
denominan funciones de biblioteca y otras definidas por el usuario. Se invocan por su nombre
y los parámetros opcionales que tenga. Después de que la función sea llamada, el código
asociado con la función se ejecuta y, a continuación, se retorna a la función llamadora. En C,
las funciones definidas por el usuario requieren una declaración o prototipo en el programa,
que indica al compilador el nombre por el que ésta será invocada. Las funciones de biblioteca
requieren que se incluya el archivo donde está su declaración.
Pág. 2/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
#include <stdio.h>
void prueba( );
int main( )
{
prueba( );
return 0;
}
void prueba( )
{
printf (“Mis primeros pasos \n”);
}
2.1.5. Comentarios
Un comentario es cualquier información que se añade a su archivo fuente. Los comentarios en
C estándar comienzan con la secuencia /* y terminan con la secuencia */.
Actualmente los compiladores de C/C++ admiten comentarios en línea, que comienzan con // y
consideran el texto escrito hasta el final de línea como comentario.
2.2. LOS ELEMENTOS DE UN PROGRAMA C
Los elementos básicos de un programa C son: identificadores, palabras reservadas,
comentarios, signos de puntuación, separadores y archivos cabecera.
•
Identificador.
Un identificador es una secuencia de caracteres, letras, dígitos y
subrayados. El primer carácter debe ser una letra (no un subrayado). Las letras
mayúsculas y minúsculas son diferentes. Pueden tener cualquier longitud, pero el
compilador ignora a partir del 32. No pueden ser palabras reservadas.
•
Palabras reservadas. Una palabra reservada tal como void es una característica del
lenguaje C asociada con algún significado especial. Una palabra reservada no se puede
Pág. 3/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
utilizar como nombre de identificador, objeto o función. Otros ejemplos de palabras
reservadas son: asm, auto, break, case, char, const, continue, default, etc.
•
Comentarios. Los comentarios que se encierran entre /* y */ pueden extenderse a lo
largo de varias líneas. Los comentarios son ignorados por el compilador.
•
Signos de puntuación y separadores. Todas las sentencias de C deben terminar con
un punto y coma. Otros signos de puntuación son:
¡
%
^
&
*
(
)
-
+
=
{
}
~
[
]
\
;
‘
:
<
>
?
,
.
/
“
Los separadores son espacios en blanco, tabulaciones, retornos de carro y avances de línea.
•
Archivos de cabecera. Un archivo de cabecera es un archivo especial que contiene las
declaraciones de objetos y funciones de la biblioteca que son añadidos en el lugar
donde se insertan. Un archivo cabecera se inserta con la directiva #include.
2.3. TIPOS DE DATOS EN C
Los tres tipos de datos básicos de C son: enteros, números de coma flotante (reales) y
caracteres. La Tabla 2.1 recoge los principales tipos de datos básicos, sus tamaños en bytes y
el rango de valores que pueden almacenar.
2.3.1. Enteros (int)
Los tipos enteros se almacenan internamente en 2 bytes de memoria. La Tabla 2.2 resume los
tres tipos enteros básicos, junto con el rango de valores y el tamaño en bytes usual,
dependiendo de cada máquina.
Pág. 4/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
2.3.2. Declaración de variables
La forma más simple de una declaración de variable en C es poner primero el tipo de dato y a
continuación el nombre de la variable. Si se desea dar un valor inicial a la variable, éste se
pone a continuación.
<tipo de dato> <nombre de variable> = <valor inicial>.
Se pueden también declarar múltiples variables en la misma línea:
<tipo de dato> <nom_var1>, <nom_var2> ... <nom_varn>
C permite escribir constantes enteras en octal (base 8) o hexadecimal (base 16). La Tabla 2.3
muestra ejemplos de constantes enteras representadas en sus notaciones decimal,
hexadecimal y octal.
Cuando el rango de los tipos enteros básicos no es suficientemente grande para sus
necesidades, se consideran tipos enteros largos. La Tabla 2.4 muestra los dos tipos de datos
enteros largos. Ambos tipos requieren 4 bytes de memoria (32 bits) de almacenamiento.
Pág. 5/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
2.3.3. Tipos de coma flotante (float/double)
Los tipos de datos de coma (punto) flotante representan números reales que contienen una
coma (un punto) decimal, tal como 3.14159, o números muy grandes, tales como 1.85 e + 15 =
1,85 . 1015. La declaración de las variables de coma flotante es igual que la de variables
enteras. C soporta tres formatos de coma flotante. El tipo float requiere 4 bytes de
memoria, double requiere 8 bytes y long double requiere 10 bytes. La Tabla 2.5 muestra los
tipos de datos en coma flotante.
2.3.4. Caracteres (char)
C procesa datos carácter (tales como texto) utilizando el tipo de dato char. Este tipo
representa valores enteros en el rango –128 a + 127. El lenguaje C proporciona el tipo
unsigned char para representar valores de 0 a 255 y así representar todos los caracteres
ASCII. Los caracteres se almacenan internamente como números y, por tanto, se pueden
realizar operaciones aritméticas con datos tipo char.
char car = ‘b’;
car = car – 32;
El ejemplo convierte b (código ASCII 98) a B (código ASCII 66).
2.4. El TIPO DE DATO LÓGICO
Los compiladores de C no incorporan el tipo de dato lógico. C usa el tipo int para simular el
tipo lógico interpretando todo valor distinto de 0 como «verdadero» y el valor 0 como
«falso». Una expresión lógica que se evalúa a «O» se considera falsa; una expresión lógica que
se evalúa a 1 (o valor entero distinto de 0) se considera verdadera.
Pág. 6/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
2.5. CONSTANTES
Una constante es un objeto cuyo valor no puede cambiar a lo largo de la ejecución de un
programa.
•
Constantes literales. Las constantes literales o constantes, en general, se clasifican
en cuatro grupos, cada uno de los cuales puede ser de cualquiera de los tipos:
constantes enteras; constantes reales; constantes de caracteres; constantes de
cadena.
•
Constantes enteras. Son una sucesión de dígitos precedidos o no por el signo + o dentro de un rango determinado. Ejemplos 234, -456, etc.
•
Constantes reales. Son una sucesión de dígitos con un punto delante, al final o en
medio y seguidos opcionalmente de un exponente:
Ejemplos: 82.347 .63 83.
•
47e-4
.25E7
61.e+4
Constantes carácter. Una constante carácter (char) es un carácter del código ASCII
encerrado entre apóstrofos.
Ejemplos: ‘A’
•
‘b’
‘c’
Constantes cadena. Una constante cadena es una secuencia de caracteres encerrados
entre dobles comillas. Ejemplos
“1 2 3”
“12 de octubre 1492”
“esto es una
cadena". En memoria, las cadenas se representan por una serie de caracteres ASCII
más un 0 o nulo que es definido en C mediante la constante NULL.
2.5.1. Constantes definidas (simbólicas)
Las constantes pueden recibir nombres simbólicos mediante la directiva #define.
#define NUEVALINEA ‘\n’
#define PI 3.1415929 /* valor de la constante Pi */
2.5.2. Constantes enumeradas
Las constantes enumeradas permiten crear listas de elementos afines.
enum dias {Lunes, Martes, Miércoles, Jueves, Viernes, Sábado, Domingo};
Pág. 7/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
Cuando se procesa esta sentencia el compilador enumera los identificadores comenzando por
0. Después de declarar un tipo de dato enumerado, se pueden crear variables de ese tipo,
como con cualquier otro tipo de datos.
2.5.3. Constantes declaradas const y volatile
El cualificador const permite dar nombres simbólicos a constantes. Su valor no puede ser
modificado por el programa. Su formato es: const tipo nombre = valor; La palabra reservada
volatile actúa como const, pero su valor puede ser modificado no sólo por el propio programa,
sino también por el hardware o por el software del sistema.
2.6. VARIABLES
En C una variable es una posición con nombre (identificador) de memoria donde se almacena un
valor de un tipo de dato. Su valor puede cambiar a lo largo de la ejecución del programa.
Declaración. Una declaración de una variable es una sentencia que proporciona información de
la variable al compilador C. Es preciso declarar las variables antes de utilizarlas. Su sintaxis
es: tipo nombre ;
tipo es el nombre de un tipo de dato conocido por el C y nombre es un ¡dentificador C.
2.7. ENTRADAS Y SALIDAS
La biblioteca C proporciona facilidades para entrada y salida, para lo que todo programa
deberá tener el archivo de cabecera stdio.h.
2.7.1. Salida
La función printf ( ) visualiza en la pantalla datos del programa, transforma los datos, que
están en representación binaria, a ASCII según los códigos transmitidos. El formato general
que tiene la función es:
printf(cadena_de_control, dato1, dato2, ... dato)
cadena_de_control contiene los tipos de los datos y forma de mostrarlos.
Dato1, dato2 ... variables, constantes, o en general expresiones de salida.
Los códigos de formato más utilizados y su significado:
%d El dato se convierte a entero dec¡mal.
Pág. 8/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
%o El dato entero se convierte a octal.
%x El dato entero se convierte a hexadecimal.
%u El dato entero se convierte a entero sin signo.
%c El dato se considera de tipo carácter.
%e El dato se considera de tipo float o double se convierte a notación científica.
%f El dato se considera de tipo float o double se convierte a notación decimal.
%g El dato se considera de tipo float o double se convierte al código %e o %f dependiendo de
la representación más corta.
%s El dato ha de ser una cadena de caracteres.
2.7.2. Entrada
La función más utilizada para la entrada de datos a través del teclado es scanf ( ). Su
formato es:
scanf (cadena_de_control, var1, var2, var3, ... varn);
cadena_de_control contiene los tipos de datos y, si se desea, su anchura.
var1, var2, ... varn variables el tipo de los códigos de control
Los códigos de formato más comunes son los ya indicados en la salida.
2.7.3 Salida de cadenas de caracteres
Con la función printf ( ) se puede dar salida a cualquier dato, asociándose el código que le
corresponde. En particular, para dar salida a una cadena de caracteres se utiliza el código %s.
Para salida de cadenas, la biblioteca C proporciona la función específica puts () . Tiene un solo
argumento, que es una cadena de caracteres. Escribe la cadena en la salida estándar
(pantalla) y añade el fin de línea.
2.7.4. Entrada de cadenas de caracteres
La entrada de una cadena de caracteres se hace con la función más general scanf ( ) y el
código %s. scanf ( ) con el código %s capta palabras, el criterio de terminación es el
encontrarse un blanco, o bien fin de línea. La biblioteca de C tiene una función específica para
Pág. 9/10
I.E.S. Iliberis Atarfe 03/04
Fundamentos de Programación.
Tema 2. El lenguaje C. Elementos básicos.
captar una cadena de caracteres. Es la función gets( ), que capta del dispositivo estándar de
entrada una cadena de caracteres. Termina la captación con un retorno de carro.
gets(variable_cadena);
Pág. 10/10
I.E.S. Iliberis Atarfe 03/04
Descargar