Está en la página 1de 290

I

Como usar este libro



Tal como sepuede suponer por el titulo, este libro ba sido disetiado de tal forma que usted pueda aprender pot sf mismo el lenguaje de programacion C en 21 dfas, Dentro de los . diversos lenguajes de programaclon disponibles, cade vez mas programadores profesionales escogen al C debido a su poder y flexibilidad, Por las razones que meneionamos en el DCa: 1; usted no se ha equivocade at seleccionar a1 C como su Ienguaie de programacion,

Pensamos que ha heche unadecision annada seleccionando este libro como sn medio para aprender el C. Aunque hay muchos sobre C, creemos que este libro presenta a1 C en su secuencia mas logica y ficilde aprender. Lo hemos diseiiado. pensando en que usted trabaje los capftulos en orden, diariamente. Los capftulos posteriores se apoyan en el material presentado en los primeros. No suponemos que usted tenga experiencia anterior de programacion, aunque tenerla con otto lenguaje. como BASIC. puede ayudarle aque el aprendizaje sea mas rapido, Tampoco hacemos hipotesis acerca de su computadora

. 0 compilador. Este libro se concentra sabre el aprendizaje del C sin importar e1

compilador. . .

Caracteristicas espeeiales deeste Iibro

- Bllibro contienealgunas caracterfsricas especiales para ayudarle en su aprendizaje del C. Cuadros de sintaxis le muestran comousar un concepto especffico del C. Cada cuadro proporciona ejernplos concretes y una explicacion completa del comando 0 concepto de] C. Para ambientarseal estilo de los cuadros de sintaxis, vease el siguiente ejemplo, (No Irate de entender el material, ya que rodavta no ha llegado al Dfa 1.)

/

La funeion printf()

Hbclude<stdio .h;

print.f( c.adena de ~ormatol ,argumentos, ... J} i

printf ()es una funcion que acepta una serie de argumentos, donde a cada uno se le aplica un especificador de conversion. en la cadena de formateo dada, pr i nt f () imprime la informacion fonnateada en el dispositive estandar de salida, que, por 10 general •

. es la pantafla. Cuando se usa pr i n t f () se necesita induir el archive de encabezado de

la entrada/salida estandar, STDIO.H. . ., .

. La ceaene de forma to es imprescindible.Sin embargo.Jos dLgurnentos son opcionales. Para cada argumento debe habe .. un especificador de converslon, La tabla 7..21ista los especificadores de conversion mas comunes. La-cadena de formato tambien puede contener secuencias de escape. La tabla 1.1 lista las mas usadas. ,A continuacion se presentan ejemplos de llamadas a pr int f () Y su salida:

'.Ejemplol #inciude <stdio.h>

main\}

printEI "jEste es un ejemplo de algoirnpreso!"),;

Despliega

i Estees un. ej emp.l o de algo impreso! '

Eje:mplo 2

printE( °Esto imprimeun caracter, %c\n un nUmero. %d\n un punto flotante, %t., "z ", 12.3, 456.789 );

Despliega

Esto imprime un caracter, z un mimero , 123

un punt,o flotante, 455.1'89

Otracaracterfstica deeste libro son los cuadros de DEBFJNODEBE, los cuales dan indicacionessobre 10 que hay que hacer y 10 que 00 hay que hacer.

Proporcionamos numerosos ejemplos : con explicaciones para ayudarle a aprender la manera de programar. Cada dia termina con una seccion, que contiene respuestas a preguntas comunes relacionadas con el material del dfa, Tambien hay un taller al final de cada dia. EI taller contiene cuestienarios yejercicios. El cuestionario prueba su conocimiento de los conceptos que han sido presentados en ese dfa. Si desea revisar las respuestas, 0 esta eonfundido, estas se encuentraa en el apendice G. "Respuestas".

Sin embargo, listed no aprendera c. solamente leyendo el libro, Si quiere ser un

.. pregramador, tiene que escribir programas. A continuaci6n de cada juego de preguntas del cuestionario se encuentra unjuego k ejercicios. Le recomendamos que trate de hacer cada uno de ellos. Bscribir codigo de C es lamejor manera de aprender el Ienguaie de prograrnaci6n C. ,

Consideramos que los ejereicios de B USQUEDA DE ERRORES SOD los mas benefices. Estosson Iistados de c6digo que contieneaproblemas comunes. Es su tarea localizar y corregir los errores,

Conforme avance por el libro, algunas de las respuestas a los ejercicios tenderan a hacerse Iargas. Otros ejercicios tienen varias respuestas posibles, A consecuencia de

esro.Ios I1iltimos capftulos tal vezno den respuestas para todos los ejercicios. -

Haciendo tm mejor libro

N adaes perfecto, pero nos esforzarnos pOI alcanzar la perfecci6n. Esta edici6n bestseller tiene algunas nuevas caracterfsticas que vale la pena tener en cuenta. Si usted riene preguntas especfficas acerca de los diferentes compiladores de C, pase al apendice H. Ahi encontrara listados de las principales caracterfsticas de los compiladoresy sugerencias para la instalaci6n. Esperarnos que esto Ie sea de ayuda para elegir el compilador que se adapte mejor a sus necesidades.

Un concepto del C que no fue tratado en la primera edici6n fueron las uniones. Esta' edicion tiene una secci6n adicional en el capitulo 11, donde se detallan las uniones. Asegiirese de resolver completamente el nuevo ejercicio en el taller del capitulo 11 que trata este tema.

Alfinal de cada semana usted encontrara "La revision de la sernana". Esta secci6n contiene un amplio programa que usa varios de los conceptos tratados durante la semana anterior. Muchas de las lineas del programa tienen nameros ala izquierdade los mimeros de ll'f('ea. Estos mimeros identifican el capitulo donde se trata el tema de esa linea. Si

cualquiera de los coneeptos 10 confunde, regrese aese capitulo. .

/ Aun cuando usted haya dominado los conceptos de C. este libro sera una referenda adecuada, y la tarjeta desprendible, en la parteiniciaJ de este libro, es On recnrso adicional para usted, La tarjeta, que contiene informacion par ambos lados, str~ un titil material de consulta de escritorio a1 estar escribiendo sus programas de C.

Convenciones usadas en este libro

Este libro usa diferentes tipos de letra para ayudlarle a distinguir entre el c6digo de C y el espafiol normal y a identificar conceptos importantes, El codigo actual deC esta escrito en un tipo de letra especial monoespaciado. Placeholders, es decir.Ios terminos usados para representar 10 que de hecho se tiene que teclear en el codigo, estan escritos en un tipo cursivo mO/1oespaciado. Los terminos nuevos 0 importantes estan escritos en cursivas.

U .... ~r:sld.d de Gu.nlljUMo Biblrotece de Ie F.I.ME.E.

" 1I11~lllfI'''"·~·

Pearson Fducacion

---

®

MExIco • ARGENTINA' BRASIL· COLOMBIA· COSTA mCA· CHILE ESPANA· GUATEMALA· PERU· PUERTO RICO· VENEZUELA

Resumen del contenido

La semana 1 de un vistazo

1 Comienzo 3

2 Los componentes de un programa C 21

3 Variables y constantes numericas 35

4 Enunciados, expresiones y operadores 53

5 Funciones: 10 basico 87

6 Control basico del programa 115

7 Entrada/salida basica ; 139

Revision de Ia semana 1

159

La semana 2 de un vistazo

8 Arreglos numericos 169

9 Apuntadores 189

10 Caracteres y cadenas 215

11 Estructuras 241

12 Alcance de las variables 281

13 Mas sabre el control de programa , 301

14 Trabajando con la pantalla, la impresora y el teclado 331

Revision de la semana 2 379

La semana 3 de un vistazo

15 Mas sobre apuntadores 391

16 Usa de archives de disco 425

17 Manipulacion de cadenas 463

18 Como obtener mas de las funciones 495

19 Exploracion de la biblioteca de funciones 513

20 Otras funciones 541

21 Como aprovechar las directivas del preprocesador y mas 563

Revision de la semana 3 585

Apendices

A Tabla de caracteres ASCII 595

B Palabras reservadas del C 599

C
D
E
F
G
H
Iodice . Precedencia de operadores en C : 603

Notacion binaria y hexadecimal 605

Prototipos de funci6n y archivos de encabezado 609

Funciones comunes en orden alfabetico 619

Respuestas 627

Puntos especfficos de los compiladores 679

693

Contenido

La semana de un vistazo

1

1 Comienzo .............................•.......................................................................... 3

Una breve historia dellenguaje C 4

i,Por que usar C? 4

Preparaci6n para la programaci6n 5

EI cicIo de desarrollo del programa 6

Creacion del c6digo fuente 7

Compilaci6n del codigo fuente 8

Enlazar para crear un archivo ejecutable 9

Completando el ciclo de desarrollo 10

El primer programa en C 11

TecIeo y compilaci6n de HELLO.C 12

Resumen 15

Preguntas y respuestas / 16

Taller / 17

Cuestionario -.;:. 17

Ejercicios 18

2 Los componentes de un programa C 21

Un programa corto en C 22

Los componentes de un programa 23

Lafunci6n main() (lineas 5-18) 23

La directfva#znclude (linea 2) 23

Definici6n de variables (linea 3) 24

Prototipo de funci6n (linea 4) 24

Enunciados del programa (lfneas 8, 9, 12, 13, 16, 17,23) 24

Definicion de funci6n (lfneas 21-24) 25

Comentarios del programa (lfneas 1, 7, 11, 15,20) 26

Llaves (lineas 6, 18, 22, 24) 27

Ejecuci6n del programa 27

Una nota sobre laprecision 27

Revisi6n de las partes de un programa 28

Resumen , 30

Preguntas y respuestas 30

Taller 31

Cuestionario 31

Ejercicios 32

3 Variables y constantes numericas 35

Memoria de la computadora 36

Variables 37

C en 21 dias

Nombres de variable .. , 37

Tipos de variables numericas 39

Declaraci6n de variables 42

La palabra clave typedef 43

Inicializaci6n de variables numericas , 43

Constantes 44

Constantes literales 44

Constantes simb6licas 46

Resumen 49

Preguntas y respuestas 50

Taller 51

Cuestionario 51

Ejercicios 52

4 Enunciados, expresiones y operadores 53

Enunciados 54

Enunciados y el espacio en blanco ~ 54

Enunciados compuestos 55

Expresiones 56

Expresiones simples 56

Expresiones complejas 56

~.-Operadores 58

EI operador de asignaci6n 58

-Operadores matematicos 58

Precedencia de operadores y los parentesis 63

Orden para la evaluaci6n de subexpresiones 65

<Operadores relacionales 65

EI enunciado if 67

Evaluaci6n de expresiones relacionales .. ., , 72

Precedencia de los operadores relacionales 73

Operadores logicos 75

Mas sobre valores cierto/falso 76

Precedencia de los operadores logicos 77

-Operadores de asignaci6n compuestos 79

EI operador condicional 80

El operador coma 80

Resumen 81

Preguntas y respuestas 82

Taller 83

Cuestionario 83

Ejercicios 84

5 Funciones: 10 baslco 87

i,Que es una funci6n? 88

La definicion de una funci6n 88

La ilustraci6n de una funci6n 89

La manera en que trabaja una funcion 91

Las funciones y la programacion estructurada 93

Las ventajas de la programaci6n estructurada 93

La planeacion de un programa estructurado 93

El enfoque descendente 95

Escritura de una funcion 96

El encabezado de la funcion 96

El cuerpo de la funci6n 99

El prototipo de la funcion 104

Paso de argumentos a una funci6n 105

Llamado de funciones 106

Recursion 107

l,Donde se ponen las funciones? 109

Resumen 110

Preguntas y respuestas 110

Taller 111

Cuestionario 111

Ejercicios 112

6 Control basico del programa 115

Arreglos: 10 basico 116

Control de la ejecucion del programa 117

.. J;.).eIlU"i;l£_Ji;I.r;;, 117

Enunciados for anidados 123

El enunciado while 125

Enunciados while anidados 128

cf!~f~~~.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::'.:::::::::::::::::: ~~~

Resumen 135

Preguntas y respuestas 136

Taller 136

Cuestionario 137

Ejercicios 137

7 Entrada/salida basica 139

Desplegado de la informacion en la pantalla 140

La funcionprintJ() 140

Desplegado de mensajes con puts() 148

Entrada de datos numericos con scanf() 149

Resumen 154

Preguntas y respuestas 154

Taller 155

Cuestionario 155

Ejercicios , 156

Revision de la semana

159

xv

C en 21 dfas

La semana de un vistazo

167

8 Arreglos numerlccs ••.••••••.••••••••.••••••.•.•.••••••.•.• _ •••.•.••••.•.•.•......•.•.•........•.•..• 169

"Que es un arreglo? 170

Arreglos de una sola dimensi6n 170

Arreglos multidimensionales 175

Denominaci6n y declaraci6n de arreglos 176

Inicializacion de arreglos 178

Tamafio maximo del arreglo 182

Resumen 184

Preguntas y respuestas 185

Taller 186

Cuestionario ',' 186

Ejercicios 186

9 Apuotadores 189

i, Que es un apuntador? 190

La memoria de la computadora 190

Creaci6n de un apuntador 191

Losapuntadores y las variables simples 192

Declaracion de apuntadores , 192

Inicializaci6n de apuntadores 192

U so de apuntadores 193

Los apuntadores y los tipos de variables 195

Los apuntadores y los arreglos ; 197

EI nombre del arreglo como un apuntador 197

Almacenarniento de elementos de arreglo 198

Aritmetica de apuntadores 200

Precauciones con los apuntadores 204

Notacion de subindices de arreglo y apuntadores 205

Paso de arreglos a funciones 206

Resumen 210

Preguntas y respuestas 211

Taller 211

Cuestionario 212

Ejercicios 212

10 Caracteres y cadenas 215

El tipo de dato char 216

Uso de variables de caracter 217

Uso de cadenas 219

Arreglos de caracteres : 219

lnicializaci6n de arreglos de caracteres 220

Cadenas y apuntadores y 221

Cadenas sin arreglos 221

Asignacion de espacio para la cadena en la compilacion 222

xvi

También podría gustarte