PROGRAMACI~N N c            E     Metodología, algoritmos      y estructura de datos                                      ...
CONTENIDO    Prólogo              ,   . .... .... ... ... ..... ... ... ..... .. .. .. ... ..... .. ....... .. .. ....... ...
vi     Contenido                                                                                                          ...
?                                                                                                                         ...
vi¡¡        Contenido        4.15. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
Contenido               7.2.2. Tipo de dato de retorno . . . . . . . . . . . . . . . . . . . .           ....................
X       Contenido                8.4.2. Acceso a los elementos de los arrays bidimensionales                              ...
10.8. Aritmética de punteros . .               10.8.1. Una aplicación de               10.9.2. Punteros a constantes . . ....
xi¡       Contenido                     12.7.3. La función strncmp ( ) . . . . . . . . . . . .                            ...
Contenido             xiii                  14.3.2. Puntero de cabecera y cola                                  .............
xiv         Contenido                                                                                                   .....
PRÓLOGOINTRODUCCIÓN   i Por qué un libro de C al principio del siglo X X I ? A pesar de haber cumplido ya sus bodas de pla...
xvi     prólogo      referencia y guía de estudio para un primer curso de introducción a la programación, con una segunda ...
prólogo        xvii           Conviviendo con C se encuentra el lenguaje C++, una evolución lógica suya, y que es tal el e...
xviii      Prólogo        integrando gradualmente los nuevos conceptos que irá encontrando a medida que avance en la obra ...
Prólogo     xix  referencia al ciclo de Administración de Sistemas Informúticos en el módulo de Fundamentos de Pro-  grama...
XX    Prólogo           Ejercicios. Al final de cada capítulo se proporciona a los lectores una lista de ejercicios sencil...
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Programacion en c   luis joyanes aguilar, ignacion zahonero martinez
Upcoming SlideShare
Loading in...5
×

Programacion en c luis joyanes aguilar, ignacion zahonero martinez

9,966

Published on

3 Comments
12 Likes
Statistics
Notes
No Downloads
Views
Total Views
9,966
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
976
Comments
3
Likes
12
Embeds 0
No embeds

No notes for slide

Transcript of "Programacion en c luis joyanes aguilar, ignacion zahonero martinez"

  1. 1. PROGRAMACI~N N c E Metodología, algoritmos y estructura de datos as . ,> . . . L Ignacio Zahonero MartinezDepartamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software Facultad de Informática/Escuela Universitaria de Informática Universidad Pontificia de Salamanca. Cumpus Madrid MADRID BUEN,OS AIRES CARACAS -,GUATEMALA. LISBOA MÉXICONUEVA YORK PANAMA SAN JUAN SANTAFE DE BOGOTA SANTIAGO SA0 PA,ULO AUCKLAND HAMBURG0 LONDRES MILAN MONTREAL NUEVA DELHI PARIS SAN FRANCISCO SIDNEY SINGAPUR ST. LOUIS TOKIO *TORONTO
  2. 2. CONTENIDO Prólogo , . .... .... ... ... ..... ... ... ..... .. .. .. ... ..... .. ....... .. .. ....... ..... ...... xv PARTE I. METODOLOGíA DE LA PROGRAMACIÓN Capítulo 1. Introducción a la ciencia de la computación y a la programación . . . . . ................ 2 1.1. ¿Qué es una computadora? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4 1.2. Organización física de una computadora (hardware) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1. Dispositivos de EntradafSalida (E/S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.2. La memoria central (interna) . ........................................... 6 1.2.3. La Unidad Central de Proceso (UCP) . . . . . . .. ... .. . 9 1.2.4. El microprocesador . . . . . . . . . . . . . . . . . . . 10 1.2.5. Memoria auxiliar (externa) . . . . . . . . . . . . . 10 1.2.6. Proceso de ejecución de un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.7. Comunicaciones: módems, redes, telefonía RDSI y ADSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.8. La computadora personal multimedia ideal para 1 13 1.3. Concepto de algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.3.1. Características de los algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.4. El software (los programas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.5. Los lenguajes de programación 19 20 20 21 1.5.4. Lenguajes de alto nivel ................................................. 22 .............................. 22 ... ..... . 23 23 23 1.6. El lenguaje C: historia y características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.6.1. Ventajas de C .................................... 25 1.6.2. Características ...................... 26 1.6.3. Versiones actu 26 ..................................................................... 27 Capítulo 2. Fundamentos de programación . . . . . ...................... 28 2.1. Fases en la resolución de problemas . .. 30 2.1.1. Análisis del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.1.2. Diseño del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.1.3. Herramientas de la programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.1.4. Codificación de un programa . . . . . ................................... 36 VP
  3. 3. vi Contenido 37 38 2.1.7. Documentación y 38 2.2. Programación modular . . . . . 49 2.3. Programación estructura 40 2.3.1. Recursos abstractos . . . . . . . . . . . ................... 40 40 .......... .........._...... . ...... .. 41 tructurada: estru 42 42 43 52 ........... 53 54 .................. 55 55 56 ......_.......... 56 ............_... ................. 57 57 2.6.8. Iteración y e 57 2.7. Métodos formales de verificación de programas ..._............. ........... 58 2.7.1. Aserciones . . . . . . . . . ................................... 58 59 ................ 60 ......._..... 60 62 63 2.8. Factores en la calidad del software . . . . 64 ............. 65 65 ........ 66PARTE II. FUNDAMENTOS DE PROGRAMACI~NEN cCapítulo 3. El lenguaje C: elementos bá ........._...... 3.1. Estructura general de un programa en .......,._... 3.1.1. Directivas del prepro 3.1.2. Declaraciones global 3.1.3. Función main ( ) . . . 3.1.4. Funciones definidas PO 3.1.5. Comentarios . . . . . . . . . . . . . . . ................ 3.2, Creación de un programa . . . . . . . . . . . . . . . . ................ ..._............... 82 3.3. El proceso de ejecución de 3.4. Depuración de un program 3.4.2. Errores lógicos . . . .................................... 3.4.5. Errores en tiempo de .................. .......... .................. 90 ............. 90 ...... .... 90
  4. 4. ? Contenido vi¡ 3.6.5. Signos de puntuación y separadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.6.6. Archivos de cabecera ................................. ....... 92 3.7. Tipos de datos en C . . ..... ............... 92 3.7.1. E n t e r o s ( i n t ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.7.2. Tipos de coma flotante ( f 1oat 3.7.3. Caracteres (char) . . . . . . . . . . . . . . . . 3.8. El tipo de dato LÓGICO . . . . . . . . . . 3.8.1. Escritura de valores lógicos ....... 97 3.9. Constantes ............... ............. es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 3.9.2. Constantes definidas (simbólicas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 3.9.3. Constantes enumeradas . . ......... ........ 3.9.4. Constantes declaradas con latile... . . . 3.10. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ., 3.10.1. Declaracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 3.10.2. Inicialización de variables .. .... ..... .... 105 3.10.3. Declaración o definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 3.11. Duracióndeunavariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 3.11.1. Variables locales . ...... ..... .... 106 3.11.2. Variables globales ................................ 106 3.11.3. Variables dinámicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 3.12. Entradas y salidas ........ 3.12.1. Salida . . . ........ 3.12.2. Entrada . . ........................................ 111 3.12.3. Salida de cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.12.4. Entrada de cadenas de caracteres . . . .... ..... ....... 112 3.13. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 3.14. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Capítulo 4. Operadores y expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.1. Operadores y expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 16 4.2. Operador de asignación . . .... ....... 116 4.3. Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 . . . 4.3.1. Asociatividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 4.3.2. Uso de paréntesis ........................................................ 120 4.4. Operadores de increment n y decrementación 4.5. Operadores relacionales . . . . . . . . . . . . . . . . . . . . 4.6. Operadores lógicos .......................................................... 125 4.6.1. Evaluación en cortocircuito . . . . . . ..... 127 4.6.2. Asignaciones booleatias (lógicas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 4.7. Operadores de manipulación de bits ....................... 129 4.7.1. Operadores de asignación adic ... ..... 130 4.7.2. Operadores de desplazamiento de bits (», «) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.7.3. Operadores de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8. Operador condicional ....... 132 4.9. Operador coma . . . . . ......... 4.10. Operadores especiales 4.10.1. El operador ( ) 4.10.2. El operador [ ] 4.11. El operador SIZEOF . 4.12. Conversiones de tipos 4.12.1. Conversión im ......... ........ 4.12.2. Reglas . . . . . . ......... ........ 4.12.3. Conversión explícita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.13. Prioridad y asociatividad . ... 136 4.14. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
  5. 5. vi¡¡ Contenido 4.15. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.16. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Capítulo 5. Estructuras de selección: sentencias if y switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.1. Estructuras de control .................. 144 5.2. Lasentencia if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3. Sentencia i f de dos alternativas: i f - e1se . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4. Sentencias i f - el se anidadas ....................................... 150 5.4.1. Sangría en las sentencias i 5.4.2. Comparación de sentencias 5.5. Sentencia de control switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 5.5.1. Caso particular de case .................................. 159 5.5.2. Uso de sentencias swit c ........................ 5.6. Expresiones condicionales: el operador ? : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7. Evaluación en cortocircuito de expresiones lógicas ................................... 161 5.8. Puesta a punto de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9. Errores frecuentes de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10. Resumen . . . . . . ........ 164 5.11. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Capítulo 6. Estructuras de control: bucles 6.1. La sentencia whi 1e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1. Operadores de inc 6.1.2. Terminaciones anormales de un ciclo ........ 174 6.1.3. Diseño eficiente d 6.1.4. Bucles while con cero iteraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 6.1.5. Bucles controlados por centinelas ....... 175 6.1.6. Bucles controlados por indicadores (banderas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.7. La sentencia break en 6.1.8. Bucles while (true) ................................................. 178 6.2. Repetición: el bucle €or . . . . . 6.2.1. Diferentes usos de bucles for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 6.3. Precauciones en el uso de for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 6.3.1. Bucles infinitos . . . . . . . . . . . . . 6.3.2. Los bucles for vacíos . . . . . . . 6.3.3. Sentencias nulas en bucles for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 6.3.4. Sentencias break y continue . . . . . . . . . . . 188 6.4. Repetición: el bucle do . . .whi le . . . . . . . . . . . . . . ............................. 190 6.4.1. Diferencias entre while y do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 6.5. Comparación de bucles while,for y do-whi le 6.6. Diseño de bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.1. Bucles para diseño de sumas y productos . . . 6.6.2. Fin de un bucle ............................................. 194 6.6.3. Otras técnicas d ..... .... 196 6.6.4. Bucles f o r vacíos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 6.7. Bucles anidados ...................................... 197 6.8. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.9. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.10. Problemas ............................................... 203 6.11. Proyectos d 206Capítulo7. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 7.1. Conceptodefunción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 7.2. Estructuradeunafunción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 7.2.1. Nombre de una función . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
  6. 6. Contenido 7.2.2. Tipo de dato de retorno . . . . . . . . . . . . . . . . . . . . .......................... 7.2.3. Resultados de una función . . . . . . . . . . . . . ............................... 7.2.4. Llamada a una función . . . . .. ... ... 7.3. Prototipos de las funciones . . . . . . . . . . . . . . . . . . . . . . . . . . I .................... 7.3.1. Prototipos con un número no .~.............~.... 7.4. Parámetros de una función . . . . . . .......................... 7.4.3. Diferencias entre paso de variables por valor y por referencia . . . . . . . . . . 7.4.4. Parámetros cons t de una función . . . . . . . . . . . . . . . .......................... 7.6. Ámbito (alcance) . . . . . . . . ................................ ...... .. 7.6.1. Ambito del programa . . . . . . . . . . . . . . . . . . . . . . . . .................... 229 7.6.2. Ambito del archivo fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 7.6.3. Ambito de una función . . . . . . . .......................... ........ 230 1 1 7.6.4. Ambito de bloque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .................... 230 7.6.5. Variables locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1 7.7. Clases de almacenamiento . . . . . . . ........................ 23 1 7.7.1. Variables automáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...................... 23 1 7.7.2. Variables externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1 7.7.3. Variables registro . . . . . . . . . . . . . . . . . . . . ........................... 232 7.7.4. Variables estáticas . . ........................... _............... 232 7.8. Concepto y uso de funcione a ............... ...................... 234 7.9. Funciones de carácter . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...................... 234 7.9.1. Comprobación alfabética y de dígitos ........................ ...... . 235 1 1 7.9.2. Funciones de prueba de caracteres espe ...................... 236 7.9.3. Funciones de conversión de caracteres . . . . . . . . . . ...................... 236 7.10. Funciones numéricas . . . . . . ........................ ....... 237i 7.10.1. Funciones matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . ...................... 237 7.10.2. Funciones trigonométricas . . . . . . . . . . . . . . . . . . ................. 238 7.10.3. Funciones logm’tmicas y exponenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238E 7.10.4. Funciones aleatorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 239 240 243 7.13. Visibilidad de una función . . 244 7.13.1. Variables locales fren 7.13.2. Variables estáticas y automáticas . . . . . . . . ............................ 245 247 1 7.14. Compilación separada . . . . . ............................. .......... 249 1 ! 250 25 I 7.17. Resumen . . . . . . . . . . . . . . . 254 7.19. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........................ Capítulo 8. Arrays (listas y tablas) . . . . ............................. ............ 258 ....................................... .................... 260 260 8.1.2.Subíndices de un array .......................... ............... 26 1 8.1.3.Almacenamiento en me s arrays . . . . . . . . . . . .................... 262 8.1.4.El tamaño de los arrays . . . . . . . . . . . . ....................... 263 8.1.5.Verificación del rango 264 8.2. Iniciaiización de un array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................. 264 8.3. Arrays de caracteres y cadenas de . ... .. .. ....................... 266 8.4. Arrays multidimensionales . . . . . 269 8.4.1. Inicialización de arrays mu 270
  7. 7. X Contenido 8.4.2. Acceso a los elementos de los arrays bidimensionales ........................ 271 8.4.3. Lectura y escritura de arrays bidimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 8.4.4. Acceso a elementos mediante bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.5. Arrays de más de dos dimensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......... 274 8.4.6. Una aplicación práctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............... 274 8.5. Utilización de arrays como parámetros . . . . . . . . . . . .............................. 276 8.5.1. Precauciones . . . . . . . .................................. 8.5.2. Paso de cadenas como parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6. Ordenación de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............. 282 8.6.1. Algoritmo de la burbuja . . . . . . . . . . . . . . . . . . . . . . . . . . . ................... 282 8.7. Búsqueda en listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........................ 284 8.7.1. Búsqueda secuencia1 . . . . . . . . . . . . . . . . ............................. 28.5 8.8. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . ............................. 8.9. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . ........................ 8.10. Problemas . . . . . . . . . . . . . . ............................. ............. 291Capítulo 9. Estructuras y uniones ......................... ........................ 294 9.1. Estructuras ............................. ....................... 296 de una estructura . . . . . . . . ............................ 297 9.1.2. Definición de variables de estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 9.1.3. Uso de estructuras en asignaciones . . . . . . . . . . . . . . . . . . . . . . . . .............. 298 9.1.4. Inicialización de una declaración de estructuras . . . . . . . . . ....................... 299 9.1.5. El tamaño de una estructura . . . . . . . . . . . . ............................ 300 9.2. Acceso a estructuras . . . . . . . . . . . . . . . . . . . . . . . 300 ........ 300 .............. 302 .................... 302 303 9.3.1. Ejemplo de estructuras anidadas . . . . . . 304 9.4. Arrays de estructuras . . . . . . . . . . . . ........................... ......... 307 ............. 308 ................... 309 9.6. Uniones . . . . . . . ............................. 3 10 9.7. Enumeraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1 ........ 314 .............. 314 9.8. Campos de bit . . . . . . . .............. 315 9.9. Resumen . ............................ 319 320 ......................... ............ 32 1Capítulo 10. Punteros (apuntadores) ............................ ...................... 322 10.1. Direcciones en memoria . . . . . . . . . . . . . . . . . . . . . . . . ........................... 324 10.2. Concepto de puntero (apuntador) . . . . . . . . . . . . . . . . ................... 10.2.1. Declaración de punteros . . . . . . . . . . . . ........................ 10.2.2. Inicialización (iniciación ............. 327 10.2.3. Indirección de punteros 10.2.4. Punteros y verificación d 10.3. Punteros n u l l y v o i d . . . . . . 10.4. Punteros a punteros . . . . . ........ 331 10.5. Punteros y arrays . . . . . . . . ........ 332 10.5.1. Nombres de arrays nteros . . . . . . . . . . . . . . . ....................... 332 10.5.2. Ventajas de los punteros . . . . . . . . . . . . . . . . . . 10.6. Arrays de punteros . . . . . . . . . . . . . . . . . . . . . . . . 10.6.1. Inicialización de u ........ 33.5 10.7. Punteros de cadenas . . . . . . . . . . . . . ....................... ............ 33.5 10.7.1. Punteros versus arrays .......................
  8. 8. 10.8. Aritmética de punteros . . 10.8.1. Una aplicación de 10.9.2. Punteros a constantes . . . . . 10.11.1. Inicialización de u 10.13. Resumen . . . . . . . . .......................................... ón de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.9. Punteros constantes frente a punteros a constantes . . . . . . . . . . 10.9.1. Punteros constantes .............................................. 10.14. Ejercicios . . . . . . . . . . . . . . . . . . . . . . ................................. ........ .......... ................................... ................. ............................... Contenido ....... Xi 336 338 339 339 339 340 343 348 349 352 I ......... 353Capítulo 11. Asignación dinámica de memoria . . ................................... 354 11.1. Gestión dinámica de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . ....... 356 11.1.1. Almacén libre (free store) ................................ 357 11.2. Función malloc ( ) . . . . . . . . . . . . . . . . . ................................ 357 11.2.1. Asignación de memoria de un tamaño desconocido ................ 361 11.2.2. Uso de m a l loc ( ) para arrays multidimensionales . . . . . . . . . . . . . . . . 11.3. Liberación de memoria, función free ( ) ........................... 11.4. Funciones de asignación de memoria call í ) y realloc í ) . . . . . . . . . . . . . . . . . . . . . . . 364 11.4.1. Función calloc ( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...... 364 11.4.2. Función realloc ( ) ............................................ 365 11.5. Asignación de memoria para array .......................... 368 11.5.1. Asignación de memoria interactivamente . . . . . . . . . . . . . . . . . . . . . 369 11.5.2. Asignación de memoria para un array de estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 11.6. Arrays dinámicos . . . . . . . . . . . . . . . . . . . . . . . . 11.7. Reglas de funcionamiento de la asignaci 11.8. Resumen . . . . . . . . . . ................................................ 376 11.9. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . ................................. 376 11.10. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 377Capítulo 12. Cadenas . . . . . . . . . . . . . . . . . . ....................................... 378 12.1. Conceptodecadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................. 380 12.1.1. Declaración de variables de cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1.2. Inicialización de variables de cadena 12.2.2. Función putchar ( ) .................................... 385 12.2.3. Función puts ( ) . . . . . . . . . . . . . . . . . . . . . ............................... 389 ......... 389 12.5. Asignación de cadenas ............................................... 391 12.5.1. La función s t .......... .............................. 391 adenas . . . . . . . . . . . . . . . . . . . . . . . . . . ....... 392 12.6.2. Las funciones strcat ( ) y strncat ( ) ........................... 393 12.7. Comparación de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  9. 9. xi¡ Contenido 12.7.3. La función strncmp ( ) . . . . . . . . . . . . .................... 396 12.7.4. La función strnicmp ( ) . . . . . . . . . . . ......................... 12.8. Inversión de cadenas . . . . . . . . . . . ........................ 12.9.2. Función strlwr () .. 12.10. Conversión de cadenas a números . . . . . . . . . . . . . . . . . . . . . . ................. 399 12.10.1. Función atoi ( ) . . . . . . . . . . . . . . . . ............................ 399 12.10.2. Función atof ( ) . . ............................ 12.10.3. Función ato1 ( 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .............. 400 12.10.4. Entrada de números y cadenas . . . . . . . . . . . . . . . . 12.11. Búsqueda de caracteres y cadenas . . . . . . ........................... 12.11.2. Función strrchr ( ) .................... .................... 402 12.11.3. Función strspn ( ) ...... 12.11.4. Función strcspn ( ) .................................... . . . . . . . 403 12.11.5. Función strpbrk ( ) ................... .................... 403 12.11.6. Función strstr ( 1 ........ 12.11.7. Función strtok ( ) ........................................ 12.12. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 12.13. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.14. Problemas . . . . . . . . . . . . . . . . . . . . . . ................................... PARTE Ill. ESTRUCTURA DE DATOS Capítulo 13. Entradas y salidas por archivos . . . . . . . . . . . . . . . . . . . . ...................... 410 13.1. Flujos . . . . . . . . . . . . . . . . . . . . . . . . . . ................................. 412 13.2. Puntero F I L E ................................... ................. 412 13.3. Apertura de un .................................. ................. 413 13.3.1. Modos de apertura de un archivo . . . .............................. 414 13.3.2. NULL y EOF . . . . . . . . . . . . ................................... .. 415 13.3.3. Cierre de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .............. 415 13.4. Creación de un archivo secuencia1 . . . . . . . . . . . . . ........................ 416 . . . . . . . . . . . . . 417 ....................... 421 . . . . . . . . . 423 13.5.2. Función de lectura f read () ...................... . . . . . . . . . . . . . . . . . . . 424 13.6. Funciones para acceso aleatorio . . . . . . . . . . . .......................... 426 13.6.1. Función f seek ( ) . . 13.6.2. Función ftell ( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .................. 431 13.7. Datos externos al programa co 13.8. Resumen . . . . . . . . . . . . . . . . ................................... ........ 434 ................... 435 13.10. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . ............................. 436 Capítulo 14. Listas enlazadas ............................ ........... 438 14.1. Fundamentos teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..................... 440 14.2. Clasificación de las listas enlazadas . . . . . . ............................... 441 14.3. Operaciones en listas enlazadas . . . ........... 442 14.3.1. Declaración de un nodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .................... 442c
  10. 10. Contenido xiii 14.3.2. Puntero de cabecera y cola .............................. .......... 443 14.3.3. El puntero nulo . . . . . . . . . ......................... 444 14.3.4. El operador - > de selecció ......................... 445 14.3.5. Construcción de una lista . . . . . . . . . . . . . . . . . . . ........................... 445 14.3.6. Insertar un elemento en una lista . . . . . ........................ 447 14.3.7. Búsqueda de un elemento . ............................ ........ 453 14.3.8. Supresión de un nodo en una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 14.4. Lista doblemente enlazada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 14.4.1. Declaración de una lista doblemente enlazada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.4.2. Insertar un elemento en una lista doblemente enlazada ....................... 14.4.3. Supresión de un elemento en una lista doblemente enlazada . . . . . . . . . . . . ......... 459 14.5. Listas circulares . . . . . . .................................. .................. 462 14.5.1. Insertar un elem en una lista circular . . . . . . . . . ....................... 462 14.5.2. Supresión de un elemento en una lista circular . . ........................... 463 14.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....................... 467 14.7. Ejercicios . . . . . . . . . . . . . . . . . . . . . ............................... ....... 468 14.8. Problemas . . . . . . . . . . . . . .................................................. 468Capítulo 15. Pilas y colas . . . . . . . . . . . . . . . . . ................................. ....... 470 15.1. Concepto de pila . . . . . . . . . . . ......................... ............... 472 15.1.1. Especificaciones de una ........................ 473 15.2. El tipo pila implementado con arrays . . . . . ........................ 473 I 15.2.1. Especificación del tipo p i 1a . . . . . ........................ 475 477 I 15.2.2. Implementación de las operaciones sobre pilas .......................... I 15.2.3. Operaciones de verificación del estado de la pila . . . . . . . . . . . . . . . . . . . . . II 478 15.3. Colas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 1 15.4. El tipo cola implementada con arrays . . . . . . . . . . . . . . . . . . ......................... 483 15.4.1. Definición de la especificación de una cola ....................... 483 15.4.2. Especificación del tipo c o l a . . . . ................................ 483 15.4.3. Implementación del tipo c o l a . . . . . . . . . . . . . . . . . .... ................. 484 1I 15.4.4. Operaciones de la cola ........................ ......................... 486 15.5. Realización de una cola con una lista enlazada . . . . . . . . . . ......................... 487 15.5.1. Declaración del tipo c o l a con listas . . . . .................................... 488 15.5.2. Codificación de 1 eraciones del tipo c o 1 con listas . . . . . . . . . . . . . . a 489 15.6. Resumen . . . . . . . . . . . . .......................................... ........ 492 15.7. Ejercicios . . . . . . . . . . . . ....................................................... 493 15.8. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........................... 494 I ICapítulo 16. Árboles ..................... 16.1. Árboles generales . . . . . . . . ~ ....................... II .............................. 504 16.3.1. Equilibrio . . . . . . . . . . . . . ...................... 16.3.2. Árboles binarios completos 16.4. Estructura de un árbol binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 16.4.1. Diferentes ti [I ........................... e expresión . . . . . . . . ..................... I 16.7.2. Recomdo enorden . . . . . . ...................... ...... 521 16.7.3. Recomdo postorden . . . . . .......................... ........ 522 ................... 525
  11. 11. xiv Contenido ...................... 528 16.9.1. Búsqueda . . . . .............................. ............ 528 16.9.2. Insertar un nodo . . . . ............................ 531 16.9.5. Recorridos de un árbol . . . . . . . . . . . . . . . . . . ............................ 535 .................. 535 ................ 536 .................................. 16.13. Problemas . . . . . ................................ ................. 540 ....... 542 ............................ 545 ....................... 575Apéndice C. Palabras reservadas de C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Apéndice D. Guía de sintaxis ANSIASO estándar C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Apéndice E. Biblioteca de funciones ANSI C . . . . . . . ..................................Apéndice F. Recursos (Libros/Revistas/URL de Interne ............................ 713ÍNDICE . . . . . . . . . . . . . . . . . . . . . . . . . .............................. ........ 727
  12. 12. PRÓLOGOINTRODUCCIÓN i Por qué un libro de C al principio del siglo X X I ? A pesar de haber cumplido ya sus bodas de plata (25 años de vida), C viaja con toda salud hacia los 30 años de edad que cumplirá el próximo año. Sigue siendo una de las mejores opciones para la programación de los sistemas actuales y el medio más efi- ciente de aprendizaje para emigrar a los lenguajes reina, por excelencia, en el mundo orientado a objetos y componentes y el mundo Web (C++, Java,. ..) que dominan el campo informático y de la computación. i Cuáles son las características que hacen tan popular a este lenguaje de programación e idóneo como primer lenguaje de programación en las carreras profesionales de programador (de aplicaciones y de sistemas) y del ingeniero de software? Podemos citar algunas muy sobresalientes: Es muy portable (transportable entre un gran número de plataformas hardware y plataformas sof- ware, sistemas operativos). Existen numerosos compiladores para todo tipo de plataformas sobre los que corrren los mismos programas fuentes o con ligeras modificaciones. Es versátil y de bajo nivel, por lo que es idóneo para tareas relativas a la programación del siste- ma. A pesar de ser un excelente lenguaje para programación de sistemas, es también un eficiente y potente lenguaje para aplicaciones de propósito general. Es un lenguaje pequeño, por lo que es relativamente fácil construir compiladores de C y además es también fácil de aprender. Todos los compiladores suelen incluir potentes y excelentes bibliotecas de funciones compatibles con el estándar ANSI. Los diferentes fabricantes suelen añadir a sus compiladores funcionalida- des diversas que aumentan la eficiencia y potencia de los mismos y constituye una notable venta- ja respecto a otros lenguajes. El lenguaje presenta una interjGaz excelente para los sistemas operativos Unix y Windows, junto con el ya acreditado Linux. Es un lenguaje muy utilizado para la construcción de: sistemas operativos, ensambladores, pro- gramas de comunicaciones, intérpretes de lenguajes, compiladores de lenguajes, editores de textos, bases de datos, utilidades, controladores de red, etc. Por todas estas razones y nuestra experiencia docente, decidimos escribir esta obra que, por otra par- te, pudiera completar nuestras otras obras de programación escritas para C++, Java, Turbo Pascal y Visual Basic. Basados en estas premisas este libro se ha escrito pensando en que pudiera servir de xv
  13. 13. xvi prólogo referencia y guía de estudio para un primer curso de introducción a la programación, con una segunda parte que, a su vez, sirviera como continuación, y de introducción a las estructuras de datos todo ello utilizando C, y en particular la versión estándar ANSI C, como lenguaje de programación. El objetivo final que busca es, no sólo describir la sintaxis de C, sino y, sobre todo, mostrar las características más sobresalientes del lenguaje, a la vez que se enseñan técnicas de programación estructurada. Así pues, los objetivos fundamentales del libro son: Énfasis fuerte en el análisis, construcción y diseño de programas. Un medio de resolución de problemas mediante técnicas de programación. Una introducción a la informática y a las ciencias de la computación usando una herramienta de programación denominada C (ANSI C). Enseñanza de las reglas de sintaxis más frecuentes y eficientes del lenguaje C. En resumen, éste es un libro diseñado para enseñar a programar utilizando C, no un libro diseñado para enseñar C, aunque también pretende conseguirlo. No obstante, confiamos que los estudiantes que utilicen este libro se conviertan de un modo razonable en acérrimos seguidores y adeptos de C, al igual que nos ocurre a casi todos los programadores que comenzamos a trabajar con este lenguaje. Así se tra- tará de enseñar las técnicas clásicas y avanzadas de programación estructurada.LA EVOLUCI~N E c: c++ D C es un lenguaje de programación de propósito general que ha estado y sigue estando asociado con el sistema operativo UNIX. El advenimiento de nuevos sistemas operativos como Windows (95,98, NT, 2000 o el recientemente anunciado XP sobre la plataforma. NET) o el ya muy popular Linux, la versión abierta, gratuita de Unix que junto con el entorno Gnome está comenzando a revolucionar el mundo de la programación. Esta revolución, paradójicamente, proporciona fuerza al lenguaje de programación de sistemas C. Todavía y durante muchos años C seguirá siendo uno de los lenguajes lideres en la ense- ñanza de la programación tanto a nivel profesional como universitario. Como reconocen sus autores Kernighan y Ritchie, en El Lenguaje de Programación C, 2.” edición, C, aunque es un lenguaje idóneo para escribir compiladores y sistemas operativos, sigue siendo, sobre todo, un lenguaje para escribir aplicaciones en numerosas disciplinas. Ésta es la razón por la que a algo más de un año para cumplir los 30 años de vida, C sigue siendo el lenguaje más empleado en Facultades y Escuelas de Ciencias e Inge- niería, y en los centros de enseñanza de formación profesional, y en particular los innovadores ciclos de grado superior, así como en centros de enseñanza media y secundaria, para el aprendizaje de legio- nes de promociones (generaciones) de estudiantes y profesionales. Las ideas fundamentales de C provienen del lenguaje BCPL, desarrollado por Martin Richards. La influencia de BCPL sobre C continuó, indirectamente, a través del lenguaje B, escrito por Ken Thomp- son en 1979 para escribir el primer sistema UNIX de la computadora DEC de Digital PDP-7. BCPL y B son lenguajes «sin tipos» en contraste con C que posee una variedad de tipos de datos. En 1975 se publica Pascal User Manual and Report la especificación del joven lenguaje Pascal (Wirth, Jensen 75) cuya suerte corre en paralelo con C, aunque al contrario que el compilador de Pas- cal construido por la casa Borland, que prácticamente no se comercializa, C sigue siendo uno de los reyes de la iniciación a la programación. En I978 se publicó la primera edición de la obra The C Pro- gramming Language de Kernighan y Ritchie, conocido por K&R. En 1983 el American National Standards Institute (ANSI) nombró un comité para conseguir una defi- nición estándar de C. La definición resultante se llamó ANSI C, que se presentó a finales de 1988 y se aprobó definitivamente por ANSI en 1989 y en 1990 se aprobó por ISO. La segunda edición The C Programming Language se considera también el manual del estándar ANSI C. Por esta razón la espe- cificación estándar se suele conocer como ANSVISO C. Los compiladores modernos soportan todas las características definidas en ese estándar.
  14. 14. prólogo xvii Conviviendo con C se encuentra el lenguaje C++, una evolución lógica suya, y que es tal el estado de simbiosis y sinergia existente entre ambos lenguajes que en muchas ocasiones se habla de C/C++ para definir a los compiladores que siguen estas normas, dado que C++ se considera un superconjunto de C. C++ tiene sus orígenes en C, y, sin lugar a dudas, Kemighan y Ritchie -inventores de C,- son «padres espirituales» de C++. Así lo manifiesta Bjarne Stroustrup -inventor de C++- en el prólogo de su afamada obra The C++ Programming Lunguage. C se ha conservado así como un subconjunto de C++ y es, a su vez, extensión directa de su predecesor BCPL de Richards. Pero C++, tuvo muchas más fuentes de inspiración; además de los autores antes citados, cabe destacar de modo especial, Simula 67 de Dah1 que fue su principal inspirador; el concepto de clase, clase derivada yfunciones virtuales se tomaron de Simula; otra fuente importante de referencia fue Algol 68 del que se adoptó el concepto de sobrecarga de operadores y la libertad de situar una declaración en cualquier lugar en el que pueda aparecer una sentencia. Otras aportaciones importantes de C++ como son las plantillas (templates) y la genericidad (tipos genéricos) se tomaron de Ada, Clu y ML. C++ se comenzó a utilizar como un «C con clases» y fue a principios de los ochenta cuando comen- zó la revolución C++, aunque su primer uso comercial, fuera de una organización de investigación, comenzó en julio de 1983. Como Stroustrup cuenta en el prólogo de la 3." edición de su citada obra, C++ nació con la idea de que el autor y sus colegas no tuvieran que programar en ensamblador ni en otros lenguajes al uso (léase Pascal, BASIC, FORTRAN,...). La explosión del lenguaje en la comunidad infor- mática hizo inevitable la estandarización. proceso que comenzó en 1987 [Stroustrup 941. Así nació una primera fuente de estandarización The Annotated C++ Reference Manual [Ellis 891. En diciembre de 1989 se reunió el comité X3J16 de ANSI, bajo el auspicio de Hewlett-Packard y en junio de 1991 pasó el primer esfuerzo de estandarización internacional de la mano de ISO, y así comenzó a nacer el están- dar ANSVISO C++. En 1995 se publicó un borrador estándar para su examen público y en noviembre de 1997 fue finalmente aprobado el estandar C++ internacional, aunque ha sido en 1998 cuando el pro- ceso se ha podido dar por terminado (ANSIASO C++ Draft Standard). El libro definitivo y referencia obligada para conocer y dominar C++ es la 3.a edición de la obra de Stroustrup [Stroustrup 971 y actualizada en la Special Edition [Stroustrup 2000]*. OBJETIVOS DEL LIBRO C++ es un superconjunto de C y su mejor extensión. Éste es un tópico conocido por toda la comunidad de programadores del mundo. Cabe preguntarse como hacen muchos autores, profesores, alumnos y profesionales ¿se debe aprender primero C y luego C++? Stroustrup y una gran mayoría de programa- dores, contestan así: «No sólo es innecesario aprenderprimero C, sino que además es una mala idea». Nosotros no somos tan radicales y pensamos que se puede llegar a C++ procediendo de ambos caminos, aunque es lógico la consideración citada anteriormente, ya que efectivamente los hábitos de programa- ción estructurada de C pueden retrasar la adquisición de los conceptos clave de C++, pero también es cierto que en muchos casos ayuda considerablemente en el aprendizaje. Este libro supone que el lector no es programador de C, ni de ningún otro lenguaje, aunque también somos conscientes que el lector que haya seguido un primer curso de programación en algoritmos o en algún lenguaje estructurado, llámese Pascal o cualquier otro, éste le ayudará favorablemente al correc- to y rápido aprendizaje de la programación en C y obtendrá el máximo rendimiento de esta obra. Sin embargo, si ya conoce C++, naturalmente no tendrá ningún problema, en su aprendizaje, muy al con-i trario, bastará que lea con detalle las diferencias esenciales de los apéndices C y D de modo que irár Traducida al español por el autor de este libro junto con el profesor Miguel Katnb, de la Universidad de la Habana [Ellis 941 Esta obra qe encuentra en proceso de traducción al español por un equipo de profesores de vanas universidades españolas coordi- nadas por el autor de esta obra
  15. 15. xviii Prólogo integrando gradualmente los nuevos conceptos que irá encontrando a medida que avance en la obra con los conceptos clásicos de C++. El libro pretende enseñar a programar utilizando dos conceptos funda- mentale s : 1. Algoritmos (conjunto de instrucciones programadas para resolver una tarea específica). 2. Datos (una colección de datos que se proporcionan a los algoritmos que se han de ejecutar para encontrar una solución: los datos se organizarán en estructuras de datos). Los dos primeros aspectos, algoritmos y datos, han permanecido invariables a lo largo de la corta his- toria de la informáticdcomputación, pero la interrelación entre ellos sí que ha variado y continuará haciéndolo. Esta interrelación se conoce como paradigma de programación. En el paradigma de programación procedimental @rocedural o por procedimientos) un problema se modela directamente mediante un conjunto de algoritmos. Un problema cualquiera, la nómina de una empresa o la gestión de ventas de un almacén, se representan como una serie de procedimientos que manipulan datos. Los datos se almacenan separadamente y se accede a ellos o bien mediante una posi- ción global o mediante parámetros en los procedimientos. Tres lenguajes de programación clásicos, FORTRAN, Pascal y C, han representado el arquetipo de la programación procedimental, también rela- cionada estrechamente y - veces- conocida como programación estructurada. La programación a con soporte en C++, proporciona el paradigma procedimental con un énfasis en funciones, plantillas de funciones y algoritmos genéricos. En la década de los setenta, el enfoque del diseño de programas se desplazó desde el paradigma pro- cedimental al orientado a objetos apoyado en los tipos abstractos de datos (TAD). En este paradigma un problema modela un conjunto de abstracciones de datos. En C++ estas abstracciones se conocen como clases. Las clases contienen un conjunto de instancias o ejemplares de la misma que se denominan obje- tos, de modo que un programa actúa como un conjunto de objetos que se relacionan entre sí. La gran diferencia entre ambos paradigmas reside en el hecho de que los algoritmos asociados con cada clase se conocen como interfaz pública de la clase y los datos se almacenan privadamente dentro de cada objeto de modo que el acceso a los datos está oculto al programa general y se gestionan a través de la interfaz. Así pues, en resumen, los objetivos fundamentales de esta obra son: introducción a la programación estructurada y estructuras de datos con el lenguaje estándar C de ANSVISO; otros objetivo comple- mentario es preparar al lector para su emigración a C++, para lo cual se han escrito dos apéndices com- pletos C y D que presentan una amplia referencia de palabras reservadas y una guía de sintaxis de C++ con el objeto de que el lector pueda convertir programas escritos en C a C++ (con la excepción de las propiedades de orientación a objetos que se salen fuera del ámbito de esta obra).EL LIBRO COMO HERRAMIENTA DOCENTE La experiencia de los autores desde hace muchos años con obras muy implantadas en el mundo uni- versitario como Programación en C++, Programación en Turbo Pascal (en su 3." edición), estructura de datos, Fundamentos de programación (en su 2." edición y en preparación la 3." edición) y Progra- mación en BASIC (que alcanzó tres ediciones y numerosísimas reimpresiones en la década de los ochen- ta), nos ha llevado a mantener la estructura de estas obras, actualizándola a los contenidos que se pre- vén para los estudiantes del futuro siglo XXI. Por ello en el contenido de la obra hemos tenido en cuenta no sólo las directrices de los planes de estudio españoles de ingeniería informática e ingeniería técnica informática (antiguas licenciaturas y diplomaturas en informática) y licenciaturas en ciencias de la com- putación, sino también de ingenierías tales como industriales, telecomunicaciones, agrónomos o minas, o las más recientes incorporadas, en España, como ingeniería en geodesia. Asímismo, en el diseño de la obra se han tenido en cuenta las directrices oficiales vigentes en España para la Formación Profesio- nal de Grado Superior; por ello se ha tratado de que el contenido de la obra contemple los programas propuestos para el ciclo de desarrollo de Aplicaciones Informáticas en el módulo de Programación en Lenguaje Estructurado; también se ha tratado en la medida de lo posible de que pueda servir de
  16. 16. Prólogo xix referencia al ciclo de Administración de Sistemas Informúticos en el módulo de Fundamentos de Pro- gramación. Nuestro conocimiento del mundo educativo latinoamericano nos ha llevado a pensar también en las carreras de ingeniería de sistemas computacionales y las licenciaturas en informática y en sistemas de información, carreras hermanas de las citadas anteriormente. Por todo lo anterior, el contenido del libro intenta seguir un programa estándar de un primer curso de introducción a la programación y, según situaciones, un segundo curso de programación de nivel medio en asignaturas tales como Metodología de la Programación, Fundamentos de Programación, Introducción a la Programación, ... Asimismo, se ha buscado seguir las directrices emanadas de la ACM-IEEE para los cursos CS 1 y CS8 en los planes recomendados en los Computing Curricula de 1991 y las recomendaciones de los actuales Computing Curricula 2001 en las áreas de conocimiento Programming Fundamentals [PF,10] y Programming Languages [PL, 1 11, así como las vigentes en uni- versidades latinoamericanas que conocemos, y con las que tenemos relaciones profesionales. El contenido del libro abarca los citados programas y comienza con la introducción a los algoritmos y a laprogramación, para llegar a estructuras de datos. Por esta circunstancia la estructura del curso no ha de ser secuencia1en su totalidad sino que el profesor/maestro y el alumno/lector podrán estudiar sus materias en el orden que consideren más oportuno. Ésta es la razón principal por la cual el libro se ha organizado en tres partes y en seis apéndices. Se trata de describir el paradigma más popular en el mundo de la programación: el procedimental y pre- parar al lector para su inmersión en el ya implantado paradigma orientado a objetos. Los cursos de pro- gramación en sus niveles inicial y medio están evolucionando para aprovechar las ventajas de nuevas y futuras tendencias en ingeniería de software y en diseño de lenguajes de programación, específicamente diseño y programación orientada a objetos. Algunas facultades y escuelas de ingenieros, junto con la nue- va formación profesional (ciclos formativos de nivel superior) en España y en Latinoamérica, están intro- duciendo a sus alumnos en la programación orientada a objetos, inmediatamente después del conocimiento de la programación estructurada, e incluso +n ocasiones antes-. Por esta razón, una metodología que se podría seguir sería impartir un curso defindamentos de programación seguido de estructuras de datos y luego seguir con un segundo nivel de programación avanzada que constituyen las tres partes del libro. Pensando en aquellos alumnos que deseen continuar su formación estudiando C++ se han escrito los apén- dices C y D, que les permita adaptarse fácilmente a las particularidades básicas de C++ y poder continuar sin esfuerzo la parte primera y avanzar con mayor rapidez a las siguientes partes del libro.CARACTER~STICAS IMPORTANTES DEL LIBRO Programación en C , utiliza los siguientes elementos clave para conseguir obtener el mayor rendimien- to del material incluido en sus diferentes capítulos: Contenido. Enumera los apartados descritos en el capítulo. Introducción. Abre el capítulo con una breve revisión de los puntos y objetivos más importantes que se tratarán y todo aquello que se puede esperar del mismo. Conceptos clave. Enumera los términos informáticos y de programación más notables que se tra- tarán en el capítulo. Descripción del capítulo. Explicación usual de los apartados correspondientes del capítulo. En cada capítulo se incluyen ejemplos y ejercicios resueltos. Los listados de los programas comple- tos o parciales se escriben en letra courier con la finalidad principal de que puedan ser identifica- dos fácilmente por el lector. Resumen del capítulo. Revisa los temas importantes que los estudiantes y lectores deben com- prender y recordar. Busca también ayudar a reforzar los conceptos clave que se han aprendido en el capítulo.
  17. 17. XX Prólogo Ejercicios. Al final de cada capítulo se proporciona a los lectores una lista de ejercicios sencillos de modo que le sirvan de oportunidad para que puedan medir el avance experimentado mientras leen y siguen - e n su cas- las explicaciones del profesor relativas al capítulo. Problemas. Después del apartado Ejercicios, se añaden una serie de actividades y proyectos de programación que se le proponen al lector como tarea complementaria de los ejercicios y de un nivel de dificultad algo mayor. A lo largo de todo el libro se incluyen una serie de recuadros -sombreados o n o - que ofrecen al lector consejos, advertencias y reglas de uso del lenguaje y de técnicas de programación, con la finali- dad de que puedan ir asimilando conceptos prácticos de interés que les ayuden en el aprendizaje y cons- trucción de programas eficientes y de fácil lectura. 0 Recuadro. Conceptos importantes que el lector debe considerar durante el desarrollo del capítulo. 0 Consejo. Ideas, sugerencias, recomendaciones, ... al lector, con el objetivo de obtener el mayor ren- dimiento posible del lenguaje y de la programación. Precaución. Advertencia al lector para que tenga cuidado al hacer uso de los conceptos incluidos en el recuadro adjunto. Reglas. Normas o ideas que el lector debe seguir preferentemente en el diseño y construcción de sus programas. DEL LIBROORGANIZACI~N El libro se divide en tres partes que unidas constituyen un curso completo de programación en C. Dado que el conocimiento es acumulativo, los primeros capítulos proporcionan el fundamento conceptual para la comprensión y aprendizaje de C y una guía a los estudiantes a través de ejemplos y ejercicios sencillos y los capítulos posteriores presentan de modo progresivo la programación en C en detalle, en el paradigma procedimental. Los apéndices contienen un conjunto de temas importantes que incluyen desde guías de sintaxis de ANSYISO C, hasta o una biblioteca de funciones y clases, junto con una extensa bibliografía de algoritmos, estructura de datos, programación orientada a objetos y una amplia lista de sitios de Internet (URLs) donde el lector podrá complementar, ampliar y profundizar en el mun- do de la programación y en la introducción a la ingeniería de software. PARTE I. METODOLOGÍA DE LA PROGRAMACI~N Esta parte es un primer curso de programación para alumnos principiantes en asignaturas de intro- ducción a la programación en lenguajes estructurados. Esta parte sirve tanto para cursos de C como de C++ (en este caso con la ayuda de los apéndices C y D). Esta parte comienza con una introducción a la informática y a las ciencias de la computación como a la programación. Describe los elementos básicos constitutivos de un programa y las herramientas de programación utilizadas tales como algo- ritmos, diagramas de flujo, etc. Asimismo se incluye un curso del lenguaje C y técnicas de programa- ción que deberá emplear el lector en su aprendizaje de programación. La obra se estructura en tres partes: Metodologia de programación (conceptos básicos para el análisis, diseño y construcción de programas), Fundamentos de programación en C (sintaxis, reglas y criterios de construcción del len- guaje de programación C junto con temas específicos de C como punteros, arrays, cadenas,...), Estruc- tura de datos (en esta parte se analizan los archivos y las estructuras dinámicas de datos tales como lis- tas enlazadas, pilas, colas y árboles ). Completa la obra una serie de apéndices que buscan esencialmente proporcionar información complementaria de utilidad para el lector en su período de aprendizaje en programación en C, así como un pequeño curso de C++ en forma de palabras reser- vadas y guía de referencia de sintaxis que permita al lector emigrar al lenguaje C++ facilitándole para ello las reglas y normas necesarias para convertir programas escritos en C a programas escritos en C++.

×