ebook img

Diseño de Algoritmos y su codificación en Lenguaje C PDF

341 Pages·2012·5.82 MB·Spanish
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Diseño de Algoritmos y su codificación en Lenguaje C

Diseño de algoritmos y su codificación en lenguaje C PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd ii 22//1188//1111 99::4444 AAMM PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd iiii 22//1188//1111 99::4444 AAMM Diseño de algoritmos y su codificación en lenguaje C María Adriana Corona Nakamura Universidad de Guadalajara María de los Ángeles Ancona Valdez Universidad de Guadalajara Revisión técnica Miguel Orozco Malo Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Ciudad de México Carlos Villegas Quezada Universidad Iberoamericana, Ciudad de México MÉXICO • BOGOTÁ • BUENOS AIRES • CARACAS • GUATEMALA LISBOA • MADRID • NUEVA YORK • SAN JUAN • SANTIAGO • AUCKLAND LONDRES • MILÁN • MONTREAL • NUEVA DELHI • SAN FRANCISCO SÃO PAULO • SINGAPUR • ST. LOUIS • SIDNEY • TORONTO PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd iiiiii 22//1188//1111 99::4444 AAMM Director Higher Education: Miguel Ángel Toledo Castellanos Editor sponsor: Pablo E. Roig Vázquez Coordinadora editorial: Marcela I. Rocha Martínez Editora de desarrollo: Ana L. Delgado Rodríguez Supervisor de producción: Zeferino García García DISEÑO DE ALGORITMOS Y SU CODIFICACIÓN EN LENGUAJE C Prohibida la reproducción total o parcial de esta obra, por cualquier medio, sin la autorización escrita del editor. DERECHOS RESERVADOS © 2011, respecto a la primera edición por McGRAW-HILL/INTERAMERICANA EDITORES, S.A. DE C.V. A Subsidiary of Th e McGraw-Hill Companies, Inc. Edifi cio Punta Santa Fe Prolongación Paseo de la Reforma 1015, Torre A Piso 17, Colonia Desarrollo Santa Fe, Delegación Álvaro Obregón C.P. 01376, México, D.F. Miembro de la Cámara Nacional de la Industria Editorial Mexicana, Reg. Núm. 736 ISBN: 978-607-15-0571-2 1234567890 1098765432101 Impreso en México Printed in Mexico PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd iivv 22//1188//1111 99::4444 AAMM Contenido Prefacio ........................................................................................................................................................... xi Capítulo 1. Conceptos básicos ............................................................................................................ 1 1.1 Definición de lenguaje de programación ................................................................................ 2 1.2 Definición de algoritmo ................................................................................................................. 2 1.3 Definición de programa de computadora .............................................................................. 3 1.4 Etapas o pasos en la creación de un programa ..................................................................... 4 1.4.1 Definición del problema ................................................................................................................................ 4 1.4.2 Análisis del problema ...................................................................................................................................... 4 1.4.3 Diseño y técnicas para la formulación de un algoritmo ..................................................................... 4 1.4.4 Codificación ........................................................................................................................................................ 5 1.4.5 Prueba y depuración ....................................................................................................................................... 6 1.4.6 Documentación ................................................................................................................................................ 6 1.4.7 Mantenimiento .................................................................................................................................................. 6 Capítulo 2. Los datos y las operaciones básicas .......................................................................... 7 2.1 Identificador ...................................................................................................................................... 8 2.2 Tipos de datos ................................................................................................................................... 8 2.2.1 Datos numéricos .............................................................................................................................................. 9 2.2.2 Datos lógicos o booleanos ............................................................................................................................ 9 2.2.3 Caracteres ............................................................................................................................................................ 10 2.2.4 Tipo void .............................................................................................................................................................. 10 PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd vv 22//1188//1111 99::4444 AAMM vi Contenido 2.3 Variables .............................................................................................................................................. 10 2.3.1 Declaración de variables ................................................................................................................................ 10 2.3.2 Reserva de memoria ........................................................................................................................................ 11 2.4 Constantes .......................................................................................................................................... 11 2.4.1 Uso de #define: creación de macros .......................................................................................................... 12 2.4.2 Uso de const ....................................................................................................................................................... 12 2.5 Operadores ......................................................................................................................................... 13 2.5.1 Operadores aritméticos .................................................................................................................................. 13 2.5.2 Incremento y decremento ............................................................................................................................. 14 2.5.3 Operadores relacionales ................................................................................................................................ 15 2.5.4 Operadores lógicos .......................................................................................................................................... 15 2.5.5 Operadores de asignación ............................................................................................................................ 16 2.5.6 Operador condicional (?:) .............................................................................................................................. 17 2.6 Prioridad de los operadores ......................................................................................................... 18 2.6.1 Prioridad de operadores aritméticos ......................................................................................................... 18 2.6.2 Regla asociativa ................................................................................................................................................. 18 2.7 Expresiones ......................................................................................................................................... 19 2.8 Palabras reservadas ......................................................................................................................... 20 2.9 Comentarios ....................................................................................................................................... 21 2.10 Conversión de tipos ......................................................................................................................... 21 2.10.1 Conversión forzada de tipos de datos .................................................................................................... 22 2.10.2 El operador sizeof .......................................................................................................................................... 22 Capítulo 3. Programación estructurada .......................................................................................... 27 3.1 Definición ............................................................................................................................................ 28 3.2 Estructuras de control y su clasificación .................................................................................. 28 3.3 Estructura de un algoritmo y de un programa ...................................................................... 29 3.3.1 Comentarios ........................................................................................................................................................ 29 3.3.2 Declaración archivos de cabecera o encabezado (librerías o bibliotecas) .................................. 29 3.3.3 Prototipos de funciones ................................................................................................................................. 30 3.3.4 Declaración de variables globales y constantes .................................................................................... 30 3.3.5 El programa principal o función principal main() ................................................................................. 30 3.3.6 Declaración de funciones .............................................................................................................................. 30 3.4 Estructura de control secuencial ................................................................................................. 32 3.4.1 Ejercicios resueltos de la estructura de control secuencial ............................................................... 32 3.5 Estructura de control selectiva o alternativa .......................................................................... 49 3.5.1 Estructura de control selectiva simple si (if) ........................................................................................... 50 3.5.2 Estructura de control selectiva doble si/si-no (if/else) ........................................................................ 51 PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd vvii 22//1188//1111 99::4444 AAMM Contenido vii 3.5.3 Anidamiento o escalonamiento si-si no-si (if-else-if) .......................................................................... 52 3.5.4 Ejercicios resueltos de la estructura de control selectiva simple si (if) y doble si/si-no (if/else) ......................................................................................................... 53 3.5.5 Estructura de control selectiva múltiple segun_sea (switch) ........................................................... 67 3.5.6 Estructura de control selectiva segun_sea (switch) anidada ........................................................... 68 3.5.7 Ejercicios resueltos de la estructura de control selectiva múltiple segun_sea (switch) ......................................................................................................................... 68 3.6 Estructura de control repetitiva o de iteración condicional ............................................. 79 3.6.1 Contadores, acumuladores, centinelas y banderas .............................................................................. 79 3.6.2 Estructura de control repetitiva mientras (while) ................................................................................. 81 3.6.3 Ejercicios resueltos de la estructura de control repetitiva mientras (while) .............................. 82 3.6.4 Estructura de control repetitiva hacer_mientras (do while) ............................................................. 94 3.6.5 Ejercicios resueltos de la estructura de control repetitiva hacer_mientras (do_while) ............................................................................................................................ 94 3.6.6 Estructura de control repetitiva desde (for) ............................................................................................ 107 3.6.7 Ejercicios resueltos de la estructura de control repetitiva desde (for) .......................................... 109 3.6.8 Casos especiales del for .................................................................................................................................. 118 3.6.9 Ejercicios resueltos de la estructura de control repetitiva en casos especiales desde (for) ......................................................................................................................... 119 3.6.10 Ciclos anidados ................................................................................................................................................. 126 3.6.11 Ejercicios resueltos utilizando ciclos anidados ...................................................................................... 127 Capítulo 4. Arreglos .................................................................................................................................135 4.1 Definición ............................................................................................................................................ 136 4.2 Arreglos unidimensionales (vectores o listas) ........................................................................ 137 4.2.1 Inicialización de arreglos unidimensionales ........................................................................................... 138 4.2.2 Lectura e impresión de un arreglo unidimensional ............................................................................. 139 4.2.3 Modificación de un elemento del arreglo unidimensional ............................................................... 141 4.2.4 Arreglos de caracteres .................................................................................................................................... 141 4.2.5 Ejercicios resueltos de arreglos unidimensionales ............................................................................... 142 4.3 Arreglos bidimensionales (matrices o tablas) ........................................................................ 155 4.3.1 Inicialización de arreglos bidimensionales ............................................................................................. 156 4.3.2 Lectura e impresión de unos arreglos bidimensionales .........................................................................156 4.3.3 Modificación de un elemento de una matriz ......................................................................................... 157 4.3.4 Ejercicios resueltos de arreglos bidimensionales ................................................................................. 157 Capítulo 5. Programación modular ...................................................................................................171 5.1 Definición ............................................................................................................................................ 172 5.2 Programa principal y funciones .................................................................................................. 173 5.2.1 Programa principal o función main() ......................................................................................................... 173 5.2.2 Función ................................................................................................................................................................. 173 5.2.3 Ámbito de las variables .................................................................................................................................. 173 PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd vviiii 22//1188//1111 99::4444 AAMM viii Contenido 5.2.4 Llamada o invocación de una función ...................................................................................................... 173 5.2.5 Cómo se ejecuta un programa que contiene funciones .................................................................... 173 5.2.6 Ubicación de una función en un programa ............................................................................................ 173 5.3 Prototipo de una función .............................................................................................................. 174 5.4 Funciones sin paso de parámetros ............................................................................................ 174 5.5 Ejercicios resueltos de funciones sin paso de parámetros ................................................ 176 5.6 Funciones con paso de parámetros .......................................................................................... 189 5.6.1 Parámetros de una función ........................................................................................................................... 189 5.6.2 Paso de parámetros en una función .......................................................................................................... 189 5.6.3 Paso de parámetros en funciones con vectores y matrices .............................................................. 193 5.7 Ejercicios resueltos de funciones con paso de parámetros .............................................. 193 5.8 Recursividad ...................................................................................................................................... 213 5.9 Funciones predefinidas de lenguaje C ..................................................................................... 223 5.10 Ejercicios resueltos de funciones predefinidas de lenguaje C ......................................... 223 5.10.1 Funciones para manejo de caracteres y cadenas ............................................................................... 224 5.10.2 Funciones de pantalla .................................................................................................................................. 231 5.11 Creación de librerías en lenguaje C ........................................................................................ 237 Capítulo 6. Registros o estructuras ................................................................................................... 239 6.1 Definición de una estructura ........................................................................................................ 240 6.2 Tipos de datos definidos por el usuario typedef .................................................................... 242 6.3 Asignación de valores a los campos de una estructura ...................................................... 243 6.4 Acceso a los campos de un registro o estructura (struct ) ................................................... 244 6.5 Arreglos de estructuras .................................................................................................................. 246 6.6 Estructuras anidadas ....................................................................................................................... 247 6.7 Ejercicios resueltos de registros o estructuras (struct ) ........................................................ 248 Capítulo 7. Algoritmos de ordenamiento y búsqueda. Apuntadores ................................ 265 7.1 Ordenación ......................................................................................................................................... 266 7.1.1 Ordenación interna .......................................................................................................................................... 266 7.2 Búsquedas ........................................................................................................................................... 274 7.2.1 Búsqueda secuencial ....................................................................................................................................... 274 7.2.2 Búsqueda binaria .............................................................................................................................................. 276 7.3 Apuntadores ....................................................................................................................................... 278 7.3.1 Dirección de una variable .............................................................................................................................. 278 7.3.2 Declaración de apuntadores ........................................................................................................................ 278 PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd vviiiiii 22//1188//1111 99::4444 AAMM Contenido ix 7.3.3 Asignación de apuntadores .......................................................................................................................... 278 7.3.4 El operador 2. ................................................................................................................................................ 279 7.3.5 Errores usuales ................................................................................................................................................... 280 7.3.6 Apuntadores a apuntadores ......................................................................................................................... 280 7.3.7 Apuntadores para paso de parámetros por referencia ....................................................................... 280 Anexo A. Entrada y salida (e/s) en lenguaje C .............................................................................. 285 A.1 Entrada y salida formateada ........................................................................................................ 286 A.1.1 Entrada de datos: función scanf() ............................................................................................................... 286 A.1.2 Salida de datos: función printf() .................................................................................................................. 288 A.2 Entrada y salida sin formato ......................................................................................................... 290 Anexo B. Diferencias entre Turbo C, Dev-Cpp y Code::Blocks ............................................... 292 Anexo C. Aplicaciones ............................................................................................................................ 295 Anexo D. Código ASCII ............................................................................................................................ 309 Anexo E. Glosario ...................................................................................................................................... 311 Glosario de funciones en lenguaje C .................................................................................................................. 315 Entrada y salida formateada (vea el anexo A) ....................................................................................................... 316 Entrada y salida sin formato (vea el anexo A) ....................................................................................................... 316 Funciones matemáticas (librería math.h) ............................................................................................................... 317 Funciones para manejo de caracteres y cadenas ................................................................................................ 317 Operaciones con cadenas de caracteres, string.h y stdlib.h ............................................................................. 318 Funciones para la conversión de tipos, librería stdlib.h ..................................................................................... 318 Manejo de consola, librerías conio.h y conio2.h (Dev-C11 y Code::Blocks) ............................................. 318 Bibliografía y recursos de programación ......................................................................................... 320 Índice analítico ............................................................................................................................................ 323 PPrreelliimmiinnaarreess__CCoorroonnaa__II00440066..iinndddd iixx 22//1188//1111 99::4444 AAMM

Description:
Revisión técnica. Miguel Orozco Malo. Instituto Tecnológico y de Estudios Superiores de Monterrey,. Campus Ciudad de México. Carlos Villegas Quezada. Universidad GUI con esta herramienta, pero wxDev C11 incluye un diseñador gráfico de ventanas usando wxWidgets. Ambos programas son
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.