You are on page 1of 22

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

Algoritmo
Etimologa: Proviene del nombre del matemtico persa Mohammed Al-khowanzmi, cuyo apellido traducido al latn es Algorismus

Es un mtodo para la resolucin de problemas. Es un conjunto de pasos a seguir para la solucin a un problema. Es una serie finita de instrucciones para realizar una tarea. Formalmente: Es un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver

Caractersticas del Algoritmo


Finito: Un algoritmo siempre debe tener

un nmero finito de pasos

Definido: Si se sigue un algoritmo dos veces

se debe resultado

obtener

el

mismo

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

Fases

Anlisis

Diseo

Codificacin

Compilacin Interpretacin

Pruebas

Fase de Anlisis: El primer paso a seguir para encontrar la solucin a un problema computable es el anlisis del problema. En el anlisis del problema se requiere del mximo de creatividad e imaginacin. Debido a que se busca una solucin se debe examinar cuidadosamente el problema a fin de identificar que tipo de informacin es necesaria producir. En seguida se deben identificar aquellos elementos de informacin ofrecidos por el problema y que resulten tiles para obtener la solucin al problema. Finalmente, un procedimiento para producir los resultados deseados a partir de los datos, es decir, el algoritmo.

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

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

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

Programa Ejecutable

Programa fuente

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

Programa Ejecutable

Aplicacin

Lenguajes de programacin
Lenguaje: conjunto de reglas y convenciones que se utilizan para comunicar informacin. Lenguaje de 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: 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 DW 64 DUP (?) STACK ENDS ; Segmento de pila ; Define espacio en la pila

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"); }

You might also like