PDF de programación - Introducción a C - Capítulo 1

Imágen de pdf Introducción a C - Capítulo 1

Introducción a C - Capítulo 1gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 23 de Enero del 2018)
520 visualizaciones desde el 23 de Enero del 2018
2,5 MB
373 paginas
Creado hace 16a (16/02/2008)
´Indice general

1. Introducci´on a C

1
3
1.1. C es un lenguaje compilado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Traduciendo de Python a C: una gu´ıa r´apida . . . . . . . . . . . . . . . . . . . .
5
1.3. Estructura t´ıpica de un programa C . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4. C es un lenguaje de formato libre . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5. Hay dos tipos de comentario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.6. Valores literales en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.6.1. Enteros
1.6.2. Flotantes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.6.3. Cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.7. C tiene un rico juego de tipos escalares . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7.1. El tipo int
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7.2. El tipo unsigned int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7.3. El tipo float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7.4. El tipo char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7.5. El tipo unsigned char . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8. Se debe declarar el tipo de toda variable antes de usarla . . . . . . . . . . . . . . 24
1.8.1.
Identificadores v´alidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8.2. Sentencias de declaraci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8.3. Declaraci´on con inicializaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.9. Salida por pantalla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.9.1. Marcas de formato para la impresi´on de valores con printf . . . . . . . . . 27
1.10. Variables y direcciones de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.11. Entrada por teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.12. Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.13. Conversi´on impl´ıcita y expl´ıcita de tipos . . . . . . . . . . . . . . . . . . . . . . . 41
1.14. Las directivas y el preprocesador . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.15. Constantes
1.15.1. Definidas con la directiva define
. . . . . . . . . . . . . . . . . . . . . . . 44
1.15.2. Definidas con el adjetivo const . . . . . . . . . . . . . . . . . . . . . . . . 44
1.15.3. Con tipos enumerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1.16. Las bibliotecas (m´odulos) se importan con #include . . . . . . . . . . . . . . . . 47
1.16.1. La biblioteca matem´atica . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.17.1. Estructuras de control condicionales . . . . . . . . . . . . . . . . . . . . . 49
1.17.2. Estructuras de control iterativas
. . . . . . . . . . . . . . . . . . . . . . . 54
1.17.3. Sentencias para alterar el flujo iterativo . . . . . . . . . . . . . . . . . . . 59

1.17. Estructuras de control

2. Estructuras de datos en C: vectores est´aticos y registros

63
2.1. Vectores est´aticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.1.1. Declaraci´on de vectores
2.1.2.
Inicializaci´on de los vectores . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.1.3. Un programa de ejemplo: la criba de Erat´ostenes . . . . . . . . . . . . . . 65
2.1.4. Otro programa de ejemplo: estad´ısticas
. . . . . . . . . . . . . . . . . . . 68
2.1.5. Otro programa de ejemplo: una calculadora para polinomios . . . . . . . . 77
2.1.6. Disposici´on de los vectores en memoria . . . . . . . . . . . . . . . . . . . . 83
2.1.7. Algunos problemas de C: accesos il´ıcitos a memoria
. . . . . . . . . . . . 87

Introducci´on a la Programaci´on con C

i

´INDICE GENERAL

2.1.8. Asignaci´on y copia de vectores
2.1.9. Comparaci´on de vectores

. . . . . . . . . . . . . . . . . . . . . . . . 88
. . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.2. Cadenas est´aticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.2.1. Declaraci´on de cadenas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.2.2. Representaci´on de las cadenas en memoria . . . . . . . . . . . . . . . . . . 91
2.2.3. Entrada/salida de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.2.4. Asignaci´on y copia de cadenas
. . . . . . . . . . . . . . . . . . . . . . . . 97
2.2.5. Longitud de una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.2.6. Concatenaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.2.7. Comparaci´on de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.2.8. Funciones ´utiles para manejar caracteres . . . . . . . . . . . . . . . . . . . 107
2.2.9. Escritura en cadenas: sprintf
. . . . . . . . . . . . . . . . . . . . . . . . . 108
2.2.10. Un programa de ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.3. Vectores multidimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.3.1. Sobre la disposici´on de los vectores multidimensionales en memoria . . . . 110
2.3.2. Un ejemplo: c´alculo matricial
. . . . . . . . . . . . . . . . . . . . . . . . . 111
2.3.3. Vectores de cadenas, matrices de caracteres . . . . . . . . . . . . . . . . . 117
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.4. Registros

2.4.1. Un ejemplo: registros para almacenar vectores de talla variable (pero

acotada) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
2.4.2. Un ejemplo: rectas de regresi´on para una serie de puntos en el plano . . . 129
2.4.3. Otro ejemplo: gesti´on de una coleci´on de CDs . . . . . . . . . . . . . . . . 132
2.5. Definici´on de nuevos tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 136

3. Funciones

139
3.1. Definici´on de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
3.2. Variables locales y globales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.2.1. Variables locales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.2.2. Variables globales
3.3. Funciones sin par´ametros
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
3.4. Procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
3.5. Paso de par´ametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.5.1. Par´ametros escalares: paso por valor . . . . . . . . . . . . . . . . . . . . . 149
3.5.2. Organizaci´on de la memoria: la pila de llamadas a funci´on . . . . . . . . . 149
3.5.3. Vectores de longitud variable . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.5.4. Par´ametros vectoriales: paso por referencia . . . . . . . . . . . . . . . . . 155
3.5.5. Par´ametros escalares: paso por referencia mediante punteros . . . . . . . . 161
3.5.6. Paso de registros a funciones
. . . . . . . . . . . . . . . . . . . . . . . . . 166
3.5.7. Paso de matrices y otros vectores multidimensionales . . . . . . . . . . . . 169
3.5.8. Tipos de retorno v´alidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.5.9. Un ejercicio pr´actico: miniGalaxis
. . . . . . . . . . . . . . . . . . . . . . 173
3.6. Recursi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
3.6.1. Un m´etodo recursivo de ordenaci´on: mergesort
. . . . . . . . . . . . . . . 191
3.6.2. Recursi´on indirecta y declaraci´on anticipada . . . . . . . . . . . . . . . . . 197
3.7. Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
3.8. Otras cuestiones acerca de las funciones . . . . . . . . . . . . . . . . . . . . . . . 201
3.8.1. Funciones inline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
3.8.2. Variables locales static . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
3.8.3. Paso de funciones como par´ametros
. . . . . . . . . . . . . . . . . . . . . 203
3.9. M´odulos, bibliotecas y unidades de compilaci´on . . . . . . . . . . . . . . . . . . . 205
3.9.1. Declaraci´on de prototipos en cabeceras . . . . . . . . . . . . . . . . . . . . 207
3.9.2. Declaraci´on de variables en cabeceras
. . . . . . . . . . . . . . . . . . . . 209
3.9.3. Declaraci´on de registros en cabeceras . . . . . . . . . . . . . . . . . . . . . 210

ii

Introducci´on a la Programaci´on con C

CC 2003, 2008 Andr´es Marzal e Isabel Gracia

0 ´INDICE GENERAL

4. Estructuras de datos: memoria din´amica

4.5.

4.4. Redimensionamiento de la reserva de memoria

213
4.1. Vectores din´amicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
4.1.1. malloc, free y NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
4.1.2. Algunos ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
4.1.3. Cadenas din´amicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
4.2. Matrices din´amicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
4.2.1. Gesti´on de memoria para matrices din´amicas . . . . . . . . . . . . . . . . 230
4.2.2. Definici´on de un tipo ((matriz din´amica)) y de funciones para su gesti´on . 234
4.3. M´as all´a de las matrices din´amicas . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.3.1. Vectores de vectores de tallas arbitrarias . . . . . . . . . . .
  • Links de descarga
http://lwp-l.com/pdf8434

Comentarios de: Introducción a C - Capítulo 1 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad