INFORMÁTICA APLICADA PRÁCTICAS PARA APRENDER A PROGRAMAR EN LENGUAJE C Centro Universitario de la Defensa Pedro J. García Laencina Pedro María Alcover Garau INFORMÁTICA APLICADA PRÁCTICAS PARA APRENDER A PROGRAMAR EN LENGUAJE C Dr. D. Pedro José García Laencina Centro Universitario de la Defensa en la Academia General del Aire Dr. D. Pedro María Alcover Garau Universidad Politécnica de Cartagena Agosto 2012 © Pedro José García Laencina, Pedro María Alcover Garau Primera Edición, Agosto 2012. Publicado por: Centro Universitario de la Defensa (CUD) de San Javier Base Aérea de San Javier C/ Coronel López Peña, s/n 30720 Santiago de la Ribera, Murcia (España). Impresión: Morpi S.L. ISBN: 978-84-939010-7-3 DL: MU 688 - 2012 IMPRESO EN ESPAÑA / PRINTED IN SPAIN ii “The only way to learn a new programming language is by writing programs in it” B. W. Kernighan1 1 Brian Wilson Kernighan. Coautor, junto con Dennis Ritchie, de “El lenguaje de programación C.”, 1978. Ese libro fue, durante años, la “Biblia” del C. Así lo cuenta Ritchie en “The Development of the C Language”, April, 1993: “In the middle of this second period (between 1977 and 1979), the first widely available description of the language appeared: The C Programming Language, often called the ‘white book’ or ‘K&R’ [Kernighan 78].” Y como explica más adelante, “In 1978, Kernighan and Ritchie wrote the book that became the language definition for several years.” El Lenguaje C fue diseñado e implementado por Ritchie; Kernighan fue el primero en escribir un tutorial para el lenguaje C. La génesis de ese libro la cuenta el propio Ritchie en el mismo artículo citado en el párrafo anterior: “Although we worked closely together on this book, there was a clear division of labor: Kernighan wrote almost all the expository material, while I was responsible for the appendix containing the reference manual and the chapter on interfacing with the Unix system.” iii iv PRÓLOGO Aprender el primer lenguaje de programación es una labor engorrosa y con frecuencia antipática. Requiere bastante estudio; pero especialmente exige, de quien emprende esta tarea de aprendizaje, muchas horas de trabajo delante de un ordenador. Y es que, aunque pueda parecer una obviedad, en realidad no hay otro camino: para aprender a programar, hay que programar. Ésta es una recomendación clásica que se repite en el primer día de clase de cualquier asignatura relacionada con la programación y el desarrollo software. Ni mucho menos es suficiente con copiar y entender el código que el profesor explica en clase, el alumno debe llegar a ser capaz de crear su propio código. A algunos alumnos les ocurre que con relativa facilidad comienzan a comprender el código propuesto por otros; pero eso no implica ni de lejos que ya hayan aprendido a programar. Hay que empezar desarrollando programas muy cortos y sencillos: nunca olvidará su primer programa llamado “Hola Mundo”. Para implementar esos primeros programas únicamente deberá copiar literalmente el código y compilar. Aunque eso pueda parecer una tarea fácil, en sus primeros pasos cometerá una gran cantidad de errores sintácticos y surgen las típicas preguntas del tipo ¿por sólo un punto y coma ya no se puede compilar este código? Es el principio de nuestro camino en el mundo de la programación… Para aprender a programar hay que picar código. Tras muchas horas de trabajo intentando desarrollar los programas que se plantean, donde incluso dan ganas de destrozar el ordenador, se comienza a ver la luz al final de túnel: el alumno consigue entender perfectamente esos programas de unas pocas líneas de código que parecían indescifrables hace unos días, e incluso puede proponer mejoras a dicho código. A partir de ese momento quizá comience ya a disfrutar programando. Este ciclo de aprendizaje lo hemos ‘sufrido’ todos y, de hecho, seguimos aprendiendo cada vez que creamos un nuevo código. El objetivo principal que nos planteamos los autores al preparar este manual ha sido ofrecer al alumno novel una guía para el aprendizaje de los fundamentos de la programación en lenguaje C a través de prácticas. Al contrario que los clásicos boletines de prácticas formados por una simple colección de ejercicios, hemos querido desarrollar los diez capítulos que componen este libro desde un punto de vista muy didáctico: explicando detalladamente los conceptos teóricos a través de ejemplos prácticos resueltos, siguiendo cada uno de los pasos que el alumno da en su camino de iniciación en la programación. Este manual es el resultado del trabajo conjunto que hemos realizado ambos profesores en el Centro Universitario para la Defensa (CUD) ubicado en la Academia General del Aire (AGA), centro adscrito a la Universidad Politécnica de Cartagena (UPCT), desde Septiembre de 2010. En particular, v es el primer libro docente publicado en el CUD de San Javier y complementa al libro “Informática Aplicada. Programación en Lenguaje C”. Agradecemos recibir todas las sugerencias que puedan ayudar a mejorar las futuras ediciones de este manual. Nuestras direcciones de correo electrónico son [email protected] y [email protected]. Por último, agradecemos poder trabajar al servicio de todos nuestros alumnos. A todos ellos va dedicado especialmente este libro. Cartagena, 25 de julio de 2012 vi ÍNDICE GENERAL CAPÍTULO 1. Introducción al desarrollo de programas en lenguaje C 1 CAPÍTULO 2. Conceptos básicos para la entrada y salida por consola 23 CAPÍTULO 3. Estructuras de control condicionales 49 CAPÍTULO 4. Estructuras de repetición (I) 75 CAPÍTULO 5. Estructuras de repetición (II) 103 CAPÍTULO 6. Arrays numéricos (I) 127 Anexo I. Generación de números aleatorios en C 145 CAPÍTULO 7. Arrays numéricos (II) 149 CAPÍTULO 8. Cadenas de caracteres 173 Anexo II. Código ASCII 199 CAPÍTULO 9. Funciones: parámetros por valor 205 CAPÍTULO 10. Funciones: parámetros por referencia 233 vii viii
Description: