PDF de programación - Fundamentos de la programación

Imágen de pdf Fundamentos de la programación

Fundamentos de la programacióngráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 19 de Febrero del 2018)
383 visualizaciones desde el 19 de Febrero del 2018
39,5 MB
568 paginas
Creado hace 6a (01/09/2013)
Facultad de Informática 
Universidad Complutense 

Apuntes de clase de la asignatura 

Fundamentos de la programación 

1º curso 

Grado en Ingeniería en Informática 
Grado en Ingeniería del Software 

Grado en Ingeniería de Computadores 

2013‐2014 

Luis Hernández Yáñez 

 

 

Licencia Creative Commons: 
Reconocimiento, No comercial y Compartir igual. 
http://creativecommons.org/licenses/by‐nc‐sa/3.0/ 














 



 
 

 

Esta publicación contiene los apuntes de clase de la asignatura 

Fundamentos de la programación, asignatura de 1º curso de los grados 

que se imparten en la Facultad de Informática de la UCM. 

 

Durante los tres primeros cursos en los que se ha impartido la asignatura, 
este material ha sido sometido a continuas revisiones y contribuciones 

por parte de los profesores que han impartido los distintos grupos 

de la asignatura. Aunque el trabajo ha quedado bastante consolidado, 

estoy seguro de que todavía contiene muchas erratas. Si encuentras alguna, 

no dudes, por favor, en hacérmelo saber y conseguir así 

que la siguiente versión esté mejor depurada. 

 

Quiero agradecer a todos los profesores que han impartido la asignatura 
su contribución en el desarrollo del material, destacando especialmente 

la labor de Pablo Moreno Ger y Carlos Cervigón Rückauer. 

 

Luis Hernández Yáñez 

Profesor de la Facultad de Informática de la UCM 

 
 
 



Fundamentos de la programación

TC

Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Facultad de Informática
Luis Hernández Yáñez
Universidad Complutense

Tema 1 Computadoras y programación
Tema 2 Tipos e instrucciones I

Anexo: Detalles técnicos de los tipos

Tema 3 Tipos e instrucciones II

Anexo I: El operador ternario ?
Anexo II: Ejemplos de secuencias

Tema 4 La abstracción procedimental

Anexo: Más sobre subprogramas

Tema 5 Tipos de datos estructurados
Anexo: Cadenas al estilo de C

Tema 6 Recorrido y búsqueda en arrays
Tema 7 Algoritmos de ordenación

Anexo: Más sobre ordenación

Tema 8 Programación modular

Anexo: Ejemplo de modularización

Tema 9 Punteros y memoria dinámica

Anexo: Punteros y memoria dinámica

Tema 10 Introducción a la recursión
Apéndice: Archivos binarios

Fundamentos de la programación

1
48
212
225
398
402
425
496
512
580
588
649
742
755
832
847
938
981
1049

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Informática, computadoras y programación
Lenguaje máquina y ensamblador
Lenguajes de programación de alto nivel
Un poco de historia
Programación e Ingeniería del Software
El lenguaje de programación C++
Sintaxis de los lenguajes de programación 
Un primer programa en C++
Herramientas de desarrollo
C++: Un mejor C

3
12
15
19
24
27
30
35
39
45

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Fundamentos de la programación

Un ejemplo de programación
50
El primer programa en C++
64
Las líneas de código del programa
80
Cálculos en los programas
86
Variables
92
Expresiones
98
Lectura de datos desde el teclado 108
119
Resolución de problemas
Los datos de los programas
127
129
Identificadores
133
Tipos de datos
Declaración y uso de variables
142
147
Instrucciones de asignación
152
Operadores
160
Más sobre expresiones
Constantes
167
La biblioteca cmath
171
Operaciones con caracteres
174

Fundamentos de la programación

Operadores relacionales
Toma de decisiones (if)
Bloques de código
Bucles (while)
Entrada/salida por consola
Funciones definidas

por el programador

177
180
183
186
190

199

int
float
Notación científica
double
char
bool
string
Literales con especificación de tipo

214
216
217
218
220
221
222
223

Fundamentos de la programación

Tipos, valores y variables
Conversión de tipos
Tipos declarados por el usuario
Tipos enumerados
Entrada/Salida

con archivos de texto
Lectura de archivos de texto
Escritura en archivos de texto

Flujo de ejecución
Selección simple
Operadores lógicos
Anidamiento de if
Condiciones
Selección múltiple

La escala if‐else‐if
La instrucción switch

Repetición

El bucle while

El bucle for
Bucles anidados
Ámbito y visibilidad
Secuencias

Recorrido de secuencias
Secuencias calculadas
Búsqueda en secuencias

Arrays de datos simples

Uso de variables arrays
Recorrido de arrays
Búsqueda en arrays
Arrays no completos

321
331
339
349
355
363
370
374
379
382
387
393

227
232
236
238

248
253
266
272
276
282
286
290
293
295
302
313
316

Fundamentos de la programación

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

El operador ternario ?

Recorridos

Un aparcamiento
¿Paréntesis bien emparejados?
¿Dos secuencias iguales?
Números primos menores que N

Búsquedas

Búsqueda de un número en un archivo
Búsquedas en secuencias ordenadas

399

404
405
409
412
413
417
419
420

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Fundamentos de la programación

Diseño descendente: Tareas y subtareas 
Subprogramas
Subprogramas y datos
Parámetros
Argumentos
Resultado de la función
Prototipos
Ejemplos completos
Funciones de operador
Diseño descendente (un ejemplo)
Precondiciones y postcondiciones

427
434
441
446
451
467
473
475
477
480
490

Fundamentos de la programación

Archivos como parámetros
La función main()
Argumentos implícitos
Sobrecarga de subprogramas

Fundamentos de la programación: La abstracción procedimental (Anexo)

Tipos de datos
Arrays de nuevo
Arrays y bucles for
Más sobre arrays

Inicialización de arrays
Enumerados como índices
Paso de arrays a subprogramas

Implementación de listas
Cadenas de caracteres
Cadenas de caracteres de tipo string

Entrada/salida con string
Operaciones con string

Estructuras

Estructuras dentro de estructuras
Arrays de estructuras
Arrays dentro de estructuras

Listas de longitud variable
Un ejemplo completo
El bucle do..while

Fundamentos de la programación

498
501
504
508

514
517
520
522
523
524
525
528
531
535
539
541
543
549
550
551
552
558
562

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Cadenas al estilo de C
E/S con cadenas al estilo de C
La biblioteca cstring
Ejemplo

Fundamentos de la programación

Recorrido de arrays

Arrays completos
Arrays no completos con centinela
Arrays no completos con contador
Ejemplos
Generación de números aleatorios

Búsquedas en arrays
Arrays completos
Arrays no completos con centinela
Arrays no completos con contador
Ejemplo

Recorridos y búsquedas en cadenas
Más ejemplos de manejo de arrays
Arrays multidimensionales

Inicialización de arrays multidimensionales
Recorrido de un array bidimensional
Recorrido de un array N‐dimensional
Búsqueda en un array multidimensional

Fundamentos de la programación

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

582
583
584
585

590
593
594
595
597
601
604
606
607
608
610
614
617
630
638
641
644
647

con intercambios
Claves de ordenación
Estabilidad de la ordenación
Complejidad y eficiencia

Ordenaciones naturales

Algoritmos de ordenación
Algoritmo de ordenación por inserción
Ordenación de arrays por inserción
Algoritmo de ordenación por inserción

Ordenación por selección directa
Método de la burbuja
Listas ordenadas
Búsquedas en listas ordenadas
Búsqueda binaria

651
654
665

672
680
688
692
694
701
716
722
729
731

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Fundamentos de la programación

Ordenación por intercambio
Mezcla de dos listas ordenadas

744
747

Fundamentos de la programación

Programas multiarchivo y compilación separada 
Interfaz frente a implementación
Uso de módulos de biblioteca
Ejemplo: Gestión de una lista ordenada I
Compilación de programas multiarchivo
El preprocesador
Cada cosa en su módulo
Ejemplo: Gestión de una lista ordenada II
El problema de las inclusiones múltiples

Compilación condicional
Protección frente a inclusiones múltiples

Ejemplo: Gestión de una lista ordenada III
Implementaciones alternativas
Espacios de nombres

Implementaciones alternativas
Calidad y reutilización del software

757
762
768
770
778
780
782
784
789
794
795
796
804
808
817
827

Fundamentos de la programación

Modularización de  un programa

833

Fundamentos de la programación

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

849
854
864
866
867
868
873
875
877
879
883
886
891
895
907
911
916
928

940
953
962
964

Direcciones de memoria y punteros
Operadores de punteros
Punteros y direcciones válidas
Punteros no inicializados
Un valor seguro: NULL

Copia y comparación de punteros
Tipos puntero

Punteros a estructuras
Punteros a constantes y punteros constantes

Punteros y paso de parámetros
Punteros y arrays
Memoria y datos del programa
Memoria dinámica
Punteros y datos dinámicos
Gestión de la memoria
Errores comunes
Arrays de datos dinámicos
Arrays dinámicos

Fundamentos de la programación

Aritmética de punteros
Recorrido de arrays con punteros
Referencias
Listas enlazadas

Fundamentos de la programación

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Concepto de recursión
Algoritmos recursivos

Funciones recursivas
Diseño de funciones recursivas

Modelo de ejecución
La pila del sistema
La pila y las llamadas a función
Ejecución de la función factorial()

Tipos de recursión

Recursión simple
Recursión múltiple
Recursión anidada
Recursión cruzada

Código del subprograma recursivo
Parámetros y recursión
Ejemplos de algoritmos recursivos

Búsqueda binaria
Torres de Hanoi

Recursión frente a iteración
Estructuras de datos recursivas

983
986
987
989
990
992
994
1005
1018
1019
1020
1022
1026
1027
1032
1034
1035
1038
1043
1045

Fundamentos de la programación

Flujos
Archivos binarios
Tamaño de los datos: El operador sizeof()
Apertura de archivos binarios
Lectura de archivos binarios (acceso secuencial)
Escritura en archivos binarios (acceso secuencial)
Acceso directo o aleatorio
Ejemplos de uso de archivos binarios

Ordenaci
  • Links de descarga
http://lwp-l.com/pdf8878

Comentarios de: Fundamentos de la programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad