Anda di halaman 1dari 47

Esta obra est bajo una licencia de Creative Commons.

Autor: Jorge Snchez Asenjo (ao 2005)


http://www.jorgesanchez.net
email:info@jorgesanchez.net
Esta obra est bajo una licencia de Reconocimiento-NoComercialCompartirIgual de CreativeCommons. Para ver una copia de esta licencia,
visite:
http://creativecommons.org/licenses/by-nc-sa/2.0/es/
o enve una carta a:
Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Introduccin. Conceptos previos

Informtica (RAE):
Conjunto de conocimientos cientficos y tcnicas que
hacen posible el tratamiento automtico de la
informacin por medio de computadoras electrnicas.

Computadora:
mquina capaz de aceptar unos datos de entrada,
efectuar con ellos operaciones lgicas y aritmticas, y
proporcionar la informacin resultante a travs de un
medio de salida.

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Algoritmos
Un ordenador por s slo 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
solucin de un problema.

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. 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 Snchez 2005 www.jorgesanchez.net

Introduccin. Algoritmos
Los algoritmos conviene que sean:

Vlidos (hacen lo que deben hacer)


Eficientes (no tardan un tiempo excesivo)
ptimos (es la mejor solucin al problema)

Un algoritmo posee:

Datos de entrada
Clculos para conseguir el resultado
Datos de salida o resultantes

A partir de unos datos de entrada se


consigue la salida

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Pasos para crear algoritmos

1. Anlisis del problema. Hay que


comprender el problema
2. Diseo del algoritmo. Pasos para
resolver el problema. Es mejor
solucionar problemas pequeos
3. Prueba del algoritmo

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Algoritmos. Datos formales


Los algoritmos se construyen utilizando
elementos simples para que el lenguaje se
parezca ms al de las computadoras
Los datos de los algoritmos son:
Nmeros (10, 25, 5.32)
Textos (Hola mundo)
Lgicos (VERDADERO, FALSO, true, false)
Datos compuestos (registros, listas)

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. 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, asignacin)
De control (bucle, condicin)

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Representacin de
algoritmos
Existen cdigos especiales que sirven para
representar algoritmos
La razn de su uso es normalizar la
escritura de algoritmos
Hay diagramas de flujo y pseudocdigo
El primero trabaja con representaciones
grficas, el segundo con un lenguaje
especial

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Representacin de
algoritmos
Existen cdigos especiales que sirven para
representar algoritmos
La razn de su uso es normalizar la
escritura de algoritmos
Hay diagramas de flujo y pseudocdigo
El primero trabaja con representaciones
grficas, el segundo con un lenguaje
especial

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Diagramas de flujo


Inicio
Fin

Representa el principio del algoritmo


Representa el final del algoritmo
Operacin
Entrada o salida de datos
Condicin
Direccin del flujo del programa
Subprograma
Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Pseudocdigo

Es otra forma de representar


algoritmos
Se asemeja ms a los
lenguajes de programacin de
alto nivel

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Pseudocdigo. 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 Snchez 2005 www.jorgesanchez.net

Introduccin. Pseudocdigo. Instrucciones


SI condicin ENTONCES instrucciones
[SINO
instrucciones]
FIN SI
EN CASO DE variable
valor1:instrucciones
valor2:instrucciones
...
EN OTRO CASO: instrucciones
FIN EN CASO DE

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Introduccin. Pseudocdigo. Instrucciones


MIENTRAS condicin HACER instrucciones
FIN MIENTRAS
REPETIR
instrucciones
HASTA condicin
PARA variable DE valorInicial A valorFinal
[INCREMENTO valor] instrucciones
FIN PARA

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Lenguajes. Cdigo mquina

El ordenador slo puede ejecutar


instrucciones en un lenguaje muy
simple conocido como cdigo mquina
Programar en ese lenguaje es muy
complejo
Ejemplo, sumar 5+2 podra ser algo
como 1001011000101010

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Lenguajes. Ensamblador
Es cdigo escrito en un lenguaje que
tiene representacin exacta en el
cdigo mquina
Cada programa creado en ensamblador
sirve para una sola mquina
Muy difcil de escribir

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Lenguajes. Alto nivel


Los lenguajes de alto nivel se alejan de
la mquina y se parecen ms al
pseudocdigo
Se escriben programas que luego habr
que ensamblar para convertirles en
cdigo mquina

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Lenguajes. Cuarta generacin

Se alejan an ms de la mquina y se
centran en la resolucin del problema
Permiten crear programas sin apenas
escribir cdigo
Son ms limitados pero mucho ms
rpidos de desarrollar

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Lenguajes. Intrpretes
El intrprete es un software capaz de
interpretar instrucciones escritas en
un lenguaje de alto nivel.
Interpretan el cdigo lnea a lnea de la
primera a la ltima
Optimizan menos el cdigo

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Lenguajes. Compilador
Software que traduce un programa
pero interpretando todo el cdigo a la
vez
El cdigo es ms eficiente
Se tarda ms en ejecutar el resultado

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Lenguajes. Historia
Fortran. Primer lenguaje, orientado a
problemas matemticos
Lisp. Crea las funciones
Cobol. Orientado a aplicaciones de
gestin.
Basic. Ideado para ser fcil de aprender
Pascal. Ideado tambin para ser sencillo
de aprender, potencia la legibilidad del
cdigo
Copyleft - Jorge Snchez 2005 www.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 creacin mediante sintaxis sencilla de
entornos grficos de usuario.
Prolog. Ideado para resolver problemas de
inteligencia artificial
C++ Mejora de C para soportar el uso de
objetos
Copyleft - Jorge Snchez 2005 www.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 maquetacin y definicin 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 Snchez 2005 www.jorgesanchez.net

Programacin orientada a objetos

La programacin clsica (estructurada)


se complica enormemente cuanto
mayor es el problema
Una solucin fue la programacin
modular
Una solucin mejor es la POO (OOP)

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Programacin 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 mtodos (funciones)
El cdigo se reparte entre los objetos

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Programacin orientada a objetos.


Clases y objetos

Clase: Definicin terica de los


objetos. Identifican tipos de objetos
Objeto: Una instancia particular de una
clase
Mensajes: Comunicacin entre un
objeto y otro. En realidad son llamadas
a procedimientos o variables pblicas
del objeto

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Programacin orientada a objetos.


Propiedades
Encapsulamiento: El hecho de integrar en el
objeto tanto mtodos como propiedades
Ocultacin: Hay mtodos y propiedades
pblicos y mtodos y propiedades privados
Herencia: Las clases pueden heredarse de
otras previas
Polimorfismo: El mismo mtodo puede estar
presente en varios objetos y su significado ser
distinto

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Programacin orientada a objetos.


Creacin 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 Snchez 2005 www.jorgesanchez.net

Programacin orientada a objetos.


Creacin de programas
1.
2.
3.
4.
5.
6.
7.

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 cdigo de
forma independiente
Definir el cdigo de inicio de la aplicacin

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Programacin orientada a objetos.


Lenguajes

A partir de la idea de esta programacin


aparecen lenguajes ms o menos
implicados con esta idea
El primer lenguaje que incorpor esta
idea fue Simula 67
Poco a poco incluso los lenguajes
clsicos se han adaptado a esta idea

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Programacin orientada a objetos.


Lenguajes. Tipos

Puros. Slo se puede hacer programacin


orientada a objetos (por ejemplo Java)
Hbridos. Permiten tambin hacer
programacin 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 Snchez 2005 www.jorgesanchez.net

Metodologas. Introduccin
Tcnicas que permiten realizar un modelo
previo de un programa
Hay metodologas de todo tipo que modelan
tanto instrucciones como datos
Las metodologas intentar simplificar el
diseo de una aplicacin
Al final el modelo hay que implementarle
(escribirle en un determinado lenguaje)

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML
UML = Unified modelling language, lenguaje de
modelado universal
No es una metodologa completa (una metodologa
completa indica los pasos a realizar durante el
desarrollo del software)
Es una notacin, una forma de expresar modelos
informticos
Es un estndar de facto para disear aplicaciones
orientadas a objetos
Se basa en diagramas que pueden servir tanto al
diseador como al cliente.

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML
Es una metodologa diseada por los
principales creadores de metodologas
Estamos en la versin 1.3 (a punto de
aparecer la 2.0)
Sus responsables son el Object Management
Group (www.omg.org)
La especificacin est disponible en
www.omg.org/uml
UML define 12 tipos de diagramas, cada uno
representa un aspecto del funcionamiento
de una aplicacin
Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Clases

Clase: Descripcin de una serie de


objetos con propiedades, mtodos,
relaciones y semntica muy parecida
Representacin:
Nombre
Atributos
Mtodos
Responsabilidades

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Clases


Nombre: Nombre de la clase
Atributos: Datos que definen las propiedades
de la clase.
Mtodos: 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 Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Clases. Forma simplificada

Coche

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Clases. Ejemplo


Coche
marca:String
modelo:String
matricula:String
color:String
kilmetros:int
velocidad:int
acelerar(cantidad:int)
frenar(cantidad:int)
arrancar()
obtenerVelocidad():int
Transporta gente
Consume gasolina
Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Objeto

Objeto: Elemento con


significado concreto en una
aplicacin
Representacin:
Coche19:Coche

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML

Paquete: Estructura que sirve para


agrupar clases
Pueden agrupar otros paquetes
Representacin:
Nombre
Clase1

Clase2

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Diagramas

En UML hay varios tipos de diagramas


que modelizan las clases y objetos
En total hay 12 diagramas
Cuatro representan la estructura
esttica
Cinco el comportamiento dinmico
Tres se refieren a la organizacin
modular

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Diagrama de clases.


Relacin

Ordenador

Programador
Maneja

Nombre:texto;
1..*

0..*

Identificador:texto;
Modelo:texto;
Velocidad:entero

Nombre de la asociacin

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Diagrama de clases.


Agregacin

Matriculado en
Alumno

1..*

1..11

Asignatura
1..6
1..2

Imparte

Profesor

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Diagrama de clases.


Composicin/Agregacin
Polgono

Punto

Regular:lgico;

X:entero;
Y:entero;

Borrar()
Mover(p:Punto)
Rellenar(c:color)

Mover(despl_x,
despl_y:entero)
Mover(p:Punto)

3..*

Representa un
polgono en el espacio

Representa un punto
en el espacio

Expresa una relacin todo/parte.


El punto es parte del polgono
Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Diagrama de clases.


Generalizacin

Automvil

Motocicleta

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Metodologas. UML. Diagrama de clases.


Generalizacin

Trabajador

Encargado

Administrativo

Pen

Copyleft - Jorge Snchez 2005 www.jorgesanchez.net

Anda mungkin juga menyukai