Académique Documents
Professionnel Documents
Culture Documents
Estructura de un Programa en C
El lenguaje de programacin C es un lenguaje y como tal tiene un alfabeto, reglas para
formar palabras y reglas de puntuacin para hacer programas correctos o legales. Esas
reglas son la sintaxis del lenguaje. El programa que verifica la legalidad del cdigo C es el
compilador.
Un programa en C consiste en una secuencia de caracteres almacenados en uno o ms
archivos que sern traducidos por el compilador de C al lenguaje mquina de una
determinada computadora.
Caracteres y Tokens
Los caracteres que pueden formar parte de un programa en C se muestran en la tabla 4.1:
Tabla 4.1 Caracteres vlidos en C
Letras maysculas:
Letras minsculas:
A B C ... Z
a b c ... z
Dgitos:
0 1 2 3 4 5 6 7 8 9
Otros caracteres:
Caracteres blancos:
SP (espacio),
LF (carcter de salto de lnea)
HT (carcter de tabulacin horizontal),
VT (carcter de tabulacin vertical),
FF (carcter de avance de pgina),
y comentarios.
Estos caracteres son agrupados por el compilador en una serie de componentes lxicos,
(tokens) que son los elementos que conforman el vocabulario bsico del lenguaje. Hay
seis clases de tokens: Palabras reservadas, identificadores, constantes, constantes de
cadena, operadores y delimitadores. Las palabras reservadas, identificadores y constantes
deben estar separadas entre si por un carcter blanco. Cualquier otro carcter blanco es
ignorado.
El compilador de C verifica que los tokens forman cadenas legales de acuerdo a la sintaxis
del lenguaje C. Los compiladores son muy precisos en sus requerimientos. A diferencia de
ITSON
50
Estructura de un Programa en C
las personas, que son capaces de entender el significado de una oracin con un signo de
puntuacin de ms o con una palabra mal escrita, el compilador no podr hacer una
traduccin si encuentra un error, no importa que tan pequeo sea.
Palabras Reservadas de C
Una palabra reservada es una palabra que tiene un significado estricto en C. Estas
palabras no pueden ser usadas como identificadores. La lista de palabras reservadas del
C estndar se muestran en la tabla 4.2:
Tabla 4.2. Palabras reservadas de C
auto
default
float
long
sizeof
unsigned
_Imaginary
break
do
for
register
static
void
case
double
goto
restrict
struct
volatile
char
else
if
return
switch
while
const
enum
inline
short
typedef
_Bool
continue
extern
int
signed
union
_Complex
Identificadores
Un identificador es el nombre que se le asigna a un objeto (constante, variable, funcin,
etc.). En C las reglas para construir un identificador son las siguientes:
1. Un identificador consta de letras (A .. Z, a .. z), dgitos (0 .. 9) o el
carcter de subraya (_).
2. Un identificador debe empezar con una letra o con una subraya.
3. No se establece una longitud mxima en un identificador.
4. C hace distincin entre letras maysculas y minsculas.
Es una buena prctica de programacin escoger identificadores que nos permitan recordar
el uso del objeto nombrado.
Aunque es vlido no es recomendable utilizar identificadores que empiecen con el carcter
de subraya (_).
ITSON
Captulo 4
Estructura de un Programa en C
51
Delimitadores
Los delimitadores son caracteres que nos permiten separar otros tokens, agrupar o
terminar instrucciones, formar declaraciones, etc. Los delimitadores de C son:
[ ]
( )
{ }
...
Estructura de un Programa en C
Un programa en C consta de varias partes, las cuales no necesariamente aparecen en
ese orden:
[Comentarios]
[Directivas al preprocesador]
[Declaraciones de funciones]
[Declaracin de variables externas]
Funciones
Por ejemplo considere el programa del siguiente recuadro. Los nmeros a la izquierda del
recuadro no forman parte del programa y slo sirven para numerar las lneas para la
discusin:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
* File:
kmh_ms.c
* Author: mdomitsu
*
* Created on 9 de agosto de 2009, 06:15 PM
*/
#include <stdio.h>
#include <stdlib.h>
/*
* Este programa convierte una velocidad de km/hr a m/s.
*
* Este programa ilustra el uso de la sentencia compuesta.
*/
int main(void) {
const float KM_M = 1000.0;
const float H_S = 3600.0;
float velocidad;
ITSON
52
Estructura de un Programa en C
26
27
28
29
30
Comentarios
Los comentarios son texto que incluimos en el cdigo de un programa para documentar el
programa, una funcin o porcin de cdigo. Un comentario es para el uso de los
programadores, son ignorados por el compilador. Los comentarios pueden ir en cualquier
parte del programa.
En C existen dos tipos de comentarios:
ITSON
Captulo 4
Estructura de un Programa en C
53
Directiva #include
El proceso de compilacin de un programa est formado de varias etapas, y se ver en el
siguiente captulo. En la primera etapa, nuestro programa, escrito en lenguaje C y llamado
programa fuente, es procesado por un programa llamado Preprocesador, el cual lo
modifica de acuerdo a las directivas que nosotros hallamos incluido en nuestro programa.
Una de esas directivas es la directiva #include.
La directiva #include le indica al preprocesador que inserte en lugar de la directiva el
archivo texto especificado por la directiva. La sintaxis de esta directiva es:
#include <nomArch>
donde nomArch es el nombre del archivo que deseamos insertar. Por ejemplo, en el
programa mostrado anteriormente, la directiva:
#include <stdio.h>
le indica al preprocesador que inserte en su lugar, un archivo llamado stdio.h. Note que el
nombre del archivo va encerrado entre parntesis angulares (los smbolos de menor y
mayor que).
Normalmente, esta directiva se utiliza para incluir en el programa archivos llamados de
encabezados (headers) y se acostumbra darles la extensin ".h". En archivo de
encabezado se encuentran: Directivas al preprocesador, declaraciones de funciones y
declaracin de variables externas.
Funciones
En C las instrucciones que un programa ejecutar, se agrupan en funciones. Una funcin
es un subprograma que realiza una tarea especfica. Un programa en C est formado de
una o ms funciones.
Aparte de las funciones que nosotros creamos, el sistema C nos proporciona un nmero
considerable de funciones a fin de facilitarnos la tarea de programacin. Estas funciones
ITSON
54
Estructura de un Programa en C
Declaracin de funciones
Al declarar una funcin le informamos al compilador el tipo de la funcin (es decir el tipo
del dato que regresa la funcin) y el nmero y tipo de los parmetros que tiene la funcin.
Esta informacin es necesaria para que el compilador genere el cdigo correcto y para
que el compilador verifique que al llamar a la funcin le pasemos los datos adecuados. La
sintaxis de la declaracin de una funcin es la siguiente:
tipo nomFunc(lista de parmetros);
tipo es el tipo del valor regresado por la funcin, y puede ser de cualquiera de los tipos
ya vistos. Algunas funciones no regresan valores. En este caso se utiliza la palabra
reservada void como el identificador de tipo, para indicar que la funcin no regresa un
valor.
nomFun es el nombre de la funcin y debe ser un identificador vlido de C.
lista de parmetros contiene el tipo y el nombre de los parmetros que recibe la
funcin. Un parmetro es un mecanismo mediante el cual le pasamos valores a la funcin
al llamarla. Si una funcin no recibe parmetros, la lista de parmetros estar formada por
la palabra void solamente.
La funcin main() no necesita declaracin.
Las declaraciones de las funciones de la biblioteca estndar del sistema C se encuentran
en los archivos de encabezados, los cuales debern ser incluidos con la directiva
#include.
En el Captulo 6: Funciones, se estudiar cmo escribir nuestras propias funciones.
Definicin de funciones
Al definir una funcin le estamos informando al compilador que es lo que hace la funcin,
esto es, las instrucciones que realizar la funcin al ser llamada. La sintaxis de la
definicin de una funcin es la siguiente:
ITSON
Captulo 4
Estructura de un Programa en C
55
ITSON
56
Estructura de un Programa en C
return (EXIT_SUCCESS);
Esta sentencia hace que la funcin main() termine su ejecucin y regrese el valor
de 0, el valor dado por la macro EXIT_SUCCESS. Las funciones que regresan un
valor lo hacen a la funcin quien las llama. En el caso de la funcin main(), el
valor lo regresa al sistema operativo. Este valor se utiliza como indicador de la
causa por la que el programa termin la ejecucin. Por convencin un cero significa
que el programa termin su ejecucin normalmente. Un valor diferente de cero
significa que la causa de terminacin del programa fue un error.
Sentencias
Las sentencias de C son las instrucciones de las que est formado un programa. Las
sentencias en un programa en C se encuentran en el cuerpo de las funciones.
Las sentencias en C se clasifican de la siguiente manera:
En este tema se estudiarn las sentencias de expresin y las sentencias compuestas. Las
dems se vern en el Captulo 5: Sentencias de Control.
ITSON
Captulo 4
Estructura de un Programa en C
57
[expresin];
Esto es, una expresin seguida de un punto y coma (;). La mayora de las sentencias de
expresin son asignaciones o llamadas a funciones. Si expresin se omite, la construccin
se llama sentencia nula.
El punto y coma (;) es un terminador de sentencia.
Algunos ejemplos de sentencias expresin son:
y = x + 3;
n++;
printf("\nHola");
scanf("%f", &velocidad);
;
/* Sentencia nula */
ITSON
58
Estructura de un Programa en C
ITSON
Captulo 4
Estructura de un Programa en C
59
Argumento de
entrada
d
u
Entero
Entero
Flotante
Flotante
Flotante
Carcter
c
%
Formato de salida
Tipo modificado
h
l
ll
d, u
d, u
d, u
l
L
e, E, f
e, E, f
Efecto
Interpreta el entero como short
Interpreta el entero como long
Interpreta el entero como long long
Interpreta el flotante como doble
Interpreta el flotante como doble largo
0n
ITSON
60
Estructura de un Programa en C
Descripcin
Se usa la precisin por defecto: 1 para los tipos d, u. 6 para los tipos e, E y f.
.0
.n
.*
Significado
Ninguna
Blanco
putchar()
Esta funcin escribe un slo carcter en la pantalla y no le agrega el salto de lnea. La
sintaxis de esta funcin es la siguiente:
int putchar(int c);
ITSON
Captulo 4
Estructura de un Programa en C
61
Acepta una cadena de formateo que determina como debern de ser interpretados
los campos de entrada.
ITSON
62
Estructura de un Programa en C
Tipo de argumento
(Direccin de un)
Entrada esperada
Entero decimal
Entero Decimal
Entero decimal
Punto flotante
Punto flotante
Carcter
Carcter
e, E, f
c
Tipo modificado
d, u
d, u
ll
d, u
e, f, g
e, f, g
Efecto
getchar()
Esta funcin leen un slo carcter del teclado. La sintaxis de esta funcin es la siguiente:
int getchar(void)
ITSON
Captulo 4
Estructura de un Programa en C
63
Una caracterstica de esta funcin es que despus de presionar la tecla del carcter,
debemos de presionar la tecla [ENTER] para indicarle a getchar() que se le ha dado el
carcter. De otra manera la funcin no termina de leer.
Problemas
1. Cul es la salida que nos da la funcin printf() en los siguientes ejemplos?:
sean x = 1276, y = 123.97547, a = 10, b = 4, c = 12.
a)
b)
c)
d)
e)
2. Suponga que se desea construir una tabla en la que aparezca el capital acumulado
de una inversin para cada mes. La tabla deseada tiene la siguiente forma:
Mes
Capital
--------------1
dddd.dd
2
dddd.dd
3
dddd.dd
...
10
dddd.dd
...
100
dddd.dd
Escriba una llamada a la funcin printf() que escriba el nmero del mes y el
monto del capital acumulado con el formato mostrado.
3. Escribir un programa que lea un nmero que represente una distancia en metros y
escriba su equivalente en pies y en pulgadas. El resultado deber desplegarse en
notacin fija con 4 cifras decimales.
4. Escribir un programa que lea un nmero que represente el radio de una esfera y
escriba su rea y volumen. El resultado deber desplegarse en notacin flotante
con 6 cifras decimales.
5. Escriba un programa que indique a una cajera de banco el nmero y denominacin
de los billetes que necesita darle a un cliente al hacer un retiro. La cajera deber
darle al cliente billetes de la ms alta denominacin posible, esto es, el menor
nmero de billetes. Suponga que los retiros deben de ser en cantidades mltiples
de 10 pesos y que hay billetes de $10, $20, $50 y $100 pesos.
ITSON