Publicado el 26 de Enero del 2019
4.602 visualizaciones desde el 26 de Enero del 2019
5,8 MB
974 paginas
Creado hace 14a (01/05/2010)
PROGRAMAR 1
/
\^j-A |_
S E G U N .
D A E D I C I Ó N
H. M. Deitei
Universidad
Nova
Deitei y asociados
P. J. Deitei
Deitei y asociados
TRADUCCION:
Gabriel Sánchez García
Ingeniero Mecánico
Electricista
UNAM
REVISION TECNICA:
Raymundo Hugo Rangel
Prof. Facultad de Ingeniería
UNAM
UNIVERSIDAD DE LA REPUBLICA
F A C U L T A D D E I N G E N I E R I A
DPTO. DE DOCUMENTACION Y BIBLIOTECA
BIBLIOTECA CENTRAL
Ing. Edo. García tíe ZüRiga
MONTEVIDEO - URUGUAY
No. de Entrada
5 r?
0 5 2 7 4 9
PRENTIC
E
MÉXICO • NUEVA YORK • BOGOTÁ • LONDRES • MADRID
HALL
MUNICH • NUEVA DELHI • PARÍS • RÍO DE JANEIRO
SINGAPUR • SYDNEY • TOKIO • TORONTO • ZÜRICH
EDICION ESPAÑOL:
SUPERVISOR DE
TRADUCCION:
JOAQUIN RAMOS SANTALLA
SUPERVISION PRODUCCION:
JULIAN ESCAMILLA LIQUID ANO
EDICION EN INGLES:
Acquisitions Editor: Marcia Horton
Production Editor: Joe Scordato
Copy Editor: Michael Schiaparelli
Chapter Opener and Cover Designer: Jeannette Jacobs
Buyer: Dave Dickey
Supplements Editor: Alice Dworkin
Editorial Assistant: Dolores Mars
DEUEL: COMO PROGRAMAR EN C/C+ + 2/ED ___________
Traducido el inglés de la obra: C How to Programm 2/Ed
Derechos reservados © 1995 respecto a la primera edición en español publicada por PRENTICE HALL
HISPANOAMERICANA, S.A.
Calle 4 Na 25-2a piso Fracc. Ind. Alce Blanco,
Naucalpan de Juárez, Edo. de México,
CP. 53370
Miembro de la Cámara Nacional de la Industria Editorial, Reg. Num. 1524
Original English Language Edition Publisher by Prentice Hall Inc.
Copyright © 1994
All Rights Reserved
ISBN 0-13-226119-7 n
IMPRESO EN MEXICO/PRINTED IN MEXICO
PROGRAMAS EDUCATIVOS, S. A. DE C.V.
S
E
P
CALZ CHABACANO No. 65, LOCAL A
COL, ASTURIAS.DELEG, CUAUHTEMOC,
CP 06850, MÉXICO, D F.
EMPRESA CERTIFICADA POR EL
INSTITUTO MEXICANO DE NORMALIZACIÓN
Y CERTIFICACIÓN A C , BAJO LA NORMA
ISO-9002:1994/NMX-CC-OW 1995
CON EL No DE REGISTRO RSC-048
□
50
00
□
PARA
El Dr. Stephen Feldman, Presidente de la Universidad Nova y el
Dr. Edward Lieblein, Rector del Centro para las Ciencias de la
Computación y la Información, de la Universidad Nova.
Por su visión en relación a una institución científica para la educación
avanzada, las ciencias de la computación y la investigación en el sur
de Florida, y por sus incesantes esfuerzos por cristalizar esa visión en
esta joven universidad.
H. M. D.
PARA
Mis profesores en Lawrenceville y el M.I. T.
Por infundir en miel amor hacia el aprendizaje y por escribir.
P.J.D.
Contenido
Prefacio
Capítulo 1 Conceptos de computación
1.1
1.2
1.3
1.4
Introducción
¿Qué es una computadora?
Organización de la computadora
Procesamiento por lotes, programación múltiple y
tiempo compartido
1.5
Computación personal, computación distribuida y
computación cliente/servidor
1.6
Lenguajes máquina, lenguajes ensambladores y
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
lenguajes de alto nivel
La historia de C
La biblioteca estándar de C
Otros lenguajes de alto nivel
Programación estructurada
Los fundamentos del entorno de C
Notas generales sobre C y este libro
C concurrente
Programación orientada a objetos y C++
Resumen • Terminología 'Prácticas sanas de programación •
Sugerencias de portabilidad • Sugerencias de rendimiento •
Ejercicios de autoevaluación • Respuestas a los ejercicios de
autoevaluación • Ejercicios • Lecturas recomendadas
Capítulo 2 Introducción a la programación en C
2.1
2.2
2.3
2.4
2.5
2.6
Introducción
Un programa simple en C: imprimir una línea de texto
Otro programa simple en C: sumar dos enteros
Conceptos de memoria
Aritmética en C
Toma de decisiones: operadores de igualdad y relaciónales
xxxi
1
2
4
4
5
6
6
7
8
9
9
10
10
12
14
23
24
24
28
33
34
37
9 CÓMO PROGRAMAR KN CC++
CONTENIDO
Resumen • Terminología • Errores comunes de programación •
Prácticas sanas de programación • Sugerencia de portabilidad •
Ejercicios de autoevaluación * Respuestas a los ejercicios de
autoevaluación * Ejercicios
Capítulo 3 Desarrollo de programas estructurados 55
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
Introducción 56
Algoritmos 56
Pseudocódigo 57
Estructuras de control 58
La estructura de selección If 60
La estructura de selección If/Else 61
La estructura de repetición While 65
Cómo fonnular algoritmos: Estudio de caso 1 (repetición
controlada por contador) 67
Cómo formular algoritmos con refinamiento descendente paso a
paso: Estudio de caso 2 (repetición controlada por centinela) 69
Cómo formular algoritmos con refinamiento descendente paso a
paso: Estudio de caso 3 (estructuras de control anidadas) 74
Operadores de asignación 77
Operadores increméntales y decrementales 79
Resumen • Terminología • Errores comunes de programación •
Prácticas sanas de programación • Sugerencias de rendimiento •
Observaciones de ingeniería de software • Ejercicios de
autoevaluación • Respuestas a los ejercicios de autoevaluación •
Ejercicios
Capítulo 4 Control de programa 101
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
Introducción 102
Lo esencial de la repetición 102
Repetición controlada por contador 103
La estructura de repetición for 105
La estructura for: Notas y observaciones 108
Ejemplos utilizando la estructura for 108
La estructura de selección múltiple Switch 112
La estructura de repetición do/wh¡le 118
Los enunciados break y continue 120
Operadores lógicos 122
Confusión entre los operadores de igualdad (==) y de
asignación (=)
Resumen de programación estructurada 126
Resumen • Terminología * Errores comunes de programación *
Prácticas sanas de programación • Sugerencias de rendimiento •
Sugerencias de portabilidad • Observaciones de ingeniería de
software • Ejercicios de autoevaluación • Respuestas a los ejercicios
de autoevaluación ' Ejercicios
i 24
CONTENIDO
CÓMO PROGRAMAR EN CC++ 10
Capítulo 5 Funciones
Funciones matemáticas de biblioteca
Funciones
Introducción
5.1
5.2 Módulos de programa en C
5.3
5.4
5.5
5.6
5.7
5.8
Definiciones de función
Prototipo de funciones
Archivos de cabecera
Cómo llamar funciones: llamada por valor y llamada por
5.9
5.10
5.11
5.12
5.13
5.14
5.15
referencia
Generación de números aleatorios
Ejemplo: un juego de azar
Clases de almacenamiento
Reglas de alcance
Recursion
Ejemplo utilizando recursion: la serie Fibonacci
Recursion en comparación con iteración
Resumen • Terminologia • Errores comunes de programación •
Prácticas sanas de programación • Sugerencias de portabilidad •
Sugerencias de rendimiento • Observaciones de ingeniería de
software * Ejercicios de autoevaluación • Respuestas a los ejercicios
de autoevaluación 'Ejercicios
Capítulo 6 Arreglos
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
Introducción
Arreglos
Cómo declarar arreglos
Ejemplos utilizando arreglos
Cómo pasar arreglos a funciones
Cómo ordenar arreglos
Estudio de caso: Cómo calcular el promedio, la mediana y el
modo utilizando arreglos
Búsqueda en arreglos
Arreglos con múltiples subíndices
Resumen • Terminología • Errores comunes de programación •
Prácticas sanas de programación • Sugerencias de rendimiento •
Observaciones de ingeniería de software • Ejercicios de
autoevaluación * Respuestas a los ejercicios de autoevaluación •
Ejercicios • Ejercicios de recursión
Capítulo 7 Punteros
7.1
7.2
7.3
7.4
7.5
Introducción
Declaraciones e inicialización de variables de apuntadores
Operadores de apuntador
Cómo llamar funciones por referencia
Cómo usar el calificador const con apuntadores
V-*
*
O
147
148
148
149
150
152
155
159
160
160
165
168
170
171
176
180
203
204
204
206
207
217
223
225
228
231
259
260
260
261
263
268
11 CÓMO PROGRAMAR EN CC++
CONTENIDO
7.6
7.7
7.8
7.9
7.10
7.11
Ordenamiento de tipo burbuja utilizando llamadas por referencia 272
Expresiones de punteros y aritmética de apuntadores 277
Relación entre apuntadores y arreglos 281
Arreglos de apuntadores 284
Estudio de caso: simulación de barajar y repartir cartas 286
apuntadores a funciones 291
Resumen • Terminología • Errores comunes de programación •
Prácticas sanas de programación • Sugerencias de rendimiento •
Sugerencias de portabilidad • Ejercicios de autoevaluación •
Respuestas a los ejercicios de autoevaluación • Ejercicios • Sección
especial: cómo construir su propia computadora
Capítulo 8
8.1
8.2
8.3
8.4
8.5
8.6
Caracteres y cadenas
Introducción
Fundamentos de cadenas y caracteres
Biblioteca de manejo de caracteres
Funciones de conversión de cadenas
Funciones de la biblioteca estándar de entradas/salidas
Funciones de manipulación de cadenas de la biblioteca
de manejo de cadenas
8.7
8.8
8.9
Funciones de comparación de la biblioteca de manejo de cadenas
Funciones de búsqueda de la biblioteca de manejo de cadenas
Funciones de memoria de la biblioteca de manejo de cadenas
8.10 Otras funciones de la biblioteca de manejo de cadenas
Resumen* Terminología • Errores comunes de programación •
Prácticas sanas de programación • Sugerencias de portabilidad •
Ejercicios de autoevaluación • Respuestas a los ejercicios de
autoevaluación * Ejercicios • Sección especial: Un compendio de
ejercicios más avanzados de manipulación de cadenas
Capítulo 9 Entrada/Salida con formato
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
Introducción
Flujos
Salida con formato mediante printf
Cómo imprimir enteros
Cómo imprimir números de punto flotante
Cómo imprimir cadenas y caracteres
Otros especificad
Comentarios de: Como programar en C/C++ (0)
No hay comentarios