Anda di halaman 1dari 32

FUNDAMENTOS

DE
PROGRAMACIN

Ing. Sonia Alexandra Pinzn Nuez - Ing. Roco Rodrguez Guerrero

Objetivos

1. Qu es un Computador?
2.Programas y algoritmos
3.Lenguajes de programacin
4.Java

Qu es un Computador?

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 Computador
(hardware)
Unidad aritmetica
y logica
(ALU)
Procesador
Unidad
de
(CPU)
Control (CU)

Dispositivos de entrada
teclado
ratn

Memoria Principal
(RAM)
Programa

Dispositivos de salida
pantalla
impresora

Dispositivos de
almacenamiento de datos
disco duro
lector/grabador de CD-ROM
4
lector/grabador de disquete

Representacin de los datos en el


Computador
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 en el


ordenador
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-11546
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
CPU

5 0
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
Computador :
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.
2.
3.
4.
5.

Poner la bolsa de t en la taza


Poner el agua a hervir en la tetera
Verter el agua hervida en la taza
Aadir leche
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.
2.
3.
4.

Leer el pedido
Examinar la ficha del cliente
Si el cliente es solvente, aceptar pedido
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
4. Nmero de usuarios!
22

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
programa
ejecutable

COMPILADOR
ENLAZADOR
(binder, linker)

programa
objeto
Fase de ejecucin

Fase de ejecucin

EJECUCION
24

Java
Se desarroll en los comienzos de los aos 1990
La intencin era crear una herramienta para escribir programas
cortos y efectivos
Ventajas:

Bsico, fcil de entender


Porttil: el mismo cdigo sirve para todos los sistemas operativos
Soporta interfaz grfica de usuario (GUI)
Apropiado para programas en Internet

Desventajas:
La ejecucin es ms lenta que algunos otros lenguajes

25

Java
El cdigo fuente se guarda en un archivo con extensin
.java
Un compilador traduce el cdigo fuente en cdigo de
byte, y lo guarda en un archivo con extensin .class
Las instrucciones son diferentes para diferentes
sistemas operativos
Un intrprete especfico al sistema operativo interpreta
el cdigo byte para ejecutar el programa
Un programa puede ser compuesto de varios archivos
26

La Mquina Virtual Java (JVM)


PROGRAMA FUENTE
.java
COMPILADOR JAVA

PROGRAMA OBJETO

Programa bytecode para JVM


.class

INTERPRETE (JVM)
para Windows

INTERPRETE (JVM)
para Linux

WINDOWS

LINUX

INTERPRETE (JVM)
para Macintosh
MACINTOSH

27

Ejecucin de un programa Java


crear el programa
en un editor
compilador Java

HolaMundo.java

javac HolaMundo.java

HolaMundo.class

llamar a la JVM

System.class

java HolaMundo
SISTEMA OPERATIVO
28

Componentes de un lenguaje
Sintaxis (gramtica): reglas que determinan de manera
estricta el vocabulario, orden y formato de las
instrucciones permitidas
Errores sintcticos: el programa no compila y/o no se puede
interpretar.

Semntica (sentido): el programa, al ejecutarlo, produce


el resultado correcto que uno quiere

29

Errores de programacin
Modificar o crear un
archivo .java

Compilar

errores de compilacin (sintaxis)

Editar para
corregir
errores

no hay errores
Ejecutar programa
errores de ejecucin (semntica)

Depurar
(debugging)
30

BIBLIOGRAFIA
Fundamentos de Programacin. Algoritmos y
Estructuras. Luis Joyanes Aguilar. Editorial
Mc Graw Hill.

Anda mungkin juga menyukai