La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Esta obra está bajo una licencia de Creative Commons. Creative CommonsCreative Commons Autor: Jorge Sánchez Asenjo (año 2005)

Presentaciones similares


Presentación del tema: "Esta obra está bajo una licencia de Creative Commons. Creative CommonsCreative Commons Autor: Jorge Sánchez Asenjo (año 2005)"— Transcripción de la presentación:

1 Esta obra está bajo una licencia de Creative Commons. Creative CommonsCreative Commons Autor: Jorge Sánchez Asenjo (año 2005) http://www.jorgesanchez.net email:info@jorgesanchez.net Esta obra está bajo una licencia de Reconocimiento-NoComercial- CompartirIgual de CreativeCommons. Para ver una copia de esta licencia, visite: http://creativecommons.org/licenses/by-nc-sa/2.0/es/ o envíe una carta a: Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

2 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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.

3 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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.

4 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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: PrecisosFinitosRepetibles

5 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

6 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Introducción. Pasos para crear algoritmos 1.Análisis del problema. Hay que comprender el problema 2.Diseño del algoritmo. Pasos para resolver el problema. Es mejor solucionar problemas pequeños 3.Prueba del algoritmo

7 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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)

8 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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)

9 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Introducción. Representación de algoritmos 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

10 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Introducción. Representación de algoritmos 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

11 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

12 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Introducción. Pseudocódigo Es otra forma de representar algoritmos Se asemeja más a los lenguajes de programación de alto nivel

13 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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. Asignar valor Comparaciones: Comparaciones:

14 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

15 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

16 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

17 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

18 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

19 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

20 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

21 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

22 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

23 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

24 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

25 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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)

26 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Programación orientada a objetos. Idea general 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

27 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

28 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

29 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

30 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Programación orientada a objetos. Creación de programas 1.Escribir en papel lo que queremos hacer de forma directa 2.Identificar las clases y objetos 3.Identificar las relaciones entre las clases (mensajes) 4.Identificar las propiedades y estados de los objetos 5.Identificar la secuencia correcta de mensajes 6.Estudiar cada clase e intentar definir su código de forma independiente 7.Definir el código de inicio de la aplicación

31 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

32 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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)

33 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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)

34 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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.

35 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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) www.omg.org La especificación está disponible en www.omg.org/uml www.omg.org/uml UML define 12 tipos de diagramas, cada uno representa un aspecto del funcionamiento de una aplicación

36 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

37 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

38 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Metodologías. UML. Clases. Forma simplificada Coche

39 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

40 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Metodologías. UML. Objeto Objeto: Elemento con significado concreto en una aplicación Representación: Coche19:Coche

41 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Metodologías. UML Paquete: Estructura que sirve para agrupar clases Pueden agrupar otros paquetes Representación: Nombre Clase1Clase2

42 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net 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

43 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Metodologías. UML. Diagrama de clases. Relación Programador Nombre:texto; Ordenador Identificador:texto; Modelo:texto; Velocidad:entero 1..*0..* Maneja Nombre de la asociación

44 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Metodologías. UML. Diagrama de clases. Agregación Alumno Asignatura Matriculado en 1..*1..11 Profesor Matriculado en Imparte 1..6 1..2

45 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Metodologías. UML. Diagrama de clases. Composición/Agregación Punto X:entero; Y:entero; Mover(despl_x, despl_y:entero ) Mover ( p:Punto ) Representa un punto en el espacio Polígono Regular:lógico; Borrar() Mover(p:Punto) Rellenar(c:color) Representa un polígono en el espacio 3..* Expresa una relación todo/parte. El punto es parte del polígono

46 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Metodologías. UML. Diagrama de clases. Generalización AutomóvilMotocicleta

47 Copyleft - Jorge Sánchez 2005 – www.jorgesanchez.netwww.jorgesanchez.net Metodologías. UML. Diagrama de clases. Generalización Trabajador EncargadoAdministrativoPeón


Descargar ppt "Esta obra está bajo una licencia de Creative Commons. Creative CommonsCreative Commons Autor: Jorge Sánchez Asenjo (año 2005)"

Presentaciones similares


Anuncios Google