introducción a la programación - materias de ues-fmo | … ·  · 2009-09-24las ventajas más...

49
Introducción a la Programación Programación I

Upload: dokhanh

Post on 10-Apr-2018

225 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Introducción a la Programación

Programación I

Page 2: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

¿Qué es Programación?

• Un proceso por el cual se escribe (en un lenguaje de programación), se prueba, se depura y se mantiene el código fuente de un programa informático.

Page 3: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

¿Qué es Programación?

• Para construir programas, las personas usan lenguajes que son similar al idioma humano. Los resultados se traducen en código de máquina que las computadoras entienden.

Page 4: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Lenguaje de Programación

• Es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Es utilizado para controlar el comportamiento físico y lógico de una máquina.

Page 5: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa
Page 6: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

La Evolución de los lenguajes de la Programación

• Los lenguajes de programación entran en tres categorías extensas:

Lenguajes de máquina

Lenguajes de ensamblado

Lenguajes altos o de nivel.

Page 7: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

La Evolución de los lenguajes de Programación: Lenguaje de Máquina

• Lenguaje de máquina (idiomas de la primera-generación) es el tipo más básico de lenguaje de la computadora y consiste en series de números del hardware de la computadora .

• Los Tipos diferentes de uso en el hardware en el código de la máquina son diferentes. Por ejemplo, las computadoras de IBM usan lenguaje de máquina diferente que las computadoras de las Apple.

Page 8: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

La Evolución de los lenguajes de la Programación: Lenguaje de ensamblado

• Lenguaje de ensamblado (idiomas de la segunda-generación) es sólo algo más fácil que trabajar con el lenguaje de máquina.

• Para crear programas en lenguaje de ensamblado, diseñadores acostumbran frases en ingles para representar series de números.

• El código se traduce entonces en el código del objeto y usa a un traductor llamado ensamblador.

Page 9: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Código de

ensamble

Ensamblador

Código de Objeto

Page 10: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

La Evolución de los lenguajes de la Programación : Lenguajes altos o de nivel.

• Los lenguajes de alto nivel son más poderosos que el lenguaje de ensamble y le permiten al programador trabajar en un ambiente mas agradable.

• Los lenguajes de la programación de alto nivel son dividido en tres "las generaciones," cada uno más poderoso que el último:

● Lenguaje de 3ra. Generación

● Lenguaje de 4ta. Generación

● Lenguaje de 5ta. Generación

Page 11: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

La Evolución de los lenguajes de la Programación : Lenguajes de 3a.

Generación.

• Consta de la gama de lenguajes de programación para ámbitos computacionales donde se logra un alto rendimiento con respecto a lenguajes de generaciones anteriores.

• Dichos lenguajes son utilizados por especialistas, programadores, y otros para desarrollar programas y sistemas que requieren de un procedimiento especifico para la pc.

• Los lenguajes 3GLs siguientes son :

FORTAN CCOBOL C++BASIC JavaPascal ActiveX

Page 12: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

La Evolución de los lenguajes de la Programación : Lenguajes de 4a.

Generación.• Son lenguajes que se relacionan menos con

procedimientos y que son aun mas parecidos al ingles que los lenguajes de tercera generación.

• Algunas características incluyen capacidades de consulta y base de datos, de creación de códigos y capacidades gráficas.

Ejemplos Visual C++, Visual Basic, Power

Builder, Forte, Delphi y muchos otros.

Page 13: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

La Evolución de los lenguajes de la Programación : Lenguajes de 5a. Generación.

• Alrededor de la mitad 1998 surgieron grupos de herramientas de lenguajes de quinta generación, los cuales combinan la creación de códigos basadas en reglas, la administración de reutilización y otros avances.

• Programación basada en conocimiento. Método para el desarrollo de programas de computación en el que se le ordena ala computadora realizar un propósito en vez de instruirla para hacerlo.

Ejemplos: C#, Haskell, Modula 3.

Page 14: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Lenguajes Orientados a Objetos

• Simula

• Smalltalk

• C++

• Delphi

• Java

• C#

Page 15: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

BASIC, Visual Basic, Visual C++, C# y . NET

• BASIC, fue desarrollado a mediados de los sesenta; su propósito principal era que los principiantes se familiarizaran con las técnicas de programación.

• Visual Basic, se introdujo en 1991 para simplificar el desarrollo de aplicaciones para Windows.

Page 16: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

BASIC, Visual Basic, Visual C++, C# y . NET

• Visual Basic .NET, ofrece una orientación mejorada a objetos. Posee una poderosa biblioteca que incluye componentes de software reutilizables.

• Visual C++, es una implementación de C++. Comparte la misma biblioteca de componentes que VB.

Page 17: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

BASIC, Visual Basic, Visual C++, C# y . NET

• C# fue desarrollado en Microsoft, específicamente para la plataforma .NET como un lenguaje que permitiera a los programadores migrar fácilmente a .NET

Page 18: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: OO

• OO (Orientación a Objetos): desarrollo y modelización de software que facilita la construcción de sistemas complejos a partir de componentes.

Se modela el mundo real tan fielmente como sea posible.

Al comparar la OO y las Tradicionales (Procedimentales estructuradas) hay una reducción de código como mínimo del 40%.

Page 19: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: Desarrollo Tradicional frente al OO

Tradicional OO

Diseño Descendente. Ascendente.

Lenguajes Estructurados. OO.

Se Centra en Operaciones. Los Objetos Reales.

IdeaClave

Descomponer una Aplicación en programas más pequeños.

Reflejar el mundo real mediante el ensamblado de Clases.

Page 20: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: Evolución en cuanto conceptualizacion

Programación lineal:

Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para este ejemplo hemos utilizado números, aunque podría utilizarse cualquier otro identificador:

1. Hacer una variable igual a 0

2. Sumar 1 a esa variable

3. Mostrar la variable

4. Si la variable es 100 -> terminar, Si_no -> saltar a 1:

Page 21: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: Evolución en cuanto conceptualizacion

Programación estructurada. Hacer una variable igual a 0

Mientras que sea menor que 100 -> sumar 1 y mostrarla

Lo importante aquí, es que cuando escribimos un programa usando las técnicas de programación estructurada, los saltos están altamente desaconsejados, por no decir prohibidos; en cambio en BASIC, por ejemplo, son muy frecuentes (todos conocemos el prolífico GOTO <nLínea>), lo que no es nada conveniente si queremos entender algo que escribimos hace tres meses de forma rápida y clara.

Page 22: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: Evolución en cuanto al enfoque

La evolución de los lenguajes de programación, en cuanto a enfoque es también una evolución conceptual, pero ésta es tan profunda que supone un cambio drástico en cuanto al modo de concebir el tratamiento de la programación.

En este sentido, y dependiendo del autor a quien se consulte, existen dos o tres enfoques diferentes:

Programación procedural Programación declarativa Programación orientada a objetos

Page 23: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: Programación Procedural

Casi todos los lenguajes que conocemos trabajan de forma procedural. Java, C, Pascal, BASIC, Cobol,

Fortran, APL, RPG, Clipper, etc.

En ellos, debemos establecer, hechos (datos), reglas para el manejo de esos datos y de decisión y tenemos que decirle al lenguaje cómo alcanzar el objetivo que se persigue. Es decir, donde buscar la información, cómo manipularla, cuando parar, etc.

Page 24: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: Programación Declarativa

Los lenguajes más conocidos que existen hasta ahora, salvo PROLOG, son todos procedurales, éste es declarativo.

En ProLog no programamos, sino que declaramos hechos, es la maquinaria del lenguaje quien se encargará de extraer las conclusiones que resulten inferibles de estos hechos.

A esta maquinaria se le llama motor de inferencias, que es, por otro lado, el corazón de un Sistema Experto. Probablemente de este tipo de programas -los más famosos de la Inteligencia Artificial-, habrá usted oído hablar.

Page 25: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: Programación Orientada a Objetos

La OOP es un conjunto de técnicas. La OOP es casi 100% procedural y, desde

luego, no es en absoluto declarativa.

Page 26: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Historia: OOLas 4 Propiedades más fuertes de OO son:

• Abstracción: Vista externa del Objeto, con el fin de separar el Acceso a los Objetos, de su implementación interna.

• Encapsulación: Propiedad que asegura que el contenido de la información de un objeto está oculto al mundo exterior.

• Modularidad: Permite dividir una aplicación en partes más pequeñas llamadas módulos, tan independientes como sea posible.

• Jerarquía: Ordena la Abstracción con la Herencia. O La jerarquía es un ordenamiento de abstracciones

->

Page 27: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Abstracción

<-

Page 28: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Encapsulamiento

<-

Abstracción y encapsulamiento son conceptos complementarios: la abstracción enfoca la vista externa de un objeto, y el encapsulamiento

(ocultamiento de la información) previene que los clientes vean la parte interna, donde el comportamiento de la abstracción es implementada.

Page 29: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Modularidad

<-

Page 30: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Jerarquía

Las abstracciones forman

una jerarquí

a

<-

Page 31: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

¿Qué es un Objeto?

• Objeto:Un objeto es una abstracción de un conjunto de cosas del mundo real de tal forma que:

● Todos los elementos del conjunto (las instancias) tienen las mismas características.

● Todas las instancias están sujetas a y conforman las mismas reglas.

Mundo Real

Software

Abstracción

Page 32: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

¿Qué es un Objeto?

• Características de los objetos:● Identidad

● Clasificación

● Herencia

● Polimorfismo

• Estas características pueden ser usadas en forma independiente, pero juntas se complementan.

Page 33: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Identidad

Variable DirecciónunCredito 10001324unDebito 54647875unaCuenta 87896545unaCuentadeAhorros 87020486

Una tabla de símbolos

caballoDoris

Residencia de Doris

Mi Computadora

Una bicicleta roja

cuenta bancaria

antena parabólica

Page 34: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Clasificación

Vehículo

Punto

Figura

Animal

(1,3)

(2,2)(2,1)

(5,2.5)

Page 35: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Clases y Objetos

Class Template

Objetos

Page 36: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Clase

• Es la plantillas que describe a un conjunto de objeto, con los mismos

● atributos (variables)● métodos (funciones)● relaciones

• Un objeto es una instancia de una clase.

• Los objetos creados a partir de una clase,

● Tienen una estructura idéntica, ● Pero identidad propia

Page 37: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Clase

• Clase --> TDA● Tipo de Dato Abstracto

• Es la definición de un nuevo tipo de dato

• Un objeto es la variable de dicho tipo

• Ejemplo: ● Clase: Perro

● Objetos: Balto, Firulais, etc

Page 38: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Ejemplo de Clase

Objetos bicicletas

Abstraídos en

Clase BicicletaAtributos

Tamaño de frameTamaño de llantaMaterial ...

Métodos

CambioMoverFrenar...

Page 39: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Representación de una clase

Se utiliza el UML es un lenguaje estándar que sirve para escribir los planos del software, puede utilizarse para visualizar, especificar, construir y documentar todos los artefactos que componen un sistema con gran cantidad de software.

Diagramas de Clases: Muestran un conjunto de clases, interfaces y colaboraciones, así como sus relaciones. Estos diagramas son los más comunes en el modelado de sistemas orientados a objetos y cubren la vista de diseño estática o la vista de procesos estática (sí incluyen clases activas).

Page 40: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Ejemplo de ClaseEjemplo de Clase

UML

Java

Alumno

- nombre:: String - domicilio : String

+ Alumno (n:String, d:String)

+ setNombre (n:String):void

+ getNombre() :String

public class Alumno { private String nombre; private String domicilio;

public Alumno(String n, String d) { } public void setNombre (String n) { } public String getNombre() { }}

Page 41: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Instancia

• Una instancia es un objeto creado a partir de una clase.

• La clase describe la estructura de la instancia (información y comportamiento), mientras que el estado actual de la instancia es definido por las operaciones ejecutadas.

Page 42: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Alumno

-

nombre: : String -

domicilio : String

+ Alumno (n:String, d:String)+ setNombre (n:String):void+ getNombre () :String

Instancia

Alumno alumno3 = new Alumno(“Jose Lopez”, “Centenario”);alumno3: Alumno

nombre = Jose Lopezdomicilio = Centenario

alumno2: Alumno

nombre = Abel Garcíadomicilio = Los ceibos

alumno1: Alumno

nombre = Juan Perezdomicilio = Las Peñas

Creación de instancias u objetos a partir de la clase Alumno:

Alumno alumno1 = new Alumno(“Juan Perez”, “Las Peñas”);

Alumno alumno2 = new Alumno(“Abel Garcia”, “Los ceibos”);

Page 43: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Ventajas de la Programación Orientada a Objetos

Las ventajas más importantes de la programación orientada a objetos son las siguientes:

• Mantenibi l idad (faci l idad de mantenimiento). Los programas que se diseñan utilizando el

concepto de orientación a objetos son más fáciles de leer y comprender y el control de la

complejidad del programa se consigue gracias a la ocultación de la información que permite

dejar visibles sólo los detalles más relevantes.

• Modif icabi l idad (faci l idad para modif icar los programas). Se pueden realizar añadidos o supresiones a programas simplemente añadiendo, suprimiendo o modificando objetos.

• Resusabi l idad. Los objetos, si han sido correctamente diseñados, se pueden usar numerosas veces y en distintos proyectos.

• Fiabi l idad. Los programas orientados a objetos suelen ser más fiables ya que se basan en el

uso de objetos ya definidos que están ampliamente testados.

Page 44: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Introducción a Java• Lenguaje de Programación Orientado a Objetos

• Características

● Independiente de la plataforma

● Compilador no genera código ejecutable nativo a la máquina donde se ejecuta

● Compilador produce un formato especial llamado byte codes

● Para que bytescodes puedan ejecutarse en una máquina específica se necesita un intérprete en tiempo de ejecución. El intérprete es el que genera código de lenguaje de máquina entendido por la máquina.

● Ambiente de ejecución normalmente se conoce como Java Virtual Machine (JVM).

● Recolector de basura.

● Memoria es liberada automáticamente cuando JVM lo determina

Page 45: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Estructura de programas en Java

Cada programa ejecutable en java consiste en una clase

Aplicación Al menos una de las clases debe

contener el método main Declaración de método main debe ser

método estático Metodo asociado a clase no objeto

Declaración public, cualquiera puede invocarlo

Page 46: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Palabras clave en Java

abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch final interface static void char finally long strictfp volatile class float native super while const for new switch continue goto package synchronized

Palabras claves tienen significado especial y no pueden usarse como identificadores de variables ni clases ni métodos

Page 47: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Constantes

Declaración● public static final <type> <name> = <value> ;

Ejemplospublic static final int DAYS_IN_WEEK = 7;

public static final double INTEREST_RATE = 3.5;

public static final int SSN = 658234569;

Page 48: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Control de flujo

Ciclos for(), while(), do-while()

Condicionales If – else switch (expresion){

case n: sentencias;case m: sentencias;…default: sentencias;}

Page 49: Introducción a la Programación - Materias de UES-FMO | … ·  · 2009-09-24Las ventajas más importantes de la programación orientada a objetos son las siguientes: ... Cada programa

Objetos

Instancias de tipos de datos complejos llamados clases

Entidad que contiene datos y comportamientos Existen variables, que almacenan datos dentro

de un objeto Existen métodos dentro de objeto que

representan su comportamiento Creación de objetos en Java mediante uso de

keyboard new