You are on page 1of 735
Aprendiendo C en 21 Dias Trata el C de ANSI, y es compatible con todos los Ce econ Ow | OTR CU CR Recut) instantanea pone la informacion al alcance CSTR COON Tee RSet ig eRe CURLED PRENTICE tt DIA 1 DIA 2 DIA 4 DIA 5. DIA 6 DIA 7 Comience con Aprenda las par- Use los operado- Llegue al fondo El control del Aqui se tratan las un dia para acos- tes desu primer —_claraciones de los res para manipu- de los programas programa es ficil _funciones tumbrarse. Insta- programaenC, — diversos tips dear las de C con funcio- con los tres printf), puts() y lesucompilador linea por linea, y datos y constan-_expresiones de C._nes y programa-—enunciados de scanf{): la entra- ysu editor y tra- la manerade do- tes. Los progra- _y haga su prime- cin ciclo del C: el ci- day salida de baje con ellos. cumentar sus mas de C ra prueba de estructurada. Pa- clo for, el ciclo programa ser iEn s6lo tres se- programas con _—_guardan datos en control de pro-_—se mas tiempo while yel ciclo. muy facil a partir manas usted ser’ lineas de comen- variables y cons-__grama con el viendo este ma- —_do...while. de hoy. un experto en C!__tarios. tantes. enunciado if. terial. DIA 8 DIA 9 DIA 10 DIA 11 DIA 12 DIA 13 DIA 14 Aprendaaagru- Para aprender En Cse guardan—_Aprenda otro Entienda cabal. Vuelvaaverel —__Aprenda todo lo par datos simila- tiene que enten- palabras y frases método de agru-- mente el alcance control de pro- _necesario acerca res con arreglos der los apunta-__en cadenas. par variables rela~ de las variables. grama. Aprenda de los cinco flu- numéricos. dores, la clave de Aprenda los pun- _ cionadas: las Qué son una trucos de progra- _ jos predefinidos Duerma muy C. Tomese su tos especificos de estructuras. Se global y una lo-—macién avanza-_—_ de C-y sus fan- bien estanoche tiempo con esta lascadenasylo —tratantemasde cal. Eselmo- —_—_ dos, tales como _ciones. Hay mu- porque manana le basico del mane-_estructuras tanto. mento paralos __el enunciado cho que sera un gran dia, jode memoria. _basicos como detalles. switch y los ci- aprender avanzados. clos infinitos. DIA 15 DIA 16 DIA 17 DIA 18 DIA 19 DIA 20 DIA 21 Apuntadores: la Aprenda todo lo Aprenda las fun- Funciones: la Profundice en la Amarre hoy al-—_jHagamos fiest consecuencia. __necesario acerca ciones para com- _consecuencia. _ biblioteca de gunos cabos Todo lo que nos Este es un dia de de los archivos parar, convertir y Explore temas _funciones, E sueltosy reciba falta son los ar- retos. Hoy trata- de disco en un —_coneatenar cade-_avanzados de plore las funcio- una segunda lec-_chivos de enca- remos algunas. solo dia. Los nas cuando se funciones, inclui- nes matemiaticas, cién sobre el ma- _ bezado formas complejas programas més trata la manipu- da la interaccion_—_ de tiempo y de nejo de directivas de! de uso de los litiles que se es-_lacién de cade- de apuntadores y manejo de erro- memoria. ;Casi__ preprocesador. apuntadores. criben emplean nas. funciones. res, ;S6lo quedan acabamos Luego, ser u arel dos dias! ted un experto co, en C. ;Felicida- de Cémo usar este libro Tal como se puede suponer porel titulo, este libro ha sido disefiado de tal forma que usted pueda aprender por si mismo el lenguaje de programacién C en 21 dfas. Dentro de los diversos lenguajes de programacién disponibles, cada vez més programadores profesionales escogen al C debido a su poder y flexibilidad. Por las razones que mencionamosenel Dia 1, usted nose haequivocadoal seleccionaral C como su lenguaje de programacién. Pensamos que ha hecho una decisiGn atinada seleccionando este libro como su medio para aprender el C. Aunque hay muchos sobre C, creemos que este libro presenta al C ensusecuencia més l6gica y facil de aprender. Lohemos diseftado pensando en que usted trabaje los capitulos en orden, diariamente. Los capftulos posteriores se apoyan en el material presentado en los primeros. Nosuponemos que usted tenga experiencia anterior de programacién, aunque tenerla con otro lenguaje, como BASIC, puede ayudarle a que el aprendizaje sea més répido. Tampoco hacemos hipétesis acerca de su computadora © compilador. Este libro se concentra sobre el aprendizaje del C sin importar el compilador. Caracteristicas especiales de este libro E] libro contiene algunas caracteristicas especiales para ayudarle en su aprendizaje del C, Cuadros de sintaxis le muestran c6mo usar un concepto especifico del C. Cada cuadro proporciona ejemplos concretos y unaexplicacién completa del comando 0 concepto del C. Para ambientarse al estilo de los cuadros de sintaxis, véase el siguiente ejemplo. (No trate de entender el material, ya que todavia no ha llegado al Dia 1.) La funcién printf0) Hinclude print£( cadena de formato[,argumentos,...}); print é() es una funci6n que acepta una serie de argumentos, donde a cada uno se le aplica un especificador de conversion en la cadena de formateo dada. print () impri- me la informaci6n formateada en el dispositivo estandar de salida, que, por lo general, es la pantalla. Cuando se usa print £ () se necesita incluir el archivo de encabezado de Ja entrada/salida esténdar, STDIO.H. La cadena’ de formato es imprescindible. Sin embargo, los argumentos son opcio- nales. Para cada argumento debe haber un especificador de conversiGn, La tabla 7.2 lista los especificadores de conversin mas comunes. La cadena de formato también puede contener secuencias de escape. La tabla 7.1 lista las mAs usadas. A continuacién se presentan ejemplos de Hamadas a print £() y su salida: Ejemplo 1 #include main() ‘ print£( *;8ste es un ejemplo de algo impreso!*); ) Despliega jEste es un ejemplo de algo impreso! Ejemplo 2 printf( “Esto imprime un carécter, $c\n un nimero, td\n un punto flotante, Ser, ‘2", 123, 456.789 1; Despliega sto imprine un carécter, 2 un némero, 123 un punto flotante, 456.789 Otra caracteristica de este libro son los cuadros de DEBE/NO DEBE, los cuales dan indicaciones sobre lo que hay que hacer y lo que no hay que hacer. Proporcionamos numerosos ejemplos con explicaciones para ayudarle a aprender la manera de programar, Cada dia termina con una seccién, que contiene respuestas a preguntas comunes relacionadas con el material del dia. También hay un taller al final de cada dfa. El taller contiene cuestionarios y ejercicios. El cuestionario prueba su conocimiento de los conceptos que han sido presentados en ese dfa. Si desea revisar las respuestas, o esta confundido, éstas se encuentran en el apéndice G, “Respuestas”. Sin embargo, usted no aprenderé C solamente leyendo el libro. Si quiere ser un programador, tiene que escribir programas. A continuaciOn de cada juego de preguntas del cuestionario se encuentraun juego deejercicios. Lerecomendamos que trate de hacer cada uno de ellos. Escribir c6digo de C es la mejor manera de aprender el lenguaje de programacién C. Consideramos que los ejercicios de BUSQUEDA DE ERRORES son los més benéficos. Estos son listados de cédigo que contienen problemas comunes. Bs su tarea localizar y corregit los errores. Conforme avance por el libro, algunas de las respuestas a los ejercicios tenderdn a hacerse largas. Otros ejercicios tienen varias respuestas posibles. A consecuencia de esto, los tiltimos capftulos tal vez no den respuestas para todos los ejercicios. Haciendo un mejor libro Nadaes perfecto, pero nos esforzamos poralcanzar la perfecci6n. Esta edicién bestseller tiene algunas nuevas caracteristicas que vale la pena tener en cuenta, Si usted tiene preguntas especificas acerca de los diferentes compiladores de C, pase al apéndice H. Ahiencontrarélistados de las principales caracterfsticas delos compiladores y sugerencias para la instalacién, Esperamos que esto le 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 edicién fueron las uniones. Esta edicién tiene una secci6n adicional en el capitulo 11, donde se detallan las uniones. Asegtirese de resolver completamente el nuevo ejercicio en el taller del capitulo 11 que trata este tema. Al final de cada semana usted encontraré “La revisién de la semana”. Esta seccién contiene un amplio programa que usa varios de los conceptos tratados durante la semana anterior. Muchas de las lineas del programa tienen nimeros ala izquierda de los mimeros de litiea. Estos niimeros identifican el capitulo donde se trata el tema de esa Iinea. Si cualquiera de los conceptos lo confunde, regrese a ese capitulo. Aun cuando usted haya dominado los conceptos de C, este libro seré una referencia adecuada, y la tarjeta desprendible, en la parte inicial de este libro, es un recurso adicional para usted. La tarjeta, que contiene informacién por ambos lados, sera un ttil material de consulta de escritorio al estar escribiendo sus programas de C. Convenciones usadas en este libro Este libro usa diferentes tipos de letra para ayudarle a distinguir entre el c6digo de C y elespafiol normal y aidentificar conceptosimportantes. El cédigo actual de Cesté escrito en.un tipo de letra especial nonoespaciado. Placeholders, es decir, los términos usados para representar Jo que de hecho se tiene que teclear en el c6digo, estan escritos en un tipo cursivo monoespaciado. Los términos nuevos o importantes estén escritos en cursivas. perro) 1 Educac MEXICO + ARGENTINA + BRASIL + COLOMBIA « COSTA RICA + CHILE ESPANA + GUATEMALA + PERU * PUERTO RICO « VENEZUELA APRENDIENDO C EN 21 DIAS traducido del inglés de la obra: TEACH YOURSELF C IN 21 DAYS, ‘Autorized translation form the English language edition published by SAMS PUBLISHING Copyright © 1994 llrightsreserved. No part ofthis book may be reproduced or transmitted in any form orby any means, electronic or mechanical, including photocopying recording or by any information storage retrieval system, without permission in writing from the Publisher. ‘Spanish language edition published by Prentice Hall Hispanoamericana, S.A. Copyright © 1994 ‘Traduccién autorizada de la edicin en inglés publicada por SAMS PUBLISHING Copyright © 1994 ‘Todos los derechos reservados. Ninguna parte de este libro puede reproducirse bajo ninguna forma o por ningsn medio, lectrénico ni mecénico, incluyendo fotocopiado y grabacin, ni por ningdn sistema de almacenamiento y recuperacién de informaci6n, sin permiso por escrito del Eitor Edlicin en espatiol publicada por Prentice Hall Hispanoamericana, S.A. Derechos Reservados © 1994 Calle 4 NF 25.2 piso Face: nd. lee Blanco, Naueagan do Juez, E80, de México, ISBN 968-880-444-4 Miembro de la C&mara Nacional dela Industria Editorial, Reg. Nim. 1524 (Original English Language Edition Published by Copyright © 1994 By SAMS PUBLISHING AIL Rights Reserved ISBN 0.672-30448-1 Impreso en México/Printed in Mexico i Editor Richard K. Swadley Editor adjunto Jordan Gold Gerente de adquisiciones Stacy Hiquet Editor de adquisiciones Gregory Croy Editor de elaboracién Dean Miller Redactores Keith Davenport Katherine Stuart Ewing Fran Hatton. Tad Ringo Formador Pat Whitmer Asistente editorial Sharon Cox Revisores técnicos Timothy C. Moore Scott Parker Gerente de comercializacién Greg Wiegand Disefiador de portada Dan Armstrong Director de produccién y manufactura Jeff Valler Jefe de impresién Kelli Widdifield Disefiadora del libro Michele Laseau Analista de produccién ‘Mary Beth Wakefield Coordinadora de correccién. e indizacién Joelynn Gifford Especialistas de imagenes y gréficos Dennis Sheehan Sue VandeWalle Produccién Ayrika Bryant Rich Evers Mitzi Gianakos Dennis Clay Hager Juli Pavey Angela M. Pozdol Linda Quigley Beth Rago Michelle M. Self Dennis Wesner Alyssa Yesh Indizadores John Sleeva Suzzane Snyder Resumen del contenido La semana 1 de un vistazo Comienzo Los componentes de un programa C... Variables y constantes numéricas .. Enunciados, expresiones y operadores Funciones: lo bisico.... aAuhwne Control basico del programa 7 Entrada/salida bésica Revisién de la semana 1 La semana 2 de un vistazo 8 — Arreglos numéricos 9 Apuntadores 10 Caracteres y cadenmas 1 Estructuras “ 12 Alcance de las variables .. 13 Més sobre el control de programa... 14 Trabajando con la pantalla, la impresora y el teclado ... Revisién de la semana 2 379 La semana 3 de un vistazo 15 Més sobre apuntadores 16 Uso de archivos de disco, 391 _ 425 463 495 17 Manipulacién de cadenas... 18 (Cémo obtener ms de. las funciones 19 Exploracién de la biblioteca de funciones eaves SES 20 Otras funciones - eee S41 21 — Cémo aprovechar las directivas del preprocesador y més... 563 Revisién de la semana 3 585 Apéndices 595 599 A Tabla de caracteres ASCII... B Palabras reservadas del C . Indice moanmoa Precedencia de operadores en C Notacién binaria y hexadecimal Prototipos de funcién y archivos de encabezado . Funciones comunes en orden alfabético Respuestas .. Puntos especificos de los compiladores Contenido La semana de un vistazo id 1 Comienzo .. Una breve historia del lenguaje C {Por qué usar C? Preparacién para la programacién . El ciclo de desarrollo del programa Creacién del cédigo fuente .. Compilacién del cédigo fuente Enlazar para crear un archivo ejecutable .. Completando el ciclo de desarrollo El primer programa en C... Tecleo y compilacién de HELLO. Resumen . 3 Preguntas y respuesta Los componentes de un programa C .. Un programa corto en C Los componentes de un programa... La funcién main() (Iineas 5-18).. La directiva #include (linea 2) Definicién de variables (Iinea 3) Prototipo de funcién (linea 4) Enunciados del programa (lineas 8, 9, 12, 13, 16, 17, 23) .. Definici6n de funcién (lineas 21-24). Comentarios del programa (lineas 1, 7, 11, 15, 20). Llaves (Iineas 6, 18, 22, 24) Ejecucién del programa Una nota sobre la precisin Revisin de las partes de un programa 28 Resumen . 30 Preguntas y respuesta: Taller Cuestionari Ejercicios .. Variables y constantes numéricas Memoria de la computadora.. Variables... xiv Aprendiendo C en 21 dias Nombres de variabl . Tipos de variables numéricas Declaracién de variables La palabra clave typedef. Inicializacién de variables numéricas Constantes .. Constantes literales Constantes simb6licas Resumen Preguntas y respuestas Taller .. Cuestionario Ejercicios . Enunciados, expresiones y operadores Enunciados .... Enunciados y el espacio en blanco Enunciados compuestos Expresiones Expresiones simples... Expresiones complejas.. Operadores El operador de asignacién Operadores matemitico: Precedencia de operadores y los paréntesis Orden para la evaluacién de subexpresione: Operadores relacionales El enunciado if. Evaluacién de expresiones relacionales Precedencia de los operadores relacionales . Operadores I6gicos Mis sobre valores cierto/falso Precedencia de los operadores Iégicos Operadores de asignacién compuestos El operador condicional El operador coma... Resumen .. Preguntas y respuestas Taller .. ; Cuestionario Ejercicios Funciones: lo basico.. {Qué es una funcién? La definici6n de una funcién La ilustraci6n de una funcién La manera en que trabaja una funci6n ... Las funciones y la programacién estructurada, Las ventajas de la programaci6n estructurada La planeacién de un programa estructurado El enfoque descendente Escritura de una funcién. El encabezado de la funcién El cuerpo de la funcién El prototipo de la funcién Paso de argumentos a una funcién . Llamado de funciones Recursién .. {Dénde se ponen las funciones’ Resumen Preguntas y respuest Taller . 4 Cuestionario Ejercicios .. 6 — Control bisico del programa Arreglos: lo basico Control de la ejecucién del programa El enunciado for.. Enunciados for anidados El enunciado while . Enunciados while anidado: El ciclo do...while Ciclos anidados. Resumen ... Preguntas y respuestas. Taller - Cuestionario Ejercicios 7 Entradalsalida bésica Desplegado de la informacién en la pantalla La funeién printf{) ss. Desplegado de mensajes con puts() Entrada de datos numéricos con scanfi) Resumen Preguntas y respuestas Taller Cuestionario . Ejercicios .. Revisién de la semana xv xvi Aprendiendo C en 21 dias La semana de un vistazo 167 8 10 169 170 170 175 176 178 182 184 185 186 186 186 189 190 190 191 192 192 192 193 195 197 197 198 Arreglos numéricos {Qué es un arreglo? ‘Arreglos de una sola dimension Arreglos multidimensionales .. Denominacién y declaracién de arreglos .. Inicializacién de arreglos Tamafio maximo del arregl Resumen .. Preguntas y respuesta Taller Cuestionario Ejercicios Apuntadore {Qué es un apuntador? . La memoria de la computadora Creacién de un apuntador .. Los apuntadores y las variables simples Declaracién de apuntadores Inicializacién de apuntadores Uso de apuntadores... Los apuntadores y los tipos de variable Los apuntadores y los atregl0s ...... El nombre del arreglo como un apuntador .. Almacenamiento de elementos de arregl Aritmética de apuntadores .. Precauciones con los apuntadores.. Notaci6n de subindices de arreglo y apuntador Paso de arreglos a funciones Resumen. Preguntas y ‘respuestas Taller Cucstionario 204 205 206 210 211 211 212 Ejercicios 212 Caracteres y cadenas.. 215 EI tipo de dato char 216 Uso de variables de cardcter .. Uso de cadenas ... Arreglos de caracteres Inicializacién de arreglos de caracteres..... Cadenas y apuntadores . Cadenas sin arreglos... AsignaciGn de espacio para la cadena en la compilaci6n.. 217 219 219 220 221 221 222 11 12 La funcién matloc() .. Desplegado de cadenas y caracteres La funcién puts() La funcién printf) .. Lectura de cadenas desde el teclado .... Entrada de cadenas con la funciGn gets() - Entrada de cadenas con la funcién scanf{) Resumen . a Preguntas y respuestas . Taller Cuestionario Ejercicios Estructuras Estructuras simples Definicién y declaracién de estructuras Acceso de los miembros de la estructura . Estructuras més complejas Estructuras que contienen estructuras Estructuras que contienen arreglos .. Arreglos de estructuras Inicializacién de estructuras Estructuras y apuntadores Apuntadores como miembros de estructuras Apuntadores a estructura: Apuntadores y arreglos de estructuras Paso de estructuras como argumentos a funciones Uniones.. Definici6n, declaracién e inicializacién de uniones Acceso de miembros de la unin .. Listas encadenadas...... ' La organizacién de una lista encadenada La funcién malloc() .... Implementacién de una lista encadenada typedef y las estructuras Resumen .... Preguntas y respuestas Taller Cuestionario Ejercicios Alcance de las variables ..... {Qué es el alcance? Una demostracién del alcance {Por qué es importante el alcance? xvii a Aprendiendo C en 21 dias 13 14 xviii Variables externas ... Alcance de las variables externas Cuéndo usar variables externas La palabra clave extern. Variables locales .... ‘ Variables estdticas versus automiticas .... El alcance de los pardmetros de la funci6n Variables estéticas externas .. Variables de registro . Variables locales y la funcién main() .. {Qué clase de almacenamiento se debe usar? Variables locales y bloque: Resumen .. Preguntas y respuesta: Taller .. Cuestionario Ejercicios ... Ms sobre el control de programa ‘Terminacién anticipada de ciclos El enunciado break El enunciado continu El enunciado got Ciclos infinitos El enunciado switch... Terminacién del programa La funcién exit() La funcién atexit() (sdlo para el Ejecucién de comandos del sistema operativo en un programa Resumen Preguntas yrespuesias. Taller Cuestionario Ejercicios .. ‘Trabajando con la pantalla, la impresora y el teclado Los flujos y el C {Qué es exactamente la {Qué es un flujo? ...... ” Flujos de texto contra flujos binarios Los flujos predefinidos .. Funciones de flujo del C. Un ejemplo... Aceptando entrada del teclado ... Entrada de caracteres .. Entrada formateada.. Revisién de la semana Salida a pantalla Salida de caracteres con putchar(), putc() y futc() . Uso de puts() y fputs() para la salida de flujos .. Uso de prinift) y fpringf() para la salida formateada .. Redireccién de la entrada y la salida. Cuando usar fprinif{) «. Uso de stderr. Resumen .. Preguntas y respues Taller Cuestionario Ejercicios La semana de un vistazo 389 15 16 Mas sobre apuntadores Apuntadores a apuntadore: ‘Apuntadores y arreglos de varias dimensiones Arreglos de apuntadores Cadenas y apuntadores: una revisién Arreglos de apuntadores a char. Un ejemplo... Apuntadores a funciones Declaracién de un apuntador a una funcién Inicializacién y uso de un apuntador a una funcién .. Resumen Preguntas y respuestas Taller . Cuestionario .. Ejercicios Uso de archivos de disco Flujos y archivos de disco Tipos de archivos de disco Nombres de archivo Apertura de un archivo para usarlo Escritura y lectura de datos de archivo Entrada y salida de archivos formateados Entrada y salida de caracteres Entrada y salida directas de archivos. Bufer con archivos: cierre y vaciado de archivos Acceso de archivos secuencial contra aleatori Las funciones ftell() y rewind{) .. La funcién freek() . Deteccién del fin de archivo . * Aprendiendo C en 21 dias 17 Lo Funciones para manejo de archivos Borrado de un archivo Renombrado de un archiv Copiado de un archivo Uso de archivos temporales .. Resumen Preguntas y respuestas Taller . Cuestionario Ejercicios . Manipulacién de cadenas Longitud y almacenamiento de cadenas Copia de cadenas..... La funcién strepy() La funci6n stracpy() La funcién strdup() Concatenacién de cadenas La funcién strcat() La funcién stracat( Comparacién de cadena Comparacién de dos cadenas : Comparaci6n de dos cadenas: ignorando maytisculas y mintisculas Comparacién parcial de cadenas .. Buisqueda en cadenas.. Lafunci6n strchr() La funcién strrchr{ La funcién strespn(, La funcién strspn() La funcién strpbrk()... La funcién strstr().. Conversion de cadenas Funciones diversas para cadenas, La funcién strrev() n. Las funciones strset() y strnset() Conversién de cadenas a ntimeros .. La funci6n atoi()... La funcién atol() La funcién atofi) Funciones de-prueba de caracteres . Resumen ... Preguntas y respuesta: Taller Cuestionario Ejercicios 18 Cémo obtener més de las funcionés 19 20 Paso de apuntadores a funciones Apuntadores tipo void... Funciones con nimero variable de argument: Funciones que regresan un apuntador Resumen Preguntas y respuestas. Taller ... Cuestionario Ejercicios . Exploracién de la biblioteca de funciones ... Funciones mateméticas Funciones trigonométricas ‘ Funciones exponenciales y logaritmicas Funciones hiperbélicas Otras funciones matematicas .. Manejo del tiempo .... Representaci6n del tiempo Las funciones de tiempo ..... Uso de las funciones de tiempo Funciones para el manejo de errores ... La funci6n assert() El archivo de encabezado ERRNO.H La funcién perror(). Buisqueda y ordenamiento .. Buisqueda con bsearch() Ordenamiento con qsori().. Dos demostraciones de busqueda y ordenamiento Resumen . Preguntas y respuestas Talay Cuestionario Ejercicios ‘Otras funciones Conversiones de tipo Conversiones automiticas de tipo .. Conversiones explicitas con modificadores de tipo Asignacién de espacio de almacenamiento en memoria La funcién malloc() La funcién calloc() .. La funcién realloc() La funcién free().. Uso de argumentos de la linea de comandos “N xxii Aprendiendo C en 21 dias 554 554 555 . 556 . 556 558 539 . 560, . 560 561 Operaciones sobre bits Los operadores de desplazamiento Los operadores I6gicos a nivel de bit El operador de complemento Campos de bits en estructuras Resumen Preguntas y respuestas Taller .. Cuestionario Ejercicios 21 Cémo aprovechar las directivas del preprocesador y més. 563 Programacién con varios archivos fuente .. Ventajas de la programacién modular Técnicas de la programacién modular. Componentes de los médulos ... Variables externas y la programacion modular. Uso de archivos .OBJ 568 El preprocesador de C 569 La directiva del preprocesador #define .. 569 La directiva #include .. 575 Uso de #if, #elif, #else y endif. Uso de #if..#fendif para ayudarse en la depuracion Cémo evitar la inclusién miiltiple de archivos de encabezado La directiva #undef. Macros predefinidas Resumen Preguntas y respuestas Taller .. Cuestionario Ejercicios .. 576 577 578 579 579 580, 581 581 581 582 Revisién de la semana 585 Apéndices Tabla de caracteres ASCII Palabras reservadas del C .. A B C__ Precedencia de operadores en C... D__Notacién binaria y hexadecimal E F G Prototipos de funcién y archivos de encabezado Funciones comunes en orden alfabético Respuestas Respuestas para el Dia 1 “Comienzo” .. Cuestionario .. Ejercicios . Respuestas para el s componentes de un programa C’ Cuestionario . 29 Ejercicios . 30 Respuestas para el Dfa 3 “Variables y constantes numéricas” Cuestionario . Ejercicios .. Respuestas para el Dia 4 “Enunciados, expresiones y operadores” Cuestionario .. Ejercicios 634 Respuestas para 37 Cuestionario . 37 Ejercicios . 37 Respuestas para el Dia 6 “Control basico del programa” - 41 Cuestionario . 641 Ejercicios . 642 Respuestas para el Dia 7 “Entrada/salida basica” 643 Cuestionario . 643 Ejercicios .. 644 Respuestas para el Dia 648 Cuestionario . 648 Ejercicios .. 649 Respuestas para el Dia 9 “Apuntadores” . Cuestionario .. Ejercicios .. 655 Respuestas para el Dfa 10 “Caracteres y cadenas” 656 Cuestionario .. 656 Ejercicios .. 658 Respuestas para el Dé 658 Cuestionario .. 658 Ejercicios . 659 Respuestas para el Dia 12 “Aleance de las variables” Cuestionario . Ejercicios .. Respuestas para el Dfa 13 “Mas sobre el control del programa’ Cuestionario . Ejercicio: Respuestas para el Dia Ja impresora y el teclado” . Cuestionario .. Ejercicio: Respuestas para el Dia 15 “Mas sobre apuntadores” . Cuestionario .. Ejercicios .. xxiii Aprendiendo C en 21 dias xxiv Respuestas para el Dia 16 “Uso de archivos de disco” 2.671 Cuestionario ... : Ejercicios ... Respuestas para el Dia 17 “Manipulacién de cadenas” Cuestionario ... Ejercicios 673, Respuestas para el Dia 18 “Obteniendo més de las funciones’ Cuestionari 2 Ejercicios Respuestas para e Cuestionari Ejercicios . Respuestas para el Dia 20 “Otras funciones” Cuestionari Ejercicios .. Respuestas para el Dia 21 “Aprovechando las directivas del preprocesador y més”. Cuestionario . icin de la biblioteca de funciones” ....675 Puntos especificos de los compiladores... Instalaci6n de la edicién estandar del Visual C/C++ de Microsoft ... Instalacién de lo minimo .. Instalacién del Turbo C/C++ para DOS de Borland Instalaci6n de lo minimo para el Turbo C/C++ para DOS de Borland... {Qué ofrecen los compiladores? Borland C+... Turbo C+ para DOS de Borlan: Edici6n esténdar del Visual C++ de Microsoft Otros compiladores . Indice Reconocimientos ‘Mi agradecimiento a todas las personas que me ayudaron a llevar este libro a su término: la gente de Sams Publishing. Siesta obraleresultaausted una dtl gufa de ensefianza, gran parte del méritoes deellos. Cualesquieraerrores son, desde luego, de mi absoluta responsabilidad. Peter Aitken Querrfa agradecerle a Greg Guntle por darme la confianza necesaria para emprender proyecto tal como el de escribir un libro; querria agradecerle también a Peter Aitken y aJoe Wikert por aportar la base de esta obra. Y, sobre todo, querrfa agradecerle a Stacy Hiquet el tiempo que pas6 respondiendo a todas mis preguntas y orientandome hacia la culminacién del libro. Bradley Jones Revisin por la Indianapolis Computer Society Diane VanOsdol Brenda Havens Jay Ferguson Jeffrey Callaway Acerca de los autores Peter Aitken es Profesor Adjunto en el Centro Médico de la Universidad de Duke, donde someteaintenso uso las PC en sus investigaciones sobreel sistemanervioso. Es experimentado escritor de temas relativos a las microcomputadoras, con una produccién de unos 60 articulos y 12 libros en su haber. Los escritos de Aitken abarcan tanto los temas de aplicaciones como los de programacién; entre sus libros se cuentan QuickBasic Advanced Techniques (Que), Learning C (Howard W. Sams) y The First Book of 1-2-3 for Windows (Howard W. Sams). También es Editor colaborador de la revista PC Techniques. Bradley Jones es Programador C de profesin. Ha ayudado a la creaci6n de sistemas para varias empresas estadounidenses. También es miembro activo de la Indianapolis Computer Society, en la que dirige la ensefianza de Cy C++ como jefe de C/C++ SIG. Asimismo, es colaborador regular de la revista Indy PC News. Sino setieneuricompilador isaresté libro; si . La mejor fé de programacién va 1 dias siguientes no se dan respuestas para todos los ejercicios, ya que hay muchas soluciones posibles. Le recomendamos encarecidamente que aproveche los ejercicios y revise sus respuestas. : S = ao = Z =) Dénde andamos... La primera semana trata el material basico que se necesita para saber cmo comprender el C completamente. En los dias 1, “Comienzo”, y 2, “Los componentes de un programa C”, usted aprenderd la manera de crear un programa C y reconocer los elementos bésicos de un programa simple. El dia 3, “Variables y constantes numéricas”, complementa lo tratado en Ios primeros dos dias definiendo los tipos de variables. El dia 4, “Enunciados, expresiones y operadores”, toma las variables y afiade expresiones simples, para que, de esta forma, puedan ser creados nuevos valores. El dia también proporciona informacién sobre lamanera de tomar decisiones y cambiar el flujo del programa usando enunciados if. El dfa 5, “Funciones: lo bisico”, trata las funciones del C y la programacién estructurada. El dfa 6, “Control basico del programa”, presenta mas comandos que le permitirén controlar el flujo de los programas. La semana termina en el dfa 7, “Entrada/salida basica”, con un andlisis sobre laimpresién de informacién y una ayuda para hacer que los programas interactden con el teclado y la pantalla. Esta es una gran cantidad de material para tratarla en solamente una semana, pero si se toma Ja informaci6n de un capitulo por dfa, no se debe tener problemas. Comienzo ai Bienvenido a ;Aprenda C por usted mismo en 21 dias! Este capitulo le da los medios para Hegar a ser un programador de C eficiente. Hoy aprender: (Por qué el C es la mejor alternativa entre los lenguajes de programacién. 1 Los pasos en el ciclo de desarrollo de un programa. ( La manera de escribir, compilar y ejecutar el primer programa en C. Acerca de los mensajes de error generados por el compilador y el enlazador. Una breve historia del lenguaje C Tal vez se pregunte cual ha sido el origen del lenguaje C y de d6nde le vino su elegante \ nombre. E1C fue creado por Dennis Ritchie en los laboratorios de la Bell Telephone, en 1972. El lenguaje no fue creado por el gusto de hacerlo, sino para un fin especifico: el disefio del sistema operativo UNIX (el cual se usa en muchas minicomputadoras). Desde el principio, el C tuvo como propésito ser ttil: permitir a los programadores atareados que las cosas se pudieran hacer. Como el Ces un lenguaje muy poderoso y flexible, su uso se difundié répidamente més all de los laboratorios Bell. Los programadores de todo el mundo comenzaron a usarlo para escribir todo tipo de programas. Sin embargo, diferentes organizaciones comenzaron a : utilizar muy pronto sus propias versiones del C, y las pequefias diferencias entre las | implementaciones comenzaron a dar problemas a los programadores. Para resolver este problema, el American National Standards Institute (ANSI) form6 un comité en 1983 para establecer una definici6n estndar del C, que llegé a ser conocida como el C esténdar ANSI. Con unas cuantas excepciones, todos los compiladores de C modernos se adhieren a este esténdar. Ahora, gpor qué tiene este nombre? El lenguaje C se Hama de esta forma debido a que su predecesor fue llamado B. El lenguaje B fue desarrollado por Ken Thompson también en los laboratorios Bell. Tal vez se imagine facilmente por qué fue llamado B. Por qué usar C Enel mundo actual de la programacién de computadoras, hay muchos lenguajes de altonivel entre los que se puede escoger, como C, Pascal, BASIC y Modula. Todos éstos son lenguajes excelentes, adecuados para la mayorfa de las labores de programacién. No obstante, hay varias razones por las cuales muchos profesionales de la computacién sienten que el C se encuentra a la cabeza de la lista: Ces un lenguaje poderoso y flexible. Lo que se puede lograr con el C esta limitado solamente por la imaginaci6n. El lenguaje, por sf mismo, no le pone limites. El C se usa para proyectos tan diversos como sistemas operativos, procesadores de palabras, gréficos, hojas de célculo y hasta compiladores para otros lenguajes. 1 E1Ces un lenguaje comiin, preferido por los programadores profesionales. Como resultado, se tienen disponibles una amplia variedad de compiladores de Cy accesorios titiles. Q El Ces un lenguaje transportable. Transportable significa que un programa en C escrito para un sistema de computadora (por ejemplo, una PC de IBM) puede ser compilado y ejecutado en otro sistema (tal vez en un sistema DEC VAX) con pocas © ninguna modificacién. La transportabilidad es aumentada con el estindar ‘ANSI para el C, el juego de reglas para los compiladores C que se mencionaron anteriormente. EI Ces un lenguaje de pocas palabras, que contiene solamente unos cuantos términos llamados palabras clave que son la base sobre la que est construida la funcionalidad del lenguaje. Tal vez piense usted que un lenguaje con més palabras clave (llamadas, algunas veces, palabras reservadas) pudiera ser més poderoso. Esto no es cierto. Conforme programe en C, encontraré que puede ser programado para ejecutar cualquier tarea. (1 EI Ces modular. El cédigo de C puede (y debe) ser escrito en rutinas Hamadas funciones. Estas funciones pueden ser reutilizadas en otras aplicaciones programas. Pasando informacién a las funciones, se puede crear c6digo titi y reutilizable. Como muestran estas caracteristicas, el C es una alternativa excelente para ser el primer lenguajede programacién, ;Quéhay acerca de este nuevo lenguaje llamado C++ (pronunciado Cplus plus)? Tal vez ya haya ofdo acerca del C++ y de una nueva técnica de programacién Mamada programacién orientada a objetos. Tal vez. se pregunte cudles son las diferencias entre C y C++, y si debe aprender por sf mismo C++ en vez de C. iNo se preocupe! C++ es una versién mejorada del C, lo que significa que el C++ contiene todo lo que tiene el C, y nuevos agregados para la programaci6n orientada a objetos. Si va aprender el C++, casi todo lo que aprenda acerca del C todavia serd aplicable al C++. Al aprender C, no sélo estard aprendiendo el lenguaje de programacién actual mas poderoso y generalizado, sino también se estar preparando para la programacién orientada a objetos del majiana,

You might also like