You are on page 1of 31

Algoritmos

y Programas
Fundamento de Programacin

Dato
La palabra proviene del latn datum, forma
del verbo dare dar, que significaLo que es
dado

Representacin de una informacin de


manera adecuada para su tratamiento por un
ordenador

Dato
Son representaciones
objetos,
hechos,
conocimientos.
Ejemplos
15
25 C
25 m
31-10-2005
Febrero
Mara Prez

simblicas de
instituciones,

Informacin
Los datos organizados o procesados
adquieren
significado
y
proporcionan
conocimiento
o
desencadenan
un
comportamiento sobre los hechos u objetos
que lo originaron
La informacin se resumen en :
Datos + significado

Informacin
Un grupo de datos es informacin
Datos: 19- Marzo Maria 20 ptos.
Informacin: El 19 de marzo se public en
acta la calificacin de 20 ptos para Mara
El principal objetivo de la informacin
consiste en aumentar el conocimiento o
reducir la incertidumbre.

Informacin
Ejemplos
Juan tiene 15 aos
25 C fue la temperatura de esta maana.
El edificio Robles mide 25 m de altura
La fecha de hoy es 31-10-2005
Febrero tiene 28 das y 29 si el ao es bisiesto.
Mara Prez es un nombre muy comn

Problema
Es un asunto o un conjunto de cuestiones que
se plantean para ser resueltas.
La naturaleza de los problemas vara con el
mbito o el contexto: problemas matemticos,
qumicos, filosficos, etc.
Es importante que al abordar un problema se
tenga una descripcin simple y precisa del
mismo, de lo contrario resultara complejo
modular, simular, o programar su solucin en
un ordenador.

Problema
Un programador es una persona que resuelve
problemas, y para llegar a ser un programador
eficaz se necesita aprender a resolver problemas
de un modo riguroso y sistemtico

Problema

Diseo Algoritmo
Anlisis

Programa

Problema
Algunos de los pasos para solucionar un problema son:

Anlisis: consiste en el estudio detallado del problema.


Se debe identificar los datos de entrada, de salida y la
descripcin del problema.
Diseo del algoritmo, que describe la secuencia
ordenada de pasos que conduce a la solucin de un
problema dado.
Expresar el algoritmo como un programa en un
lenguaje
de
programacin
adecuado
(Fase
de
Codificacin)
Ejecucin
computador

validacin

del

programa

por

el

Algoritmo
Etimologa:
Proviene
del
nombre
del
matemtico persa Mohammed Al-khowanzmi,
cuyo apellido traducido al latn es Algorismus
Conjunto de acciones
secuencia de operaciones
para resolver un problema

que especifican la
realizar, en orden,

Los algoritmos son independientes tanto del


lenguaje
de
programacin
como
del
computador que los ejecuta.

Algoritmo
Finito:

un algoritmo siempre debe terminar despus de un


nmero finito de pasos

Definido: si se sigue un algoritmo dos veces se debe obtener el

mismo resultado

Preciso:

indicar exactamente el orden de realizacin de


las instrucciones

Algoritmo
Ejemplo tradicional de un algoritmo: Cambiar la rueda
pinchada de un coche

Algoritmo

1. Buscar herramientas, rueda de repuesto y tringulo


de sealizacin
2. Ubicar el tringulo en el lugar adecuado
3. Ir al lugar de la rueda averiada
4. Sacar las tuercas
5. Colocar el gato
6. Levantar el coche

Algoritmo

7. Sacar la rueda
8. Colocar la rueda de Repuesto
9. Colocar las tuercas
10. Apretar las tuercas
11. Guardar las herramientas
FIN

Algoritmo
Fases de Desarrollo de un Algoritmo
Fase

Producto

Anlisis

Especificacin

Diseo

Algoritmo

Codificacin

Programa

Compilacin
Interpretacin

Prog. Ejecutable

Pruebas

Aplicacin

Algoritmo
Fase de Anlisis:
Anlisis consiste en el estudio detallado del
problema con el fin de obtener una serie de documentos
(especificacin) en los cuales quedan totalmente definido
el proceso a seguir en la automatizacin

Estudio detallado

Documentos de Especificacin

Algoritmo
Diseo:
Diseo consiste en la realizacin del algoritmo que
resuelve el problema de acuerdo a la especificacin dada
en la fase anterior. El algoritmo se representa mediante
pseudocdigo.
Algoritmo PRUEBA
Inicio
Variables
A,B,C: entero
Leer(A,B)
CA+B
Escribir (C)
Documentos de
Especificacin

Fin

Algoritmo
Codificacin:
Codificacin consiste en la traduccin del algoritmo a
un programa escrito en un lenguaje de programacin
Algoritmo Sumar
Inicio
Variables
A,B,C: entero
Leer(A,B)
CA+B
Escribir (C)
Fin

Programa escrito
en un Lenguaje de Programacin

Algoritmo
Compilacin/Interpretacin:
Compilacin/Interpretacin consiste en obtener el
programa ejecutableobjeto a partir del programa fuente.

Programa Ejecutable
Programa fuente

Algoritmo
Prueba:
Prueba consiste en determinar si el programa funciona
correctamente y realiza las operaciones que esperamos
de l.

Programa Ejecutable

Aplicacin

Lenguajes de programacin
Lenguaje:
Lenguaje conjunto de reglas y convenciones que se utilizan
para comunicar informacin.
Lenguaje de Programacin:
Programacin es un lenguaje que permite la
traduccin de un algoritmo para que sea entendible por el
computador. Son los lenguajes utilizados para escribir
programas de ordenadores.
Tipos de Lenguaje de Programacin:
Programacin
Lenguaje de Mquina
Lenguaje de Bajo Nivel (Ensamblador)
Lenguaje de Alto Nivel

Lenguaje de mquina
Son aquellos que estn escritos en lenguaje
directamente inteligibles por la mquina, ya que sus
instrucciones son cadenas binarias (0s ,1s) que
especifican una operacin.
Las instrucciones en lenguaje mquina dependen del
Hardware de la computadora, difiere de una PC a otra.
La ventaja de los lenguajes mquina es que ofrecen
mayor velocidad de ejecucin.
Existen algunas desventajas: dificultad y lentitud en la
codificacin, poca fiabilidad, los programas no son
portables.

Ejemplo Lenguaje Mquina


11001010
00010111
11001010
00010111
11001010
11001010
11001010
11001010
00010111
11001010

00010111
11110101
00010111
11110101
11110101
11001010
11110101
00010111
11110101
11110101

11110101
00101011
11110101
00101011
00101011
11110101
00101011
11110101
00101011
00101011

00101011
00101011
00101011
00101011
00101011
00101011
00101011
00101011
00101011
00101011

Lenguaje de bajo nivel


Son lenguajes que permiten escribir programas con
instrucciones similares al lenguaje humano.
Son ms fciles de utilizar que los lenguajes de
mquina, pero stos tambin dependen de la mquina en
particular.
El mejor ejemplo es el lenguaje ensamblador
Un programa escrito en lenguaje ensamblador requiere
una fase de traduccin.
Entre las desventajas tenemos: que este lenguaje
depende de la mquina y demanda una mayor exigencia
para los programadores, ya que deben conocer tanto las
tcnicas de programacin as como el interior de la
mquina

Ejemplo Lenguaje Ensamblador


; HOLA.ASM
STACK
SEGMENT STACK
; Segmento de pila
DW 64 DUP (?)
; Define espacio en la pila
STACK
ENDS

DATA
SEGMENT
; Segmento de datos
SALUDO
DB "Hola mundo!!",13,10,"$" ; Cadena
DATA
ENDS
INICIO:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET SALUDO
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE
ENDS
END INICIO

; Punto de entrada al programa


; Pone direccin en AX
; Pone la direccin en los registros
; Obtiene direccin del mensaje
; Funcin: Visualizar cadena
; Servicio: Funciones alto nivel DOS
; Funcin: Terminar
; Marca fin y define INICIO

Lenguaje de alto nivel


Son los ms utilizados por los programadores
Son independientes de la mquina
Los programas
portables

escritos

en

estos

lenguajes

son

Aumento de la ocupacin de la memoria


Las estructuras de los programas se basan en reglas
sintcticas
Ejemplos: C, C++, Pascal, Ada, Prolog, Smalltalk, Visual
Basic, Delphi, Java,...

Ejemplo Lenguaje alto nivel


#include <stdio.h>
int main(void)
{
printf("Hola, Mundo\n");
}

Traductores de Lenguaje
Traductores de Lenguajes:
Lenguajes son programas que traducen
a su vez los programas fuentes escritos en lenguajes de
alto nivel a cdigo mquina. Estos se dividen en
intrpretes y compiladores.

Intrprete
Intrprete:
Intrprete es un traductor que toma un programa fuente, lo
traduce y a continuacin lo ejecuta. (Basic, Smalltalk)

Compilacin
Compilador:
Compilador es el proceso de
traduccin de programas fuentes
a programas objetos. En este
proceso se debe utilizar como
paso intermedio un programa
llamado enlazador (linker) el
cual da como resultado un
programa en lenguaje mquina
directamente ejecutable.

Etapas de programacin
Cdigo Fuente
Modificacin del
programa fuente
SI

Errores
SI
lgicos
Tiempo de
I
Spruebas

Compilador
APLICACIN
Existen
No
BUENA PROGRAMACIN
Errores

Cdigo objeto
Linkado/
Interpretacin

N
O

Existen
Errores
No

Existen
Errores

Errores
lxicos
Tiempo de
compilacin

Pruebas

Programa
Ejecutable
Errores de
ejecucin
Tiempo de
ejecucin

You might also like