Introduccién
a la programacion
en C
Objetivos
+ Escribir programas sencillos en C.
* Utilizar instrucciones sencillas de entrada y salida.
Familiarizarse con los tipos de datos fundamentales.
Comprender conceptos sobre la memoria de las computadoras.
Utilizar los operadores aritméticos.
Comprender la precedencia de los operadores aritméticos,
+ Escril
instrucciones condicionales seacillas.
{Qué hay en un nombre? Eso que llamamos rosa
Para cualquier otro nombre oleréa muy dulce.
William Shakespeare Romeo y Julieta
Yo sélo tomé el curso normal... las diferentes ramas de
Ia aritmética —ambici6n, distraccién, afeamiento y escarnio.
Lewis Carroll
Los precedentes deliberadamente establecidos por hombres sabios
merecen gran valor
Henry Clay
a?24 Introduscién a la programacién en C Capitulo 2
Plan general
2.1 Introduccién
2.2. Un programa sencillo en C: Impresi6n de una linea de texto
2.3. Otto programa sencillo en C: Suma de dos enteros
2.4 Conceptos de memoria
2.5 Aritmética en C
26 Toma de decisiones: Operadores de igualdad y de relacién
Resumen + Terminologia + Errores comunes de programacién * Buenas pricticas de programacién + Tip de portabilidad
+ Bjercicios de autoevaluacién + Respuestas @ los ejercicios de autoevaluacién + Ejercicios
2.1 Introducci6n
El lenguaje C facilita un método estructurado y disciplinado para el disefio de programas. En este capituto in-
troducimos la programacién en C y presentamos varios ejemplos que ilustran muchas caracterfsticas importan-
tes de C. Analizamos cuidadosamente cada ejemplo, linea por linea, En los capitulos 3 y 4 presentamos una in-
troduccién a la programacién estructurada en C. Después utilizamos dicho método estructurado en el resto del
bro.
2.2 Un programa sencillo en C: Impresién de una linea de texto
C utiliza una notacién que puede parecer extraila para quien no es programador. Comencemos considerando un
programa sencillo en C, Nuestro primer ejemplo imprime una linea de texto. Fl programa y su resultado en pan-
talla aparecen en la figura 2.1.
‘Aun cuando este programa es sencillo, ilustra muchas caracterf
consideremos con detalle cada Ifnea del programa. Las lineas 1 y 2:
importantes de} lenguaje C. Ahora
/* Pigura 2.1: £ig02_01.c
Un primer programa en C */
comienzan con /* y terminan con */, lo que indica que estas dos Ifneas son un comentario. Los programado-
res insertan comentarios para documentar los programas y para mejorar su legibilidad. LLos comentarios no pro-
vocan que la computadora realice accién alguna durante la ejecuci6n del programa, El compilador de C ignora
1 /* Figura 2.1: fig02_01.¢
2 On primer programa en C */
3 #include
4
5 /* la funcién main inicia la ejecucién del programa */
6 int main( void )
7 4
8 print£( "Bienvenido a C!\n" );
9
10 return 0; /* indica que el programa terminé con éxito */
u
12) /* fin de 1a funcién main */
Bienvenido a C!
Figura 2.1. Programa de impresién de texto,Capitulo 2 Infroduccién ala programaciénenC 25
los comentarios y no genera cédigo objeto en Ienguaje maquina, El comentario anterior sélo describe ef m
mero de la figura, el nombre del archivo y el propésito del programa. Los comentarios también ayudan a otras
personas a leer y entender un programa, pero demasiados comentarios pueden ocasionar que un programa sea
dificil de leer
Error comuin de programacién 2.1
Olvidar finalizar un comentario con */.
yn Error comiin de programacién 2.2
2 Comenzar un comentario con los caracteres * /, 0 finalizarlo con /*.
La linea 3
include
es una directiva del preprocesador de C. Las lineas que comienzan con # son procesadas por el preprocesa-
dor antes de que el programa se compile. Esta linea en particular indica al preprocesador que incluya en el
programa el contenido del encabezado estindar de entrada/salida (sti .h). Este encabezado contiene
informacién que el compilador utiliza cuando compila las llamadas a las funciones de 1a biblioteca esténdar
de entrada/salida, como printé. En el capitulo 5 explicaremos con més detalle el contenido ae los enca-
bezados.
La linea 6
int main( )
forma parte de todos los programas en C. Los paréntesis que aparecen después de main indican que main es
un bloque de construccién de programas lamado funcién. Los programas en C contienen una o més funciones,
una de las cuales debe ser main. Todo programa en C comienza su ejecucién en la funcién main.
Buena practica de programacién 2.1
La lave izquierda, {, (linea 7), debe iniciar el cuerpo de cada funcién, Una lave derecha correspondien-
te (linea 12), debe finalizar cada funcién, Este par de Haves y la parte del programa entre ellas se conocen co-
mo blogue. B] bloque es una unidad importante de! programa en C,
La linea 8
printf( “Bienvenido a C!\n" );
indica a la computadora que realice una accién, es decir, que imprinna en la pantalla la cadera de caracteres
contenida entre las comillas. En algunas ocasiones a una cadena se le lama cadena de caracteres, mensaje 0
literal. La linea completa (que incluye print £, su argumento entre paréntesis, y el punto y coma (;)] se conoce
como instruccién. Toda instruccién debe finalizar con un punto y coma (también conocido como terminador
de la instruccién). Cuando la instruccién printé anterior se ejecuta, ésta imprime en la pantalla el mensaje
Bienvenido aC! En general, los caracteres se imprimen exactamente como aparecen entre las comillas de
la instruccién printé. Observe que los caracteres \n no aparecieron en pantalla. La diagonal invertida (\) se
conoce como cardcter de escape. Este indica que se espera que print£ haga algo fuera de lo ordinario.
Cuando una diagonal invertida se encuentra dentro de una cadena, el compilador ve el siguiente carécter y lo
combina con Je diagonal invertida para formar una secuencia de escape. La secuencia de escape \n significa
nueva tinea. Cuando wna nueva linea aparece en la salida de la cadena por medio de print, esta nueva linea
ocasiona que el cursor se posicione al comienzo de la siguiente linea de la pantalla. En la figura 2.2 aparecen
algunas secuencias de escape comunes.
Las dos tiltimas secuencias de escape de la figura 2.2 pueden parecer extrafias. Debido a que la diagonal
invertida tiene un significado especial en una cadena, es decir, que el compilador la reconoce como un caracter
de escape, nosotros utilizamos dos diagonales invertidas para colocar una sola diagonal invertida en una cadena.
Imprimir comillas también representa un problema, ya que dichas comillas marcan el limite de una cadena; de