Algoritmos y Programas - WordPress.com · Las instrucciones en lenguaje máquina dependen del...

30
FUNDAMENTOS DE PROGRAMACIÓN Algoritmos y Programas

Transcript of Algoritmos y Programas - WordPress.com · Las instrucciones en lenguaje máquina dependen del...

FUNDAMENTOS DE PROGRAMACIÓN

Algoritmos

y Programas

La palabra proviene del latín datum, formadel verbo dare “dar”, que significa“Lo que esdado”

Representación de una información demanera adecuada para su tratamiento por unordenador

Dato

Ejemplos1525º C25 m31-10-2005FebreroMaría Pérez

Son representaciones simbólicas deobjetos, hechos, instituciones,conocimientos.

Dato

Los datos organizados o procesadosadquieren significado y proporcionanconocimiento o desencadenan uncomportamiento sobre los hechos uobjetos que lo originaron

La información se resumen en :Datos + significado

Información

Un grupo de datos es información

• Datos: 19- Marzo – Maria – 20 ptos.

• Información: El 19 de marzo se publicó enacta la calificación de 20 ptos para María

El principal objetivo de la informaciónconsiste en aumentar el conocimiento oreducir la incertidumbre.

Información

Ejemplos

Juan tiene 15 años

25º C fue la temperatura de esta mañana.

El edificio “Robles” mide 25 m de altura

La fecha de hoy es 31-10-2005

Febrero tiene 28 días y 29 si el año es bisiesto.

María Pérez es un nombre muy común

Información

Es un asunto o un conjunto de cuestiones quese plantean para ser resueltas.

La naturaleza de los problemas varía con elámbito o el contexto: problemas matemáticos,químicos, filosóficos, etc.

Es importante que al abordar un problema setenga una descripción simple y precisa delmismo, de lo contrario resultaría complejomodular, simular, o programar su solución enun ordenador.

Problema

Un programador es una persona que resuelveproblemas, y para llegar a ser un programadoreficaz se necesita aprender a resolver problemasde un modo riguroso y sistemático

Problema Diseño Algoritmo

Programa

Problema

Análisis

Algunos de los pasos para solucionar un problema son:

Análisis: consiste en el estudio detallado del problema.Se debe identificar los datos de entrada, de salida y ladescripción del problema.

Diseño del algoritmo, que describe la secuenciaordenada de pasos que conduce a la solución de unproblema dado.

Expresar el algoritmo como un programa en unlenguaje de programación adecuado (Fase deCodificación)

Ejecución y validación del programa por elcomputador

Problema

Etimología: Proviene del nombre delmatemático persa Mohammed Al-khowanzmi,cuyo apellido traducido al latín es Algorismus

Conjunto de acciones que especifican lasecuencia de operaciones a realizar, en orden,para resolver un problema

Algoritmo

Los algoritmos son independientes tanto dellenguaje de programación como delcomputador que los ejecuta.

Finito:

Definido:

Preciso:

un algoritmo siempre debe terminar después de un número finito de pasos

si se sigue un algoritmo dos veces se debe obtener el mismo resultado

indicar exactamente el orden de realización de las instrucciones

Algoritmo

Ejemplo tradicional de un algoritmo: Cambiar la ruedapinchada de un coche

Algoritmo

1. Buscar herramientas, rueda de repuesto y triángulode señalización

2. Ubicar el triángulo 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

Análisis

Diseño

Codificación

Compilación

Interpretación

Pruebas

Especificación

Algoritmo

Programa

Prog. Ejecutable

Aplicación

Algoritmo

Fase Producto

Diseño: consiste en la realización del algoritmo queresuelve el problema de acuerdo a la especificación dadaen la fase anterior. El algoritmo se representa mediantepseudocódigo.

Algoritmo

Algoritmo PRUEBA

Inicio

Variables

A,B,C: entero

Leer(A,B)

C=A+B

Escribir (C)

FinDocumentos de

Especificación

Codificación: consiste en la traducción del algoritmo aun programa escrito en un lenguaje de programación

Algoritmo

Algoritmo Sumar

Inicio

Variables

A,B,C: entero

Leer(A,B)

C=A+B

Escribir (C)

Fin Programa escrito

en un Lenguaje de Programación

Compilación/Interpretación: consiste en obtener elprograma ejecutableobjeto a partir del programa fuente.

Algoritmo

Programa fuente

Programa Ejecutable

Prueba: consiste en determinar si el programa funcionacorrectamente y realiza las operaciones que esperamosde él.

Algoritmo

Programa Ejecutable Aplicación

Lenguaje: conjunto de reglas y convenciones que se utilizanpara comunicar información.

Lenguaje de Programación: es un lenguaje que permite latraducción de un algoritmo para que sea entendible por elcomputador. Son los lenguajes utilizados para escribirprogramas de ordenadores.

Tipos de Lenguaje de Programación:

Lenguaje de Máquina

Lenguaje de Bajo Nivel (Ensamblador)

Lenguaje de Alto Nivel

Lenguajes de programación

Son aquellos que están escritos en lenguajedirectamente inteligibles por la máquina, ya que susinstrucciones son cadenas binarias (0’s ,1’s) queespecifican una operación.

Las instrucciones en lenguaje máquina dependen delHardware de la computadora, difiere de una PC a otra.

La ventaja de los lenguajes máquina es que ofrecenmayor velocidad de ejecución.

Existen algunas desventajas: dificultad y lentitud en lacodificación, poca fiabilidad, los programas no sonportables.

Lenguaje de máquina

11001010 00010111 11110101 0010101100010111 11110101 00101011 0010101111001010 00010111 11110101 0010101100010111 11110101 00101011 0010101111001010 11110101 00101011 0010101111001010 11001010 11110101 0010101111001010 11110101 00101011 0010101111001010 00010111 11110101 0010101100010111 11110101 00101011 0010101111001010 11110101 00101011 00101011

Ejemplo Lenguaje Máquina

Son lenguajes que permiten escribir programas coninstrucciones similares al lenguaje humano.

Son más fáciles de utilizar que los lenguajes demáquina, pero éstos también dependen de la máquina enparticular.

El mejor ejemplo es el lenguaje ensamblador

Un programa escrito en lenguaje ensamblador requiereuna fase de traducción.

Entre las desventajas tenemos: que este lenguajedepende de la máquina y demanda una mayor exigenciapara los programadores, ya que deben conocer tanto lastécnicas de programación así como el interior de lamáquina

Lenguaje de bajo nivel

Son los más utilizados por los programadores

Son independientes de la máquina

Los programas escritos en estos lenguajes sonportables

Aumento de la ocupación de la memoria

Las estructuras de los programas se basan en reglassintácticas

Ejemplos: C, C++, Visual C++, Visual Basic, VisualC#,Pascal, Ada, Delphi, Java, php...

Lenguaje de alto nivel

#include <stdio.h>

int main(void)

{

printf("Hola, Mundo\n");

}

Ejemplo Lenguaje alto nivel

Traductores de Lenguajes: son programas que traducena su vez los programas fuentes escritos en lenguajes dealto nivel a código máquina. Estos se dividen enintérpretes y compiladores.

Traductores de Lenguaje

Intérprete: es un traductor que toma un programa fuente, lotraduce y a continuación lo ejecuta. (Basic, Smalltalk)

Intérprete

Compilación

Compilador: es el proceso detraducción de programas fuentesa programas objetos. En esteproceso se debe utilizar comopaso intermedio un programallamado enlazador (linker) elcual da como resultado unprograma en lenguaje máquinadirectamente ejecutable.

Etapas de programación

Código Fuente

Compilador

Modificación del programa fuente

ExistenErrores Código objeto

Linkado/Interpretación

Programa Ejecutable

ExistenErrores

PruebasExistenErrores

No

No

Errores léxicos

Tiempo de compilación

Errores de ejecuciónTiempo de ejecución

Errores lógicos

Tiempo de pruebas

APLICACIÓN

BUENA PROGRAMACIÓN