PROGRAMACIÓN DE COMPUTADORES II SEMANA 2 ESTE DOCUMENTO CONTIENE LA SEMANA 2

PROGRAMACIÓN DE COMPUTADORES II SEMANA 2 | ESTE DOCUMENTO CONTIENE LA SEMANA 2 1 ÍNDICE PRESENTACIÓN DE UN LENGUAJE ORIENTADO A OBJETO ..........
Author:  Carmen Luna Romero

0 downloads 112 Views 1MB Size

Story Transcript

PROGRAMACIÓN DE COMPUTADORES II

SEMANA 2

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

1

ÍNDICE PRESENTACIÓN DE UN LENGUAJE ORIENTADO A OBJETO ........................................................... 3 1. PSEUDOCÓDIGO ORIENTADO A OBJETOS ............................................................................. 3 1.1 CLASE INICIO ................................................................................................................. 3 1.2 CLASE OBJETO ............................................................................................................... 4 1.3 EJEMPLOS DE PSEUDOCÓDIGO ORIENTADO A OBJETOS .............................................. 6 1.3.1 DETERMINAR EL VOLUMEN DE UN CUBO DE LADO 34 ........................................ 6 1.3.2 CALCULAR EL VOLUMEN DE UN CUBO DE LADO 5 ............................................... 7 1.3.3 DETERMINAR EL CUBO DE UN NÚMERO .............................................................. 8 1.3.4 DETERMINE QUÉ REALIZA EL SIGUIENTE CÓDIGO, EXPLIQUE PASO A PASO........ 9 1.3.5 DETERMINAR EL PROMEDIO DE UN ALUMNO CON 3 NOTAS DE IGUAL PONDERACIÓN .................................................................................................................... 10 1.3.6 DETERMINAR SI UN NÚMERO ENTERO ES MAYOR QUE 100 .............................. 11 2. PRESENTACIÓN DE UN LENGUAJE ORIENTADO A OBJETO - JAVA ...................................... 12 2.1 SIMPLE ......................................................................................................................... 12 2.2 ORIENTADO A OBJETOS............................................................................................... 13 2.3 DISTRIBUIDO................................................................................................................ 13 2.4 ROBUSTO ..................................................................................................................... 13 2.5 ARQUITECTURA NEUTRAL .......................................................................................... 14 2.6 SEGURO ....................................................................................................................... 16 2.7 PORTABLE .................................................................................................................... 16 2.8 INTERPRETADO............................................................................................................ 17 2.9 DINÁMICO ................................................................................................................... 17 3. RESUMEN ............................................................................................................................ 19 4. BIBLIOGRAFÍA ...................................................................................................................... 19

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

2

PRESENTACIÓN DE UN LENGUAJE ORIENTADO A OBJETO 1. PSEUDOCÓDIGO ORIENTADO A OBJETOS En la clase anterior se revisamos los conceptos generales de la programación orientada a objeto como lo son las definiciones de Objeto, Clase y Método. Al final de la clase se presentó un ejemplo de un pseudocódigo orientado a objeto que resolvía el área y perímetro de un círculo, en esta clase se explicará cada una de las partes de dicho pseudocódigo a partir de la estructura de un programa (pseudocódigo) orientado objeto que se muestra en la siguiente figura.

Fuente: Klages, E. (2009). Programación Orientada a Objetos, p. 3.

1.1 CLASE INICIO La estructura de la clase de inicio, como se muestra en la figura anterior, está compuesta de un Método Principal en el cual se realizan los siguientes tipos de acciones:

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

3



Se realiza la lectura de datos iniciales y la escritura de los resultados en caso de ser necesario para resolver el problema planteado.



A continuación de la lectura (en caso de ser necesario), se definen los objetos, tantos como sean necesarios para resolver el problema planteado.



Luego se realizan las llamadas a los métodos en el orden que sea necesario para resolver el problema planteado.

1.2 CLASE OBJETO 

Estas son las clases que representan a cada uno de los objetos necesarios para la solución del problema.



En cada una de estas clases se definen las variables necesarias y los métodos asociados con las funcionalidades necesarias.

Un programa orientado a objetos consiste en un conjunto de métodos que se ejecutan en el orden específico al problema a resolver. Se revisará esta lógica a partir del ejemplo visto al final de la clase anterior. En este problema se pedía calcular el perímetro y el área de un círculo. Para la resolución de este problema se utilizará la metodología descrita:  PASO 1: ¿Qué se pide?  Se requiere el perímetro (per) y el área (área) de un círculo.  PASO 2: ¿Cuáles son los objetos y los atributos a utilizar?  El Objeto es el CÍRCULO y su atributo principal que permite calcular el perímetro y el área es el RADIO (r).  Para definir el Objeto CÍRCULO se crea la CLASE CÍRCULO que define los métodos a utilizar, estos son : 1. Crear círculo 2. Calc_area 3. Calc_perimetro

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

4

 PASO 3: ¿Qué método produce la salida deseada?  Como se mencionó anteriormente la clase principal es la clase de INICIO, la que incluye el método principal, en el cual en este caso se lee el Radio, dato imprescindible para calcular el área y el perímetro.  Luego se crea el objeto mediante la instrucción :  CREAR CIRCULO C1 con radio R Esto significa que se ha creado un objeto de clase Círculo llamado C1 con el valor r del radio que se ha leído anteriormente.  Luego se ejecuta el método C1.calc_area() y el resultado se deja en la variable área que es definida de tipo real mediante la siguiente instrucción: Real area = c1.calc_area(); Notar que el método Calc_area necesita el radio r para hacer el cálculo, pero este dato ya lo tiene disponible en la clase cuando se ejecutó el método CREAR Circulo con radio r  A continuación se escribe el resultado del área.  La siguiente acción invoca al método Calc_perimetro y almacena el resultado en la variable per que es también de tipo real, esta acción se realiza mediante la siguiente instrucción: Real per = C1.cal_perimetro();  Notar que para hacer referencia a cualquier método esta instrucción debe llevar el nombre del objeto asociado a la clase en que se encuentra el método requerido.

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

5

Fuente: Klages, E. (2009). Programación Orientada a Objetos, p. 7.

1.3 EJEMPLOS DE PSEUDOCÓDIGO ORIENTADO A OBJETOS 1.3.1 DETERMINAR EL VOLUMEN DE UN CUBO DE LADO 34 CLASE INICIO { METODO PRINCIPAL( ) { CREAR CUBO C1 CON LADO 34; REAL VOL = C1.CALC_VOLUMEN(); ESCRIBIR VOL; } }

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

6

CLASE CUBO { REAL ARISTA; METODO CREAR CUBO(REAL LADO ) { ARISTA=LADO; } METODO CALC_VOLUMEN( ) { REAL V =ARISTA*ARISTA*ARISTA; RETORNAR V; } } Fuente: Klages, E. (2009). Programación Orientada a Objetos, p. 11. El ejemplo anterior especifica la creación de una clase (CUBO) con un método para crear el objeto (CREAR CUBO) y un método que especifica la función de cálculo que da solución al problema (CALC_VOLUMEN). La definición de la clase CUBO no es efectiva hasta que funciona el método principal, en el cual en primer lugar se crea el objeto a utilizar (C1) y luego se ejecuta el método CAL-VOLUMEN.

1.3.2 CALCULAR EL VOLUMEN DE UN CUBO DE LADO 5 CLASE INICIO { METODO PRINCIPAL( ) { CREAR CUBO C1 CON LADO 34; REAL VOL = C1.CALC_VOLUMEN(); ESCRIBIR VOL; CREAR CUBO C2 CON LADO 5; REAL VOL = C2.CALC_VOLUMEN(); ESCRIBIR VOL; } }

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

7

CLASE CUBO { REAL ARISTA; METODO CREAR CUBO(REAL LADO ) { ARISTA=LADO; } METODO CALC_VOLUMEN( ) { REAL V =ARISTA*ARISTA*ARISTA; RETORNAR V; } } Fuente: Klages, E. (2009). Programación Orientada a Objetos, p. 12.

1.3.3 DETERMINAR EL CUBO DE UN NÚMERO CLASE INICIO { METODO PRINCIPAL( ) { REAL DATO; ESCRIBIR “INGRESE EL NUMERO”; LEER DATO; CREAR NUMERO N1 CON DATO; // NUMERO N1 = NEW NUMERO(DATO); REAL CUBO = N1.CALCULO_CUBO(); ESCRIBIR CUBO; } }

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

8

CLASE NUMERO { REAL VALOR; METODO NUMERO(REAL DATO) { VALOR=DATO; } METODO CALCULO_CUBO( ) { REAL C =VALOR*VALOR*VALOR; RETORNAR C; } } Fuente: Klages, E. (2009). Programación Orientada a objetos, p. 13.

1.3.4 DETERMINE QUÉ REALIZA EL SIGUIENTE CÓDIGO, EXPLIQUE PASO A PASO

CLASE INICIO { METODO PRINCIPAL( ) { OPERACION S = NEW OPERACION(55,92); ENTERO RES =S.SUMAR(); ESCRIBIR RES; } } CLASE OPERACION { ENTERO VALOR1,VALOR2; METODO OPERACION(ENTERO X,ENTERO Y ) { VALOR1=X; VALOR2=Y; } METODO SUMAR( ) | ESTE DOCUMENTO CONTIENE LA SEMANA 2

9

{

}

}

ENTERO RESULTADO =VALOR1+VALOR2; RETORNAR RESULTADO;

Fuente: Klages, E. (2009). Programación Orientada a Objetos, p. 14. En el ejemplo anterior existe una clase llamada operación que se encuentra integrada por dos métodos, estos son: Método Operación: este es el encargado de recibir los valores X e Y, y asignarlos a las variables de la clase Valor 1 y Valor 2. Método Sumar: este es el encargado de sumar las variables de la clase Valor 1 y Valor 2 y asignarlos a la variable de tipo entero que se denomina resultado. En el método principal se crea un objeto denominado s de clase operación con los valores iniciales X = 55 e Y = 92. OPERACION S = NEW OPERACION(55,92); Luego de crear el objeto se ejecuta el método sumar que pertenece al objeto “s“, cuyo resultado se asigna a la variable res de tipo entero. ENTERO RES =S.SUMAR(); Finalmente se muestra el resultado de la suma escribir res;

1.3.5 DETERMINAR EL PROMEDIO DE UN ALUMNO CON 3 NOTAS DE IGUAL PONDERACIÓN CLASE INICIO { METODO PRINCIPAL( ) { STRING NOM; REAL N1,N2,N3; ESCRIBIR “ING.NOMBRE Y 3 NOTAS”; LEER NOM, N1,N2,N3 CREAR ALUMNO A CON NOM,N1,N2,N3; REAL PROM =A.PROMEDIO(); | ESTE DOCUMENTO CONTIENE LA SEMANA 2

10

ESCRIBIR (“EL PROMEDIO ES”, PROM); }

} CLASE ALUMNO { REAL NOTA1,NOTA2,NOTA3; STRING NOMBRE; METODO ALUMNO(STRING NOM,REAL N1,REAL N2, REAL N3 ) { NOMBRE=NOM; NOTA1=N1; NOTA2=N2; NOTA3=N3; } METODO PROMEDIO( ) { REAL RESULTADO =(N1+N2+N3)/3; RETORNAR RESULTADO; } } Fuente: Klages, E. (2009). Programación Orientada a Objetos, p. 15.

1.3.6 DETERMINAR SI UN NÚMERO ENTERO ES MAYOR QUE 100 CLASE INICIO { METODO PRINCIPAL( ) { ENTERO DATO; ESCRIBIR “INGRESE EL NUMERO”; LEER DATO; NUMERO N =NUMERO(DATO); N.OPERACION(); } } CLASE NUMERO { ENTERO VALOR; METODO NUMERO(ENTERO DATO) | ESTE DOCUMENTO CONTIENE LA SEMANA 2

11

{

}

VALOR=DATO;

} METODO OPERACION( ) { SI VALOR >100 ESCRIBIR (VALOR, “ES MAYOR”); SINO ESCRIBIR (VALOR ,“ES MENOR”); }

Fuente: Klages, E. (2009). Programación Orientada a Objetos, p. 16.

2. PRESENTACIÓN DE UN LENGUAJE ORIENTADO A OBJETO JAVA Hoy en día existe una gran variedad de lenguajes de programación orientados a objetos, siendo uno de los más utilizados JAVA. En el curso se aprenderá los conceptos esenciales para realizar un programa en Java, para esto se partirá por conocer sus principales características (Manual de JAVA, s.f.).

2.1 SIMPLE Java posee características que eliminan los elementos confusos, por ejemplo de C y C++ de tal manera que permite un rápido y fácil aprendizaje. Java añade características muy útiles, como lo es el garbage collector (reciclador de memoria dinámica). Esto significa que no es necesario preocuparse de liberar memoria, lo cual reduce la fragmentación de la memoria introduciendo una variable de eficiencia importante en la ejecución de los programas desarrollados en JAVA. Java permite reducir hasta en un 50% los errores de programación más comunes al eliminar características como las siguientes, eliminando las palabras reservadas STRUCT y TYPEDEF:

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

12

Fuente: Manual de Introducción a JAVA. (s.f.) http://www.slideshare.net/mikelo86/manualjava-1545135

2.2 ORIENTADO A OBJETOS  Java trabaja los datos como objetos y provee interfaces a estos objetos.  Como lenguaje orientado a objetos provee sus 3 características básicas, estas son:   

Encapsulación Herencia Polimorfismo

 Las plantillas de objetos se denominan clases y sus copias se denominan instancias.  Las instancias deben ser creadas y destruidas en espacios de memoria.  Las clases en Java tienen una representación en tiempo de ejecución, lo cual le da un dinamismo que aumenta la eficiencia de los programas.

2.3 DISTRIBUIDO Existen numerosas librerías de Java con gran cantidad de capacidades que permiten interconexión TCP/IP, lo cual entrega la potencialidad de acceder a información de la Red de igual forma que en caso local.

2.4 ROBUSTO Java realiza validaciones en tiempo de compilación y en tiempo de ejecución, esto permite la detección de errores tempranamente en el ciclo de desarrollo, y esta es dada principalmente porque obliga a la declaración explícita de los métodos. Maneja la memoria para eliminar la posibilidad de corrupción de esta o de los punteros involucrados. | ESTE DOCUMENTO CONTIENE LA SEMANA 2

13

Un código de java que se ejecuta es porque ya sobrepasó exitosamente las etapas de compilación:   

Análisis de instrucciones Orden de operadores Etc.

2.5 ARQUITECTURA NEUTRAL Para que Java trabaje en la RED, durante la compilación se genera un archivo que posee formato independiente de la máquina en que se ejecutará e independiente de la máquina en que dicho código fue generado. La siguiente figura ilustra el funcionamiento de un código escrito en JAVA.

Fuente: Preparado por Lorena Irigoyen (2011). Curso Programación de Computadores II. UNIACC.

La siguiente figura ilustra de forma lógica la arquitectura de JAVA, en esta se muestra la existencia de librerías que permiten la interacción con la máquina y las APIs que permiten la interacción con el hardware que se requiera.

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

14

Fuente: Manual de Introducción a JAVA – http://www.slideshare.net/mikelo86/manual-java-1545135

Fuente: Manual de Introducción a JAVA – http://www.slideshare.net/mikelo86/manual-java-1545135

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

15

2.6 SEGURO La seguridad en Java tiene dos áreas, estas son: 1. La compilación nos permite asegurar que no existe ningún tipo de error en la sintaxis del código, que no se están violando reglas relacionadas con el tipo de datos utilizados y que los operadores utilizados corresponden a los tipos de datos con los que se están usando. 2. Además, el administrador de Clases utiliza primero búsqueda en las clases locales y luego en la red, siendo las clases provenientes de la red almacenadas en un especio privado donde se identifica el origen de esta. Se puede decir entonces que Java proporciona una alta seguridad ya que no accede a zonas delicadas de memoria o del sistema, por lo cual no se relaciona con virus que funcionan normalmente en estas áreas. Adicionalmente, con el objetivo de evitar modificaciones de intrusos de la red, implementa autentificación por clave pública. El administrador de Clases tiene la funcionalidad de validar una firma digital antes de generar la instancia de un objeto, esto implica que ningún objeto se crea ni almacena en la memoria, sin que antes sean verificados los privilegios de acceso correspondientes.

2.7 PORTABLE A la portabilidad entregada por ser una arquitectura independiente, JAVA tiene dos elementos adicionales, estos son: 

Los enteros son de 32 bits en complemento a 2 lo cual proporciona un estándar en las operaciones numéricas.



Con respecto a las interfaces de usuario, JAVA proporciona un sistema abstracto de ventanas que pueden ser implantadas en diferentes sistemas operativos como Unix, PC o Mac.

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

16

2.8 INTERPRETADO Para que Java pueda ser implementado en múltiples plataformas, es una combinación tanto interpretada como compilada. Esto quiere decir que el compilador genera un código intermedio que no es ejecutable directamente en ninguna máquina sino que este código se interpreta en el momento de la ejecución, para esto se requiere que exista en la máquina en que será ejecutado el run-time correspondiente al sistema operativo utilizado.

Fuente: Klages, E. (2011). Programación Orientada a Objetos, p. 10.

2.9 DINÁMICO Java conecta los módulos que comprenden una aplicación solo en el tiempo de ejecución.

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

17

Fuente: Manual de Introducción a JAVA – http://www.slideshare.net/mikelo86/manual-java-1545135

De esta misma manera, Java también simplifica el uso de nuevos protocolos cuando se conecta en cada punto de la ejecución.

Fuente: Preparado por Lorena Irigoyen (2011). Curso Programación de Computadores II. UNIACC.

Con el objetivo de evitar estar trayendo clases u objetos cada vez que se requiera, Java implementa las opciones de persistencia, esto evita que dichos objetos sean eliminados cuando se limpie la caché de la máquina, y permite que sean eliminados cuando el programa lo indique.

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

18

3. RESUMEN En esta clase se revisaron soluciones de problemas utilizando pseudocódigo orientado a objetos y se han estudiado las características de la arquitectura lógica y las ventajas de un lenguaje de programación, en específico JAVA. A partir de la próxima clase se iniciará el estudio en detalle de la construcción de un programa en JAVA.

4. BIBLIOGRAFÍA Flores C., J.J. (2003). Método para la solución de problemas utilizando la programación orientada a objetos. Universidad de San Martín de Porres. Facultad de Ingeniería y Arquitectura.

| ESTE DOCUMENTO CONTIENE LA SEMANA 2

19

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.