PDF de programación - FP01 - Computadoras y programación

Imágen de pdf FP01 - Computadoras y programación

FP01 - Computadoras y programacióngráfica de visualizaciones

Actualizado el 15 de Junio del 2021 (Publicado el 17 de Noviembre del 2018)
1.760 visualizaciones desde el 17 de Noviembre del 2018
2,9 MB
24 paginas
Creado hace 10a (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
  • Links de descarga
http://lwp-l.com/pdf14244

Comentarios de: FP01 - Computadoras y programación (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