TY - GEN AU - MANUEL SANTOS AU - ISMAEL PATIÑO RAUL CARRASCO TI - FUNDAMENTOS DE PROGRAMACION SN - 9701511557 AV - QA76.6 .S26 2006 PY - 2006/// CY - ALFA OMEGA PB - MEXICO KW - Programación N1 - Este libro tiene un enfoque didáctico y académico, especialmente útil para introducir al lector en los principios básicos de la programación. Está orientado a estudiantes o personas que no tienen conocimientos previos de programación. Su propósito es facilitar la comprensión de los conceptos fundamentales como: Algoritmos Estructuras de control Operaciones básicas y estructuras de datos Lenguajes y paradigmas de programación Uso de seudocódigo Además, contiene ejercicios resueltos y propuestos, recursos para el profesor y secciones especiales de autoevaluación, lo cual lo convierte en una herramienta ideal para el autoaprendizaje y la enseñanza estructurada en niveles iniciales ; INTRODUCCIÓN XIII --- CAPÍTULO 1. ALGORITMOS Y PROGRAMAS Introducción .............................................................. 1 Representación de la información .................... 4 Algoritmos ............................................................... 5 Aplicación informática ....................................... 5 Ciclos de vida ................................................... 6 Metodologías .................................................. 8 Errores ............................................................. 9 Programación ..................................................... 11 Tipos de programación ................................. 12 Calidad ............................................................ 12 Documentación ............................................. 12 Resumen .............................................................. 14 --- CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA METODOLOGÍA DE PROGRAMACIÓN Técnicas para el diseño de algoritmos .......... 15 Diagramas de flujo ....................................... 15 Pseudocódigo ................................................ 20 Tablas de decisión ....................................... 23 Diagrama de transición de estados ............ 26 Diagrama Jackson ........................................ 27 --- CAPÍTULO 3. C, UN LENGUAJE ESTRUCTURADO. EL COMPILADOR Lenguajes de programación ............................ 45 Tipos de lenguajes de programación ........ 45 Traductores del lenguaje .............................. 48 Compiladores frente a intérpretes ............ 49 El lenguaje C ...................................................... 50 Historia del lenguaje .................................... 50 C como lenguaje estructurado .................... 51 Estructura de un programa en C ..................... 52 Estructura general ........................................ 52 Directivas para el preprocesador .............. 54 Declaraciones globales ............................... 55 Funciones de usuario y de librería ............ 56 Librerías de C ...................................................... 57 La compilación y el enlazado ......................... 58 Uso de un compilador en modo comando 59 ¿Por qué crear programas para el modo comando? 60 Entorno de desarrollo ...................................... 62 Entorno de desarrollo integrado ................ 62 Instalación y requerimientos del IDE ........ 63 Uso básico del IDE ......................................... 64 Depuración de un programa ....................... 65 Resumen .............................................................. 67 Ejercicios propuestos ..................................... 69 --- CAPÍTULO 4. COMENZANDO A PROGRAMAR. ELEMENTOS BÁSICOS DEL LENGUAJE C Introducción .......................................................... 71 Caracteres y sintaxis de C ................................ 72 Comentarios ...................................................... 72 Palabras clave .................................................. 73 Identificadores .................................................. 73 Tipos de datos ....................................................... 74 Tipos de datos fundamentales ..................... 75 Tipos de datos derivados .............................. 76 Nombres de tipos: typedef ............................ 76 Declaración de constantes ................................ 77 Declaración de variables ................................... 78 Ámbito de las variables. Accesibilidad ....... 78 Operadores y expresiones ................................. 80 Operadores ......................................................... 80 Expresiones ......................................................... 81 Programación estructurada: funciones, librerías La función main() ............................................ 87 Primeras funciones de E/S por consola .......... 88 Función getchar() ............................................ 88 Función putchar() ............................................ 89 Función printf() ................................................. 91 Función scanf() .................................................. 91 Función getch() y getche() .............................. 92 Función gets() y puts() .................................... 92 Función flush(stdin) .......................................... 93 Resumen ................................................................. 94 Ejercicios resueltos ............................................ 95 Ejercicios propuestos ....................................... 96 --- CAPÍTULO 5. SENTENCIAS DE CONTROL DE FLUJO Introducción .......................................................... 97 Sentencia if/else (selección) ............................ 97 Sentencia switch (selección) ........................... 100 Sentencia while (iteración) ............................. 101 Sentencia do...while (iteración) ...................... 102 Sentencia for (iteración) .................................... 103 Sentencias break y continue ............................ 104 Sentencia goto ..................................................... 104 Resumen ................................................................. 105 Ejercicios resueltos ............................................ 109 Ejercicios propuestos ....................................... 110 --- CAPÍTULO 6. ESTRUCTURAS ESTÁTICAS Introducción ........................................................ 115 Arrays .................................................................... 116 Cadenas de caracteres. Funciones estándar .... 118 Estructuras ............................................................. 121 Uniones .................................................................. 123 Enumerados .......................................................... 124 Punteros ................................................................... 125 Resumen ............................................................... 127 Ejercicios resueltos .......................................... 128 Ejercicios propuestos ..................................... 129 --- CAPÍTULO 7. FUNCIONES Introducción ........................................................ 131 Definición de una función ................................ 131 Llamada a una función ..................................... 132 Declaración prototipo ....................................... 132 Paso de argumentos por valor y por referencia 133 Paso de argumentos a la función main() ....... 134 Librerías de funciones en C ............................... 135 Errores comunes .................................................. 136 Resumen ................................................................. 139 Ejercicios resueltos ............................................ 140 Ejercicios propuestos ....................................... 143 --- CAPÍTULO 8. ESTRUCTURAS EXTERNAS. FICHEROS Conceptos del trabajo con ficheros ................. 145 Tipos de funciones de manejo de ficheros ... 145 Tipos de acceso a ficheros .................................. 148 Operaciones sobre ficheros ................................. 149 Abrir un fichero .................................................... 149 Cerrar un fichero .................................................. 150 Tratamiento de errores ...................................... 151 Tratamiento de ficheros en modo secuencial .... 152 Entrada / salida de caracteres ......................... 152 Entrada / salida de cadenas ............................. 153 Entrada / salida con formato ............................. 155 Modo texto y modo binario ............................... 157 Entrada / salida de registros ............................ 160 Tratamiento de ficheros en modo aleatorio ...... 163 Funciones de manejo de ficheros a bajo nivel . 165 Otras funciones para el manejo de ficheros ..... 169 Resumen ................................................................. 170 Ejercicios resueltos ............................................ 170 Ejercicios propuestos ....................................... 183 --- CAPÍTULO 9. ESTRUCTURAS DINÁMICAS Organización de los datos en memoria ............. 187 Concepto de estructura de datos dinámica ....... 189 Asignación dinámica de memoria ....................... 191 Función malloc() ................................................. 191 Función calloc() .................................................. 192 Función realloc() ................................................ 192 Función free() ....................................................... 192 Arrays dinámicos .................................................... 193 Listas .............................................................................. 195 Inserción, recorrido, borrado, listas dobles, etc. Pilas ................................................................................ 207 Colas ............................................................................... 210 Árboles ........................................................................... 214 Árboles binarios, de búsqueda, etc. Resumen ................................................................. 227 Ejercicios resueltos ............................................ 227 Ejercicios propuestos ....................................... 236 --- CAPÍTULO 10. PROGRAMACIÓN AVANZADA Recursividad .......................................................... 239 Función factorial, tipos, ventajas ................... 240 El preprocesador .................................................... 247 Creación de librerías ............................................. 250 Sockets ....................................................................... 257 Resumen ................................................................. 263 Ejercicios resueltos ............................................ 264 Ejercicios propuestos ....................................... 267 --- APÉNDICE A. DESARROLLO EN ENTORNO LINUX Introducción .......................................................... 269 Compilador GCC ..................................................... 269 Utilidad MAKE ......................................................... 271 Creación de librerías con la utilidad AR .......... 274 Entorno gráfico ANJUTA IDE .............................. 276 --- APÉNDICE B. GESTIÓN DE PROCESOS Introducción .......................................................... 279 Nociones sobre procesos .................................... 280 Funciones POSIX para la gestión de procesos . 285 Hilos o threads ....................................................... 287 --- APÉNDICE C. GUÍA DE ESTILO DE C Introducción .......................................................... 291 Legibilidad y mantenimiento del código .......... 292 Organización de las funciones ........................... 296 Tipos de datos, operadores y expresiones ...... 301 Sentencias de control de flujo ........................... 305 --- ÍNDICE ALFABÉTICO ..................................... 313 ; Ingeniería en Tecnologías de la Información y Comunicación N2 - Este libro está diseñado para que cualquier persona adquiera los conocimientos necesarios para desarrollar programas utilizando el lenguaje de programación C. Inicia desde lo más básico, explicando los elementos fundamentales de un ordenador, hasta alcanzar metodologías avanzadas de desarrollo. Se destaca el papel histórico del lenguaje C, creado en los Bell Laboratories entre 1969 y 1972, junto con el sistema operativo Unix, los cuales revolucionaron la programación al hacerla más portátil y eficiente. Actualmente, C y sus derivados siguen siendo fundamentales en empresas, universidades y sistemas de Internet. El texto subraya que dominar C es muy útil para desarrollar sistemas informáticos de cualquier tipo, y por eso el libro comienza presentando un sistema informático como herramienta para aprender a resolver problemas, empleando metodologías que faciliten el desarrollo de software ER -