Publicado el 26 de Agosto del 2018
2.961 visualizaciones desde el 26 de Agosto del 2018
19,0 MB
558 paginas
Creado hace 20a (27/04/2004)
PROGRAMACIÑ EN c
Metodología, algoritmos
y estructura de datos
.
.
,>'
as
'.
.
L
Ignacio Zahonero Martinez
Departamento 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ÉXICO
NUEVA 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
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 . . . . .
1.1. ¿Qué es una computadora? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..
1.2. Organización física de una computadora (hardware) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Dispositivos de EntradafSalida (E/S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2. La memoria central (interna) .
. . . . . . . . .
1.2.3. La Unidad Central de Proceso (UCP) . . . . .
1.2.4. El microprocesador . . . . . . . . . . . . . . . . . . .
1.2.5. Memoria auxiliar (externa) . . . . . . . . . . . . .
1.2.6. Proceso de ejecución de un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.7. Comunicaciones: módems, redes, telefonía RDSI y ADSL . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.8. La computadora personal multimedia ideal para 1
1.3. Concepto de algoritmo . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1. Características de los algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. El software (los programas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5. Los lenguajes de programación
1.5.4. Lenguajes de alto nivel
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
..............................
. . . . . . . . .
1.6. El lenguaje C: historia y características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
......................
1.6.1. Ventajas de C
1.6.2. Características
1.6.3. Versiones actu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Capítulo 2. Fundamentos de programación . . . . .
2.1. Fases en la resolución de problemas .
. .
2.1.1. Análisis del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. Diseño del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3. Herramientas de la programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4. Codificación de un programa . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
......................
P
2
4
4
5
6
9
10
10
12
12
13
15
16
17
19
20
20
21
22
22
23
23
23
25
25
26
26
27
28
30
31
32
33
36
V
vi
Contenido
2.1.7. Documentación y
2.2. Programación modular . . . . .
2.3. Programación estructura
2.3.1. Recursos abstractos . . . . . . . . . . .
. . . . . . . . . .
tructurada: estru
. . . . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . _ . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . _ . . .
. . . . . . . . . . . . . . . . .
. . . . . . _ . . . . . . . . . .
2.7. Métodos formales de verificación de programas
. . . _ . . . . . . . . . . . . .
. . . . . . . . . . .
2.6.8. Iteración y e
2.7.1. Aserciones
. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
37
38
38
49
40
40
40
41
42
42
43
52
53
54
55
55
56
56
57
57
57
58
58
59
60
60
62
63
64
65
65
66
. . . . . . . _ . . . . .
. . . . . . . . . . . . .
. . . . . . . .
2.8. Factores en la calidad del software . . . .
PARTE II. FUNDAMENTOS DE PROGRAMACIÑ EN c
Capí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 . . . . . . . . . . . . . . . .
3.3. El proceso de ejecución de
3.4. Depuración de un program
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . _ . . . . . . . . . . . . . . . 82
3.4.2. Errores lógicos . . .
3.4.5. Errores en tiempo de
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . .
90
90
90
?
Contenido
vi¡
3.6.5. Signos de puntuación y separadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.6. Archivos de cabecera
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . . . .
. . . . . . . . . . . . . . .
3.7. Tipos de datos en C . .
3.7.1. Enteros(int) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.2. Tipos de coma flotante ( f 1 oat
3.7.3. Caracteres (char) . . . . . . . . . . . . . . . .
3.8. El tipo de dato LÓGICO . . . . . . . . . .
3.8.1. Escritura de valores lógicos
. . . . . . .
92
92
92
93
97
98
101
103
105
105
106
106
106
107
114
1 16
116
117
119
120
136
136
137
3.9. Constantes
. . . . . . . . . . . . . . .
. . . . . . . . . . . . .
es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.2. Constantes definidas (simbólicas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.3. Constantes enumeradas . .
3.9.4. Constantes declaradas con
. . . . . . . . .
latile.. . . . .
. . . . . . . .
3.10. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.,
3.10.1. Declaracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.2. Inicialización de variables
. . . .
3.10.3. Declaración o definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.11. Duracióndeunavariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.11.1. Variables locales .
. . . .
. . . . . .
3.11.2. Variables globales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.11.3. Variables dinámicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . .
. .
3.12. Entradas y salidas
. . . . . . . .
3.12.1. Salida . . .
. . . . . . . .
3.12.2. Entrada . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12.3. Salida de cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12.4. Entrada de cadenas de caracteres . . .
. . . . .
. . . .
3.13. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.14. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
111
112
. . . . . . . 112
113
113
Capítulo 4. Operadores y expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1. Operadores y expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Operador de asignación . .
4.3. Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
.
. . . .
.
.
.
. . . . .
4.3.1. Asociatividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2. Uso de paréntesis
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Operadores de increment
n y decrementación
4.5. Operadores relacionales . . . . . . . . . . . . . . . . . . . .
4.6. Operadores lógicos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.1. Evaluación en cortocircuito . . . . . .
4.6.2. Asignaciones booleatias (lógicas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. .
Comentarios de: Programación en C, Metodologia, Algoritmos y estructura de datos (0)
No hay comentarios