Anda di halaman 1dari 24

Principios de Programacin

Clase de introduccin

1. Qu es un Cmputadora?
2. Programas y algoritmos
3. Lenguajes de programacin

2
Qu es un Cmputadora?
Un sistema digital con tecnologa
microelectrnica capaz de procesar
informacin a partir de un grupo de
instrucciones denominado programa
Componentes principales:
Procesador (CPU: Central Processing Unit)
Memoria (RAM: Random Access Memory)
Componentes auxiliares:
Disco duro
Lector CD-ROM
Teclado
Pantalla
etc. 3
Elementos de un
Cmputadora
(hardware)

Unidad aritmetica Memoria Principal


yProcesador
logica (ALU)
(RAM)
(CPU)
Unidad de
Control (CU) Programa

Dispositivos de entrada Dispositivos de salida Dispositivos de


teclado pantalla almacenamiento de datos
ratn impresora disco duro
lector/grabador de CD-ROM
4
lector/grabador de disquete
Representacin de los datos

El nico cdigo que entiende la CPU son los


bits.
Los bits son representados en circuitos
electrnicos que pueden estar en estado on
(1) u off (0)
Las instrucciones se mandan a la CPU en forma
de bytes, que son palabras de 8 bits
1 byte = 8 bits
1 kilobyte = 1 024 bytes
1 megabyte = 1 024 kilobytes = 1 048 576
bytes 5
Representacin de los datos
Base 10:
Dgitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
1111 = 1*103 + 1*102 + 1*101 + 1*100
Base 2:
Dgitos = {0, 1}
1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 =
15
Cuntos valores puede representar un byte?
1 byte = 8 bits (Ej: 01100101)
Cada bit puede representar 2 valores (0 y 1)
Un byte puede representar 28 = 256 valores
6
Representacin de textos

TEXTO: My name is Anders.


ASCII: 77-121-32-110-97-109-101-32-105-115-32-65-110-100-101-114-115-
46 7

18 bytes
Representacin de imagen
00000000
00110110
00100010
00100010
00110110
00000000
00110110
00000000

Divisin de la imagen en una matriz de pixels


(unidad de la imagen)
Cada pixel asociado con un color
8
Representacin de sonido

4 8 12 13 12 10 8

Discretizacin de la amplitud
Un byte para cada valor
9
Qu es un programa?

Un programa es una secuencia de


instrucciones a la CPU
Cada instruccin es un conjunto de bytes
Ejemplos de instrucciones:
Leer un dato del teclado
Guardar un dato en la memoria
Ejecutar una operacin sobre dos datos
Mostrar un dato en la pantalla
etc.
10
Acceso a la memoria
RAM
1 12
2 125
3 45
4 2
5 0
CPU
6 10
7 32
8 64
9 15

11
Algoritmo

Un esquema para resolver cierto tipo de


problema
Se puede traducir en un programa para
ejecutarlo en un ordenador
Pasos para la resolucin de un problema con
ordenador:
1. Diseo de un algoritmo
2. Codificacin de un programa
3. Ejecucin y validacin
12
Algoritmo
Componentes:
Entrada: datos del problema a resolver
Salida: el resultado de la resolucin
Proceso: pasos a seguir para la resolucin
Propiedades:
Preciso: orden estricto + expresiones
precisas
Definido: con la misma entrada, siempre
resulta la misma salida
Finito: nmero finito de pasos
13
Algoritmo 1

Problema: Sumar dos nmeros


Solucin:
Entrada: dos nmeros
Salida: guardar la suma en la memoria
y imprimirla por pantalla
Proceso:
1) Aadir los dos nmeros
2) Guardar el resultado en la memoria
3) Imprimir el resultado por pantalla
14
Algoritmo 2
Problema: hacer una taza de t a la inglesa
Solucin:
Entrada: agua, bolsa de t, leche, tetera,
taza, cuchara
Salida: una taza de t a la inglesa
Proceso:
1. Poner la bolsa de t en la taza
2. Poner el agua a hervir en la tetera
3. Verter el agua hervida en la taza
4. Aadir leche
5. Remover
15
Algoritmo 3
Problema: averiguar la solvencia de un
cliente que ejecuta un pedido a una fbrica.
Solucin:
Entrada: el pedido
Salida: mensaje de aceptacin o rechazo
Proceso:
1. Leer el pedido
2. Examinar la ficha del cliente
3. Si el cliente es solvente, aceptar pedido
4. En caso contrario, rechazar pedido
16
Lenguajes de programacin

Lenguajes mquina
Lenguajes ensamblador
Lenguajes de alto nivel: C, C++, Visual Basic, Java,
Pascal, Prolog, LISP,

17
Lenguajes mquina

Programas son secuencias de instrucciones


compuestas de bytes:
16 29 156 9 82 75
Ventajas:
La CPU entiende estos programas
Desventajas:
Pensar en modo de 0s y 1s es muy difcil para nosotros

18
Lenguajes ensamblador
Instrucciones compuestas de palabras cortas y
nmeros:
LOD 15 6
LOD 16 8
ADD 15 16 17
JMP 10
Ventajas:
Ms fcil a entender
Desventajas:
Todava bastante abstracto
Necesita traducir el cdigo a lenguajes mquina
19
Lenguajes de alto nivel

Diseados para ser ms parecidos a lenguaje


natural
Ventajas:
Mucho ms fcil de dar instrucciones
Desventajas:
Ms complicado convertir en lenguajes mquina

20
Lenguajes de programacin:
Por qu hay tantos?
Cmo nacen, sobreviven y caducan?
1. Diferentes dominios de aplicacin:
Programacin de sistemas rapidez y acceso
de bajo nivel: C
Inteligencia artificial computacin
simblica: LISP, Prolog
Programacin cientfica frmulas
matemticas: Fortran
Negocios transacciones: COBOL
Uso especfico: SQL (bases de datos), Perl
(manipulacin de textos), JavaScript (pginas
web), Pascal (formacin) 21
Lenguajes de programacin:
Por qu hay tantos?
Cmo nacen, sobreviven y caducan?
1. Diferentes necesidades:
Fiabilidad: Ada
Escabilidad, paradigma orientado a objeto: C
C++
Portabilidad: Java
2. Evolucin:
Mejora del hardware
Mejor comprensin de como reforzar criterios
de legibilidad, facilidad de aprender y escribir,
fiabilidad
3. Importancia de la estandardizacin 22

4. Nmero de usuarios!
Traductores de lenguaje:
intrpretes
PROGRAMA FUENTE

INTERPRETE

EJECUCION DE LA(S)
INSTRUCCION(ES)
INTERPRETADA(S)

23
Traductores de lenguaje:
compiladores
OPCION 1 OPCION 2
PROGRAMA FUENTE
Fase de compilacin

Fase de compilacin COMPILADOR


programa
objeto
programa ENLAZADOR
ejecutable (binder, linker)
Fase de ejecucin

Fase de ejecucin
EJECUCION
24

Anda mungkin juga menyukai