Your SlideShare is downloading. ×
Introducción
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introducción

65
views

Published on

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
65
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introducción. Conceptos previos Informática (RAE): Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de computadoras electrónicas. Computadora: máquina capaz de aceptar unos datos de entrada, efectuar con ellos operaciones lógicas y aritméticas, y proporcionar la información resultante a través de un medio de salida. Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 2. Introducción. Algoritmos Un ordenador por sí sólo no es capaz de hacer nada. Hace falta la ayuda de un programador. El programador es que programa las instrucciones necesarias al ordenador para realizar una tarea Algoritmo (RAE): Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 3. Introducción. Algoritmos Mediante algoritmos se solucionan los problemas Los algoritmos son independientes del ordenador en el que se realizan las operaciones Los algoritmos deben de ser: Precisos Finitos Repetibles Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 4. Introducción. Algoritmos Los algoritmos conviene que sean: Válidos (hacen lo que deben hacer) Eficientes (no tardan un tiempo excesivo) Óptimos (es la mejor solución al problema) Un algoritmo posee: Datos de entrada Cálculos para conseguir el resultado Datos de salida o resultantes A partir de unos datos de entrada se consigue la salida Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 5. Introducción. Pasos para crear algoritmos Análisis del problema. Hay que comprender el problema Diseño del algoritmo. Pasos para resolver el problema. Es mejor solucionar problemas pequeños Prueba del algoritmo Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 6. Introducción. Algoritmos. Datos formales Los algoritmos se construyen utilizando elementos simples para que el lenguaje se parezca más al de las computadoras Los datos de los algoritmos son: Números (10, 25, 5.32) Textos (“Hola mundo”) Lógicos (VERDADERO, FALSO, true, false) Datos compuestos (registros, listas) Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 7. Introducción. Algoritmos. Datos formales Los algoritmos pueden tener expresiones, las cuales se componen de: Variables (x, resta, saldo) Operadores (+, -, *, >, <, Y(AND)) Las instrucciones de los algoritmos pueden ser Primitivas (entrada, salida, asignación) De control (bucle, condición) Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 8. Introducción. Representación dealgoritmos Existen códigos especiales que sirven para representar algoritmos La razón de su uso es normalizar la escritura de algoritmos Hay diagramas de flujo y pseudocódigo El primero trabaja con representaciones gráficas, el segundo con un lenguaje especial Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 9. Introducción. Representación dealgoritmos Existen códigos especiales que sirven para representar algoritmos La razón de su uso es normalizar la escritura de algoritmos Hay diagramas de flujo y pseudocódigo El primero trabaja con representaciones gráficas, el segundo con un lenguaje especial Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 10. Introducción. Diagramas de flujo Inicio Representa el principio del algoritmo Fin Representa el final del algoritmo Operación Entrada o salida de datos Condición Dirección del flujo del programa Subprograma Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 11. Introducción. Pseudocódigo Es otra forma de representar algoritmos Se asemeja más a los lenguajes de programación de alto nivel Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 12. Introducción. Pseudocódigo. Instrucciones ESCRIBIR. Muestra algo en el dispositivo de salida (la pantalla normalmente) LEER variable. Lee un dato (del teclado) y lo almacena en esa variable . Asignar valor Comparaciones: < > ≠ ≤ ≥ Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 13. Introducción. Pseudocódigo. Instrucciones SI condición ENTONCES instrucciones [SINO instrucciones] FIN SI EN CASO DE variable valor1:instrucciones valor2:instrucciones ... EN OTRO CASO: instrucciones FIN EN CASO DE Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 14. Introducción. Pseudocódigo. Instrucciones MIENTRAS condición HACER instrucciones FIN MIENTRAS REPETIR instrucciones HASTA condición PARA variable DE valorInicial A valorFinal [INCREMENTO valor] instrucciones FIN PARA Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 15. Lenguajes. Código máquina El ordenador sólo puede ejecutar instrucciones en un lenguaje muy simple conocido como código máquina Programar en ese lenguaje es muy complejo Ejemplo, sumar 5+2 podría ser algo como 1001011000101010 Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 16. Lenguajes. Ensamblador Es código escrito en un lenguaje que tiene representación exacta en el código máquina Cada programa creado en ensamblador sirve para una sola máquina Muy difícil de escribir Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 17. Lenguajes. Alto nivel Los lenguajes de alto nivel se alejan de la máquina y se parecen más al pseudocódigo Se escriben programas que luego habrá que ensamblar para convertirles en código máquina Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 18. Lenguajes. Cuarta generación Se alejan aún más de la máquina y se centran en la resolución del problema Permiten crear programas sin apenas escribir código Son más limitados pero mucho más rápidos de desarrollar Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 19. Lenguajes. Intérpretes El intérprete es un software capaz de interpretar instrucciones escritas en un lenguaje de alto nivel. Interpretan el código línea a línea de la primera a la última Optimizan menos el código Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 20. Lenguajes. Compilador Software que traduce un programa pero interpretando todo el código a la vez El código es más eficiente Se tarda más en ejecutar el resultado Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 21. Lenguajes. Historia Fortran. Primer lenguaje, orientado a problemas matemáticos Lisp. Crea las funciones Cobol. Orientado a aplicaciones de gestión. Basic. Ideado para ser fácil de aprender Pascal. Ideado también para ser sencillo de aprender, potencia la legibilidad del código Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 22. Lenguajes. Historia C. Lenguaje de nivel medio que otorga una gran libertad al programador SQL. Lenguaje de consulta de bases de datos Visual Basic y Delphi. Lenguajes orientados a la creación mediante sintaxis sencilla de entornos gráficos de usuario. Prolog. Ideado para resolver problemas de inteligencia artificial C++ Mejora de C para soportar el uso de objetos Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 23. Lenguajes. Historia Perl. Lenguaje que facilita el uso de las expresiones normales (para crear consultas complicadas). HTML y XML. Lenguajes de marcado para la maquetación y definición de documentos Java. Sintaxis heredada de C++. Pensado para crear aplicaciones de red. PHP, ASP y JSP. Lenguajes combinados para ejecutar instrucciones en un servidor web Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 24. Programación orientada a objetos La programación clásica (estructurada) se complica enormemente cuanto mayor es el problema Una solución fue la programación modular Una solución mejor es la POO (OOP) Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 25. Programación orientada a objetos. Ideageneral La POO consiste en definir objetos Cada objeto consta de una serie de propiedades (variables) y de una serie de métodos (funciones) El código se reparte entre los objetos Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 26. Programación orientada a objetos.Clases y objetos Clase: Definición teórica de los objetos. Identifican tipos de objetos Objeto: Una instancia particular de una clase Mensajes: Comunicación entre un objeto y otro. En realidad son llamadas a procedimientos o variables públicas del objeto Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 27. Programación orientada a objetos.Propiedades Encapsulamiento: El hecho de integrar en el objeto tanto métodos como propiedades Ocultación: Hay métodos y propiedades públicos y métodos y propiedades privados Herencia: Las clases pueden heredarse de otras previas Polimorfismo: El mismo método puede estar presente en varios objetos y su significado ser distinto Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 28. Programación orientada a objetos.Creación de programas Todo es un objeto Un programa es un conjunto de objetos que se comunican Todo objeto posee una clase Todos los objetos de una clase reciben los mismos mensajes Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 29. Programación orientada a objetos.Creación de programas• Escribir en papel lo que queremos hacer de forma directa• Identificar las clases y objetos• Identificar las relaciones entre las clases (mensajes)• Identificar las propiedades y estados de los objetos• Identificar la secuencia correcta de mensajes• Estudiar cada clase e intentar definir su código de forma independiente• Definir el código de inicio de la aplicación Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 30. Programación orientada a objetos.Lenguajes A partir de la idea de esta programación aparecen lenguajes más o menos implicados con esta idea El primer lenguaje que incorporó esta idea fue Simula 67 Poco a poco incluso los lenguajes clásicos se han adaptado a esta idea Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 31. Programación orientada a objetos.Lenguajes. Tipos Puros. Sólo se puede hacer programación orientada a objetos (por ejemplo Java) Híbridos. Permiten también hacer programación estructurada (por ejemplo C++) Basados en objetos. Soportan algunos objetos (algunos lenguajes de macro) Basados en clases. Permiten usar objetos y clases (por ejemplo JavaScript) Orientados a objetos. Incluyen herencia (Visual Basic) Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 32. Metodologías. Introducción Técnicas que permiten realizar un modelo previo de un programa Hay metodologías de todo tipo que modelan tanto instrucciones como datos Las metodologías intentar simplificar el diseño de una aplicación Al final el modelo hay que implementarle (escribirle en un determinado lenguaje) Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 33. Metodologías. UML UML = Unified modelling language, lenguaje de modelado universal No es una metodología completa (una metodología completa indica los pasos a realizar durante el desarrollo del software) Es una notación, una forma de expresar modelos informáticos Es un estándar de facto para diseñar aplicaciones orientadas a objetos Se basa en diagramas que pueden servir tanto al diseñador como al cliente. Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 34. Metodologías. UML Es una metodología diseñada por los principales creadores de metodologías Estamos en la versión 1.3 (a punto de aparecer la 2.0) Sus responsables son el Object Management Group (www.omg.org) La especificación está disponible en www.omg.org/uml UML define 12 tipos de diagramas, cada uno representa un aspecto del funcionamiento de una aplicación Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 35. Metodologías. UML. Clases Clase: Descripción de una serie de objetos con propiedades, métodos, relaciones y semántica muy parecida Representación: Nombre Atributos Métodos Responsabilidades Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 36. Metodologías. UML. Clases Nombre: Nombre de la clase Atributos: Datos que definen las propiedades de la clase. Métodos: Capacidades que puede realizar la clase. Pueden devolver datos y pueden requerir datos para su uso Responsabilidades: Opcional. Indica para qué se utiliza la clase Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 37. Metodologías. UML. Clases. Forma simplificada Coche Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 38. Metodologías. UML. Clases. Ejemplo Coche marca:String modelo:String matricula:String color:String kilómetros:int velocidad:int acelerar(cantidad:int) frenar(cantidad:int) arrancar() obtenerVelocidad():int Transporta gente Consume gasolina Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 39. Metodologías. UML. Objeto Objeto: Elemento con significado concreto en una aplicación Representación: Coche19:Coche Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 40. Metodologías. UML Paquete: Estructura que sirve para agrupar clases Pueden agrupar otros paquetes Representación: Nombre Clase1 Clase2 Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 41. Metodologías. UML. Diagramas En UML hay varios tipos de diagramas que modelizan las clases y objetos En total hay 12 diagramas Cuatro representan la estructura estática Cinco el comportamiento dinámico Tres se refieren a la organización modular Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 42. Metodologías. UML. Diagrama de clases.Relación Programador Ordenador ManejaNombre:texto; Identificador:texto; Modelo:texto; 1..* 0..* Velocidad:entero Nombre de la asociación Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 43. Metodologías. UML. Diagrama de clases.Agregación Matriculado en Alumno Asignatura 1..* 1..11 1..6 1..2 Imparte Profesor Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 44. Metodologías. UML. Diagrama de clases.Composición/Agregación Punto PolígonoX:entero; Regular:lógico;Y:entero; Borrar()Mover(despl_x, Mover(p:Punto) Rellenar(c:color)despl_y:entero)Mover(p:Punto) 3..*Representa un punto Representa unen el espacio polígono en el espacioExpresa una relación todo/parte.El punto es parte del polígono Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 45. Metodologías. UML. Diagrama de clases.Generalización Automóvil Motocicleta Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  • 46. Metodologías. UML. Diagrama de clases.Generalización Trabajador Encargado Administrativo Peón Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net