Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

30
FUNDAMENTOS DE PROGRAMACIÓN Algoritmos y Programas

Transcript of Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

Page 1: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

FUNDAMENTOS DE PROGRAMACIÓN

Algoritmos

y Programas

Page 2: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 3: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

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

Dato

Page 4: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 5: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 6: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 7: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 8: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 9: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 10: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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.

Page 11: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 12: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Algoritmo

Page 13: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 14: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

7. Sacar la rueda

8. Colocar la rueda de Repuesto

9. Colocar las tuercas

10. Apretar las tuercas

11. Guardar las herramientas

FIN

Algoritmo

Page 15: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 17: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 18: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 19: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Algoritmo

Programa fuente

Programa Ejecutable

Page 20: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Algoritmo

Programa Ejecutable Aplicación

Page 21: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 22: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 23: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 24: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 25: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 26: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

#include <stdio.h>

int main(void)

{

printf("Hola, Mundo\n");

}

Ejemplo Lenguaje alto nivel

Page 27: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Page 28: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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

Intérprete

Page 29: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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.

Page 30: Diapositiva 1 · Title: Diapositiva 1 Author: afangulo Created Date: 6/10/2014 12:58:26 PM

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