Introducción

169 views
142 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
169
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introducción

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 37. Metodologías. UML. Clases. Forma simplificada Coche Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  38. 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. 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. 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. 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. 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. 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. 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. 45. Metodologías. UML. Diagrama de clases.Generalización Automóvil Motocicleta Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
  46. 46. Metodologías. UML. Diagrama de clases.Generalización Trabajador Encargado Administrativo Peón Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net

×