Title | Diseno de algoritmos y su codificacion en lenguaje C |
---|---|
Pages | 341 |
File Size | 2.9 MB |
File Type | |
Total Downloads | 931 |
Total Views | 967 |
www.FreeLibros.me Diseño de algoritmos y su codificación en lenguaje C www.FreeLibros.me Preliminares_Corona_I0406.indd i 2/18/11 9:44 AM www.FreeLibros.me Preliminares_Corona_I0406.indd ii 2/18/11 9:44 AM Diseño de algoritmos y su codificación en lenguaje C María Adriana Corona Nakamura Universidad...
www.FreeLibros.me
Diseño de algoritmos y su codificación en lenguaje C
www.FreeLibros.me Preliminares_Corona_I0406.indd i
2/18/11 9:44 AM
www.FreeLibros.me Preliminares_Corona_I0406.indd ii
2/18/11 9:44 AM
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
www.FreeLibros.me Preliminares_Corona_I0406.indd iii
2/18/11 9:44 AM
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 he McGraw-Hill Companies, Inc. Edificio 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
www.FreeLibros.me Preliminares_Corona_I0406.indd iv
2/18/11 9:44 AM
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 ................................................................................................................................ 1.4.2 Análisis del problema ...................................................................................................................................... 1.4.3 Diseño y técnicas para la formulación de un algoritmo ..................................................................... 1.4.4 Codificación ........................................................................................................................................................ 1.4.5 Prueba y depuración ....................................................................................................................................... 1.4.6 Documentación ................................................................................................................................................ 1.4.7 Mantenimiento ..................................................................................................................................................
4 4 4 5 6 6 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 .............................................................................................................................................. 2.2.2 Datos lógicos o booleanos ............................................................................................................................ 2.2.3 Caracteres ............................................................................................................................................................ 2.2.4 Tipo void ..............................................................................................................................................................
9 9 10 10
www.FreeLibros.me Preliminares_Corona_I0406.indd v
2/18/11 9:44 AM
vi
Contenido
2.3 Variables .............................................................................................................................................. 10 2.3.1 2.3.2
2.4
Uso de #define: creación de macros .......................................................................................................... Uso de const .......................................................................................................................................................
13 14 15 15 16 17
Prioridad de los operadores ......................................................................................................... 18 2.6.1 2.6.2
2.7
12 12
Operadores ......................................................................................................................................... 13 2.5.1 Operadores aritméticos .................................................................................................................................. 2.5.2 Incremento y decremento ............................................................................................................................. 2.5.3 Operadores relacionales ................................................................................................................................ 2.5.4 Operadores lógicos .......................................................................................................................................... 2.5.5 Operadores de asignación ............................................................................................................................ 2.5.6 Operador condicional (?:) ..............................................................................................................................
2.6
10 11
Constantes .......................................................................................................................................... 11 2.4.1 2.4.2
2.5
Declaración de variables ................................................................................................................................ Reserva de memoria ........................................................................................................................................
Prioridad de operadores aritméticos ......................................................................................................... Regla asociativa .................................................................................................................................................
18 18
Expresiones ......................................................................................................................................... 19
2.8 Palabras reservadas ......................................................................................................................... 20 2.9
Comentarios ....................................................................................................................................... 21
2.10 Conversión de tipos ......................................................................................................................... 21 2.10.1 2.10.2
Conversión forzada de tipos de datos .................................................................................................... El operador sizeof ..........................................................................................................................................
22 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 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6
Comentarios ........................................................................................................................................................ Declaración archivos de cabecera o encabezado (librerías o bibliotecas) .................................. Prototipos de funciones ................................................................................................................................. Declaración de variables globales y constantes .................................................................................... El programa principal o función principal main() ................................................................................. Declaración de funciones ..............................................................................................................................
29 29 30 30 30 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 ) ........................................................................................... 3.5.2 Estructura de control selectiva doble si/si-no (if/else) ........................................................................
50 51
www.FreeLibros.me Preliminares_Corona_I0406.indd vi
2/18/11 9:44 AM
Contenido
3.5.3 Anidamiento o escalonamiento si-si no-si (if-else-if ) .......................................................................... 3.5.4 Ejercicios resueltos de la estructura de control selectiva simple si (if ) y doble si/si-no (if/else) ......................................................................................................... 3.5.5 Estructura de control selectiva múltiple segun_sea (switch) ........................................................... 3.5.6 Estructura de control selectiva segun_sea (switch) anidada ........................................................... 3.5.7 Ejercicios resueltos de la estructura de control selectiva múltiple segun_sea (switch) .........................................................................................................................
vii
52 53 67 68 68
3.6 Estructura de control repetitiva o de iteración condicional ............................................. 79 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.6.10 3.6.11
Contadores, acumuladores, centinelas y banderas .............................................................................. Estructura de control repetitiva mientras (while) ................................................................................. Ejercicios resueltos de la estructura de control repetitiva mientras (while) .............................. Estructura de control repetitiva hacer_mientras (do while) ............................................................. Ejercicios resueltos de la estructura de control repetitiva hacer_mientras (do_while) ............................................................................................................................ Estructura de control repetitiva desde (for) ............................................................................................ Ejercicios resueltos de la estructura de control repetitiva desde (for) .......................................... Casos especiales del for .................................................................................................................................. Ejercicios resueltos de la estructura de control repetitiva en casos especiales desde (for) ......................................................................................................................... Ciclos anidados ................................................................................................................................................. Ejercicios resueltos utilizando ciclos anidados ......................................................................................
79 81 82 94 94 107 109 118 119 126 127
Capítulo 4. Arreglos ................................................................................................................................. 135 4.1
Definición ............................................................................................................................................ 136
4.2
Arreglos unidimensionales (vectores o listas) ........................................................................ 137 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5
4.3
Inicialización de arreglos unidimensionales ........................................................................................... Lectura e impresión de un arreglo unidimensional ............................................................................. Modificación de un elemento del arreglo unidimensional ............................................................... Arreglos de caracteres .................................................................................................................................... Ejercicios resueltos de arreglos unidimensionales ...............................................................................
138 139 141 141 142
Arreglos bidimensionales (matrices o tablas) ........................................................................ 155 4.3.1 4.3.2 4.3.3
Inicialización de arreglos bidimensionales ............................................................................................. 156 Lectura e impresión de unos arreglos bidimensionales ......................................................................... 156 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
www.FreeLibros.me Preliminares_Corona_I0406.indd vii
2/18/11 9:44 AM
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 5.6.2 5.6.3
Parámetros de una función ........................................................................................................................... 189 Paso de parámetros en una función .......................................................................................................... 189 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 ....................................................................................