Actualizado el 15 de Junio del 2021 (Publicado el 17 de Noviembre del 2018)
1.963 visualizaciones desde el 17 de Noviembre del 2018
2,9 MB
24 paginas
Creado hace 11a (01/09/2013)
Fundamentos de la programación
1
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
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
Fundamentos de la programación: Computadoras y 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
Fundamentos de la programación: Computadoras y programación
Página 3
Informática (Ciencia de la computación)
Conjunto de conocimientos científicos y técnicas
que hacen posible el tratamiento automático
de la información por medio de ordenadores
Máquina electrónica, analógica o digital,
dotada de una memoriade gran capacidad
y de métodos de tratamientode la información,
capaz de resolver problemasmatemáticos y lógicos
mediante la ejecuciónde programasinformáticos
Computadora
Fundamentos de la programación: Computadoras y programación
Página 4
En todas partes y con muchas formas
Fundamentos de la programación: Computadoras y programación
Página 5
Hardware
Componentes que integran
la parte material
de una computadora
Programas, instrucciones
y reglas informáticas
para ejecutar tareas
en una computadora
Software
Fundamentos de la programación: Computadoras y programación
Página 6
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
Programar
Indicar a la computadora qué es lo que tiene que hacer
Secuencia de instrucciones
Instrucciones que entiende la computadora
Y que persiguen un objetivo: ¡resolver un problema!
Programa
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: Computadoras y programación
Página 7
Trabajo en equipo
Múltiples roles...
Gestores
Analistas
Diseñadores
Programadores
Probadores
Administradores de
sistemas
...
Parque Jurásico
Fundamentos de la programación: Computadoras y programación
Página 8
Esquema general
Dispositivos
de entrada
Teclado
Ratón
Escáner
Táctil
…
Memoria
temporal
C.P.U.
Almacenamiento
Almacenamiento
permanente
permanente
Unidad Central de Proceso
Central Processor Unit
Dispositivos
Dispositivos
de salida
de salida
Monitor
Monitor
Monitor
Impresora
Impresora
Impresora
Altavoz
Altavoz
Altavoz
…
…
…
Fundamentos de la programación: Computadoras y programación
Página 9
La arquitectura de Von Neumann
Dispositivos de E/S
C.P.U. (Procesador)
A.L.U.
Unidad Aritmético‐Lógica
Unidad de Control
Una ALU de 2 bits (Wikipedia)
Memoria
Fundamentos de la programación: Computadoras y programación
Página 10
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
La memoria
Memoria
Bus
de
datos
01
02
03
04
05
06
07
08
. . .
Dirección
Cada celda en una dirección
Celdas de 8 / 16 / 32 / 64 bits
Información volátil
1 Bit = 0 / 1
1 Byte = 8 bits = 1 carácter
1 Kilobyte (KB) = 1024 Bytes
1 Megabyte (MB) = 1024 KB
1 Gigabyte (GB) = 1024 MB
1 Terabyte (TB) = 1024 GB
1 Petabyte (PB) = 1024 TB
210 = 1024 1000
Fundamentos de la programación: Computadoras y programación
Página 11
Fundamentos de la programación: Computadoras y programación
Página 12
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
Los procesadores trabajan con ceros y unos (bits)
Unidad de memoria básica: Byte(8 bits)
(2 dígitos hexadecimales: 01011011 0101 1011 5B)
Códigos hexadecimales que representan instrucciones,
registros de la CPU, direcciones de memoria o datos
Lenguaje máquina
Lenguaje de bajo nivel
Dependiente de la máquina
Instrucción Significado
A0 2F
3E 01
A0 30
3E 02
1D
B3 31
Acceder a la celda de memoria 2F
Copiarlo el registro 1 de la ALU
Acceder a la celda de memoria 30
Copiarlo en el registro 2 de la ALU
Sumar
Guardar el resultado en la celda de memoria 31
Programación difícil
Fundamentos de la programación: Computadoras y programación
Página 13
A0 READ 3E REG 1D ADD …
Nemotécnicos para los códigos hexadecimales:
Mayor legibilidad:
Código fuente
(lenguaje ensamblador)
Programa
ensamblador
Código objeto
(lenguaje máquina)
Lenguaje de nivel medio
READ 2F
REG 01
READ 30
REG 02
ADD
WRITE 31
Fundamentos de la programación: Computadoras y programación
Página 14
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
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: Computadoras y programación
Página 15
Más cercanos a los lenguajes natural y matemático
Mayor legibilidad, mayor facilidad de codificación
Estructuración de datos / abstracción procedimental
resultado = dato1 + dato2;
Fundamentos de la programación: Computadoras y programación
Página 16
Traducción
Compiladores:
Compilan y enlazan
programas completos
Intérpretes:
Compilan, enlazan
y ejecutan instrucción
a instrucción
Código fuente
Compilador
Código objeto
Enlazador
Programa
ejecutable
#include <iostream>
using namespace std;
int main()
{
}
cout << "Hola Mundo!" << endl;
return 0;
0100010100111010011100…
Código
objeto de
biblioteca
Para una arquitectura concreta
y un sistema operativo
Fundamentos de la programación: Computadoras y programación
Página 17
FORTRAN
FORTRAN
PL/I
COBOL
COBOL
1954
1954
1959
1959
Genealogía de lenguajes
1964PL/I
1964PL/I
1964
CPL1963CPL1963CPL1963
1964
1964
1964
1964
1964
1964
Fuente:
Fuente:
http://www.levenez.com/lang/
http://www.levenez.com/lang/
1958
1958
1958
ALGOL
ALGOL
ALGOL
BASIC
BASIC
BASIC
Simula
Simula
Simula
Prolog
Prolog
1970
1970
C1971C1971C1971
1970
1970
1970
Pascal
Pascal
Pascal
1971
1971
1971
Smalltalk
Smalltalk
Smalltalk
C++1983C++1983C++1983
1975Modula
1975Modula
1975
Modula
Ada1979Ada1979Ada1979
Lisp1958Lisp1958
1975
1975
1975
Scheme
Scheme
Scheme
Logo1968
Logo1968
Logo1968
Versiones / Estándares
Java1995
Java1995
Java1995
C#2000C#2000C#2000
1991
1991
1991
Python
Python
Python
Eiffel
Eiffel
Eiffel
1986
1986
1986
1987
1987
Haskell
Haskell
1993Ruby
1993Ruby
1993
Ruby
Fundamentos de la programación: Computadoras y programación
Página 18
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
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: Computadoras y programación
Página 19
La prehistoria
El ábaco
Siglo XIX
Máquina analítica de Charles Babbage
(Wikipedia)
Lady Ada Lovelace
es considerada
la primera
programadora
Fundamentos de la programación: Computadoras y programación
Página 20
Siglo XX
1936 Máquina de Turing
1946 ENIAC: Primera computadora digital
de propósito general
1947 El transistor
1953 IBM 650: Primera
computadora a gran escala
1966 ARPANET: Origen de Internet
1967 El disquete
1970 Sistema operativo UNIX
1972 Primer virusinformático (Creeper)
Lenguaje de programación C
1974 Protocolo TCP. Primera red local
ENIAC (Wikipedia)
Fundamentos de la programación: Computadoras y programación
Página 21
1975 Se funda Microsoft
1976 Se funda Apple
1979 Juego Pacman
1981 IBM PC
Sistema operativo MS‐DOS
1983 Lenguaje de programación C++
1984 CD‐ROM
1985 Windows1.0
1990 Lenguaje HTML
1991 Sistema operativo Linux
World Wide Web
Apple II (Wikipedia)
Linux
IBM PC (Wikipedia)
Fundamentos de la programación: Computadoras y programación
Página 22
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
1992 Windows 3.1
1995 Lenguaje de programación Java
DVD
1998 Se funda Google
1999 MSN Messenger
Siglo XXI
2001 Windows XP
Mac OSX
2002 MozillaFirefox
2007 iPhone
2008 Android...
Fundamentos de la programación: Computadoras y programación
Página 23
Fundamentos de la programación: Computadoras y programación
Página 24
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
¿Qué es programar?
Entrada
Decirle a un tonto muy rápido exactamente lo que tiene que hacer
Especificar la estructuray el comportamientode un programa,
así como probarque el programa realiza su tarea
adecuadamentey con un rendimientoaceptable
Programa: Transforma entrada en salida
Salida
Programa
Algoritmo: Secuencia de pasos y operaciones que debe realizar
el programa para resolver el problema
El programa implementa el algoritmo en un lenguaje concreto
Fundamentos de la programación: Computadoras y programación
Página 25
La programación es sólo una etapa del proceso de desarrollo
Modelo de desarrollo “en cascada”:
Planificación
Recursos necesarios, presupuesto, plan, …
¿Qué? ¿Cómo?Implementación
Análisis
Análisis
Diseño
Diseño
Programación
Programación
Prueba y depuración
Prueba y depuración
Mantenimiento
Mantenimiento
Fundamentos de la programación: Computadoras y programación
Página 26
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
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: Computadoras y programación
Página 27
Bjarne Stroustrup (1983)
Hola Mundo!
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
// Muestra Hola Mundo!
return 0;
}
Fundamentos de la programación: Computadoras y programación
Página 28
Instrucciones
Datos: literales, variables, tipos
Subprogramas (funciones)
Comentarios
Directivas
...
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
Directiva
Directiva
Subprograma
Subprograma
int main()
int main()
{
{
Dato
Instrucción
Instrucción
Instrucción
Instrucción
}
}
cout << "Hola Mundo!" << endl;
cout << "Hola Mundo!" << endl;
// Muestra Hola Mundo!
// Muest
Comentarios de: FP01 - Computadoras y programación (0)
No hay comentarios