MODELO DE LAS 6D´S

628
  MÉTODO DE LAS 6’D UML – Pseudocódigo – Java (Enfoque algorítmico)

Transcript of MODELO DE LAS 6D´S

MTODO DE LAS 6D UML Pseudocdigo Java(Enfoque algortmico)

UNIVERSIDAD DE S AN M ARTIN DE PORRES Facultad de Ingeniera y Arquitectura

MTODO DE LAS 6D UML Pseudocdigo - Java(Enfoque algortmico)

Ing. Juan Jos Flores Cueto.

- 2005 -

A mi madre adorada, por siempre.

Lo que escucho, lo olvido. Lo que veo, lo recuerdo. Pero lo que hago, lo entiendo Confucio. Fallar no te convierte en un fracaso, aceptar el fracaso y no querer volver a intentarlo, si lo hace Richard Exley.

AGRADECIMIENTOS

Es importante destacar la participacin de mis alumnos del curso de Algoritmo y Estructura de Datos, integrantes del equipo de trabajo, formado para el desarrollo del presente libro. Este libro no se hubiera terminado en tan corto tiempo, con la calidad y cantidad de problemas desarrollados, sino hubiera sido por su valiosa colaboracin y aporte. A todos ellos, mi agradecimiento y mis sinceras felicitaciones por el trabajo realizado. Equipo de trabajo: Isabel Rojas Vidal. Jorge Condezo Guerra. Roberto Prez Huaman. Ricky Vilcachagua Mosquera. Shugeily Prez Campos. Boris Ortega Lescano.

Un agradecimiento especial a Isabel y a Jorge por participar desde el inicio hasta el final del proyecto, por todo el tiempo y esfuerzo dedicado. Gracias Jorge por verificar todos los programas desarrollados en Java. Deseo tambin hacer extensivo mi agradecimiento a todos los docentes que contribuyeron en el desarrollo del presente libro, a mi esposa Carmen por revisarlo y corregirlo, y a mi amigo Omar por disear la cartula. Finalmente, mi sincero agradecimiento a las autoridades de la Facultad de Ingeniera y Arquitectura (FIA) de la Universidad de San Martn de Porres (USMP), en especial al Ing. Ral Bao Garca, Decano de la FIA, por todo el apoyo brindado durante el desarrollo del presente libro.

NDICE PRESENTACIN. INDICE. PROLOGO. PREFACIO. CAPTULO I: Mtodo de las 6D. Un enfoque algortmico. Introduccin ........................................................................................................ Mtodo de las 6D ............................................................................................... Etapas y pasos ...................................................................................... Resumen del mtodo ............................................................................. Resultado de las etapas del mtodo ...................................................... Marco de trabajo ................................................................................................. Modelamiento ..................................................................................................... Algoritmo ............................................................................................................. Programacin ..................................................................................................... CAPTULO II: Estructuras fundamentales para la solucin de problemas. Introduccin ........................................................................................................ 61 Estructuras de datos. Variables ................................................................................................ 63 Tipos de datos ....................................................................................... 66 Conversin de datos .. 71 Estructuras lgicas. Estructuras lgicas de secuencia. Estructuras para la salida de informacin ESCRIBIR .................. 75 Estructuras para la entrada de datos LEER ................................. 76 Estructuras para operaciones aritmticas y de clculo ................ 78 Estructuras lgicas de decisin. Estructuras lgicas de decisin simple SI .................................... 80 Estructuras lgicas de decisin doble SI / SINO .......................... 82 Estructuras lgicas de decisin simple CUANDO ........................ 84 Estructuras lgicas de repeticin. Estructuras lgica de repeticin DESDE ...................................... 87 Estructuras lgica de repeticin MIENTRAS ................................ 90 Estructuras lgica de repeticin HACER ...................................... 93 Instrucciones de bifurcacin .................................................................. 97 Mapa de estructuras lgicas detallado .................................................. 98 Mtodo de las 6D. Etapas y pasos ....................................................... 99 Problemas resueltos en general del 01 al 27 ........................................ 101 Manejo de excepciones 195 Problemas resueltos del 28 al 31 ..... 198 25 27 28 35 36 37 39 45 54

Desarrollo de capacidades lgicas ..................................................................... 207 Problemas resueltos sobre figuras del 32 al 60 ..................................... 209

CAPTULO III: Clases bsicas incorporadas en el lenguaje Java. Introduccin ........................................................................................................ El paquete del lenguaje Java: java.lang ............................................................. Envoltorios de tipos de datos primitivos: wrappers. Introduccin ........................................................................................... Mtodos ................................................................................................. Problemas resueltos del 61 al 64 ........................................................... Funciones matemticas: Clase Math. Introduccin ........................................................................................... Mtodos ................................................................................................. Problemas resueltos del 65 al 99 ........................................................... Manejo de cadenas: Clase String. Introduccin ........................................................................................... Mtodos ................................................................................................. Problemas resueltos del 100 al 130 ....................................................... Otras clases en Java. Problema resuelto 131 ........................................................................... 259 263 267 269 278 281 282 287 339 340 345 397

CAPTULO IV: Estructuras de datos arreglos. Introduccin ........................................................................................................ Estructuras de datos: Arreglos. Definicin ............................................................................................... Tipos ...................................................................................................... Ventajas y desventajas .......................................................................... Representacin grfica .......................................................................... Declaracin, creacin e inicializacin de arreglos .............................. Ingreso de datos a un arreglo ................................................................ Manejo de datos de un arreglo .............................................................. Desarrollo de soluciones bsicas utilizando arreglos. Introduccin ........................................................................................... Formalizacin de la solucin utilizando el mtodo de las 6D ................ Problemas resueltos del 132 al 145 ....................................................... Desarrollo de soluciones utilizando mltiples arreglos. Arreglos paralelos .................................................................................. Problemas resueltos del 146 al 150 ....................................................... 401 403 403 404 406 408 412 414 416 425 425 493 495

CAPTULO V: Introduccin al Desarrollo de Soluciones Orientadas a Objetos. Introduccin ........................................................................................................ Conceptos bsicos. Clase ............................................................................................... Objeto ............................................................................................. Atributo ......................................................................... Mtodo .......................................................................... Mtodos que no devuelven valor y no reciben parmetros ...... Mtodos que devuelven valor y no reciben parmetros ........ Mtodos que no devuelven valor y reciben parmetros .... Mtodo constructor ... Ocultar atributos de instancia Ingreso de datos a travs del teclado .. Mtodo de las 6D. Etapas y pasos ...................................................... Problema resuelto 151 ........................................................................... Otros conceptos 527 532 534 535 542 544 547 550 554 556 559 561 563 569

APNDICE. Problemas propuestos ... 573 Clase Lectura ......................................................................................... 603 Otras clases Java. DecimalFormat, Calendar, GregorianCalendar, SimpleDateFormat ...................... 605 BIBLIOGRAFA ................................................................................................... 625

PRLOGO Quiero pensar que al aceptar el grato pedido de Juan Jos Flores Cueto para prologar su nuevo libro estoy compartiendo o participando de alguna manera en el excelente trabajo que ha realizado para poner al alcance de estudiantes e informticos un mtodo para la solucin de problemas utilizando una computadora. Al reflexionar sobre la tarea que representa escribir un prlogo para este libro, he reparado en lo difcil que resulta agregar valor al ya presentado por su contenido, pues el texto que mi joven amigo pone hoy a disposicin de nuestros alumnos y tambin de profesionales de la especialidad de computacin y sistemas, es resultado de la conjuncin de varios factores: su experiencia acadmica, su desempeo profesional y la constante necesidad de estar actualizado. Escasamente un ao atrs la Facultad de Ingeniera y Arquitectura de la USMP public el primer libro de J. J. Flores Cueto: Mtodo para la solucin de Problemas utilizando la Programacin Orientada a Objetos y, una de las muchas razones del xito obtenido por esa obra es que desarrolla una metodologa para la solucin de la gran cantidad de ejercicios, problemas y aplicaciones que contiene. Este novedoso mtodo est conformado por seis etapas y cada una de ellas tiene una denominacin que comienza con la letra D, lo que hace que estos seis pasos se puedan recordar fcilmente. Se tuvo en cuenta primordialmente al usuario y por ello, acertadamente, el mtodo es llamado ahora mtodo de las 6 Ds; pero es importante comprender que su uso puede extenderse a otros temas y a problemas con soluciones ms complicadas y que para eso se tiene que redefinir algunos de los pasos de las etapas especificadas en el mtodo. Comprobamos as, que la pera prima de Juan Jos contena, pues, ya el embrin de la segunda y de aqu, entonces, como consecuencia, el ttulo del libro que hoy motiva estas lneas: Mtodo de las 6D: UML Pseudocdigo Java. (Un enfoque algortmico). Por qu la prisa en publicar esta segunda parte? Sabemos que lo ms caracterstico de la informtica es su permanente dinmica, reflejada en la aparicin de nuevos paradigmas que deben aplicarse rpidamente, pero cuya difusin en los textos no tiene la misma celeridad. El rpido avance de la ciencia y de la tecnologa, que para muchos es agobiante, resulta estimulante para un espritu como el de este prolfico docente de la USMP. El panorama de la ingeniera de computacin y sistemas evoluciona y cambia mientras trabajamos en ella; al momento de aparecer su primer libro, nuestro autor saba ya cules eran las nuevas tendencias que se perfilaban, acumulaba informacin y escriba sobre ellas, profundizando en el mtodo de las 6 Ds para presentarnos en tan corto plazo una nueva obra. El mercado exige que los profesionales de Computacin y Sistemas conozcan la ltimas tcnicas de programacin e ingeniera de software y este libro responde a esas demandas introduciendo al estudiante en los conceptos de programacin estructurada y en el dominio de la programacin orientada a objetos, poniendo nfasis en la solucin de problemas y empleando a fondo las capacidades lgicas para el desarrollo de soluciones utilizando una computadora. A mi juicio, las caractersticas ms importantes del texto se reflejan en su fcil lectura y en su orientacin al estudiante; pero mejor aun: en el hecho de haber sido probado

con los alumnos, comprobando su progreso y teniendo en cuenta la definicin del problema, una buena documentacin y la planificacin de soluciones por algoritmos. Por lo arriba expresado y, por la amistad que me une a Juan Jos, es para m sumamente gratificante escribir estas apreciaciones sobre su segundo libro y le auguro nuevos aportes como ingeniero y como docente de la USMP.

Ing. Jos Antonio Chang Escobedo. RECTOR USMP.

PREFACIO Actualmente, existe una tendencia creciente en el uso de herramientas de desarrollo de software y lenguajes de programacin orientados a objetos. Tambin existen una serie de mtodos que permiten definir los pasos que se tienen que desarrollar para solucionar problemas basados en una computadora. Estos pasos generalmente se desarrollan desde el planteamiento del problema, anlisis del problema, diseo de la solucin, hasta la codificacin y prueba de la misma utilizando herramientas y lenguajes de programacin. En este libro se utiliza y se profundiza en el Mtodo de las 6D, a travs del cual se definen los pasos que se tienen que desarrollar para la solucin de un problema utilizando una computadora, agrupados en seis etapas (Descripcin del problema, Definicin de la solucin, Diseo de la solucin, Desarrollo de la solucin, Depuracin y pruebas, y Documentacin). Todos los nombres de las etapas del Mtodo de las 6D comienzan con la letra D (de ah el nombre de mtodo). Los conceptos y temas fundamentales, necesarios para el desarrollo de soluciones utilizando el Mtodo de las 6D y el desarrollo de sus capacidades lgicas, son tratados durante el desarrollo de los cinco captulos que forman parte del presente libro. Captulo I: Se desarrolla la parte terico formal del mtodo de las 6D. Se describen sus etapas, as como los pasos y los resultados que se deben esperar de cada una de ellas. Es importante mencionar que, dependiendo de la forma de solucionar los problemas, se van agregando, eliminando o redefiniendo los pasos de algunas de las etapas del mtodo. El mtodo de las 6D es interactivo e incremental y se puede utilizar la Ingeniera Reversa para actualizar los modelos a partir del cdigo creado. En este captulo, tambin se tratan los conceptos fundamentales sobre modelado y el lenguaje unificado de modelado UML, sobre Algoritmos y las herramientas de diseo conocidas como Diagrama de Flujo y Pseudocdigo, y sobre la programacin utilizando el lenguaje de programacin orientado a objetos Java. Captulo II: Se desarrolla la estructura de datos ms simple: la variable, y se complementa con el estudio de los tipos bsicos de datos, la conversin de datos y la forma cmo son utilizados por las herramientas tratadas en el captulo anterior.

En este captulo, tambin se tratan las estructuras lgicas de secuencia, las estructuras lgicas de decisin, las estructuras lgicas de repeticin, las instrucciones de bifurcacin y el manejo de excepciones. Las estructuras de datos, las estructuras lgicas y las instrucciones de bifurcacin son conceptos propios de la programacin estructurada y son utilizadas por la programacin orientada a objetos para la codificacin de los mtodos que forman parte de las clases. El manejo de excepciones es un concepto propio de la programacin orientada a objetos y ofrece una forma de codificar programas con una mayor claridad y sencillez, separando explcitamente el cdigo que maneja los errores del cdigo bsico de la aplicacin. Se presentan 31 problemas desarrollados utilizando el mtodo de las 6D, problemas que se van complicando conforme se tratan y explican los conceptos fundamentales. Tambin se presentan 30 problemas desarrollados sobre diferentes tipos de figuras geomtricas, con la finalidad de mejorar el desarrollo de sus capacidades lgicas. Es importante que se analicen cada una de las soluciones, se intenten mejorarlas y se desarrollen cada uno de los problemas propuestos incluyendo las variaciones planteadas. Captulo III: Se desarrollan los conceptos fundamentales sobre las clases bsicas incorporadas en el paquete java.lang del lenguaje de programacin Java. Se tratan los conceptos fundamentales sobre el paquete del lenguaje, el paquete java.lang, las clases wrappers (envoltorios), la clase Math y la clase String. Las clases Wrappers, son un complemento de los tipos de datos primitivos y proporcionan mtodos para realizar diferentes tareas con los tipos de datos primitivos, tales como la conversin con cadenas de caracteres, comprobacin, traslacin, entre otras. Se presentan 5 problemas codificados en Java para mejorar la comprensin del tema. La clase Math, proporciona mtodos y atributos para implementar diversas funciones matemticas. La clase Math contiene mtodos de clculo bsico como exponencial, logaritmo, raz cuadrada y funciones trigonomtricas. Se presentan 35 problemas codificados en Java para mejorar la comprensin del tema. La clase String, permite declarar y manipular variables de tipo texto o cadena (en realidad no se declaran variables de tipo texto o cadena, sino que se crean objetos de la clase String). La clase String contiene mtodos que permiten examinar los caracteres de una cadena para compararlos, ubicarlos, extraerlos como subcadenas, crear copias de

una cadena convirtiendo todos sus caracteres a letra mayscula o minscula, entre otras. Se presentan 30 problemas codificados en Java para mejorar la comprensin del tema. Tambin se hace una referencia a otras clases en Java que el lector puede explorar. En el apndice se incluyen otras clases Java, tales como las clases DecimalFomat, Calendar, GregorianCalendar y SimpleDateFormat. Captulo IV: Se desarrolla la estructura de datos conocida como arreglos (arrays), su definicin, tipos, representacin grfica, declaracin, creacin y su inicializacin. En base al marco terico se desarrollan soluciones para el ingreso, visualizacin y clculo de datos contenido en los arreglos, formalizando el mtodo de las 6D para el adecuado manejo de los mismos. Se presentan 14 problemas desarrollados, utilizando el mtodo de las 6D para mejorar la comprensin del tema. Finalmente, se presentan los conceptos fundamentales sobre el manejo de arreglos mltiples (arreglos en paralelos) y se desarrollan 5 problemas utilizando el mtodo de las 6D. Captulo V: Se desarrolla una introduccin al desarrollo de soluciones orientadas a objetos. Se tratan los conceptos bsicos fundamentales sobre las clases, objetos, atributos, mtodos y ocultamiento de atributos de instancia. Conforme se presenta cada uno de los conceptos mencionados, se va modificando un proyecto desarrollado en Java para que se pueda analizar como se utiliza el concepto tratado en un lenguaje de programacin orientado a objetos. Al final de este captulo, se formaliza el mtodo de las 6D, redefiniendo algunos de sus pasos para poder ajustar el mtodo a este tipo de soluciones. Es importante comentar que el presente captulo, fue el primero en ser desarrollado. A pesar de ello, se consider no incluirlo en el presente texto, pero faltando unos das para la entrega oficial de todo el material que conformaba el presente libro fue incluido. Finalmente, considero una buena decisin que se incluyera el presente captulo. Estoy seguro que el lector estar de acuerdo conmigo.

Como se puede apreciar, se profundiza en el Mtodo de las 6D. Es importante comprender que se puede extender el uso del mtodo a otros temas y a problemas con soluciones mucho ms complicadas. Slo se tendr que redefinir algunos de los pasos de las etapas especificadas en el mtodo. Por otro lado, tambin se tratan conceptos de la programacin estructurada y fundamentos de programacin orientada a objetos, los cuales permiten sentar las bases modernas para la programacin, necesarias para el desarrollo de soluciones utilizando una computadora. Los temas desarrollados a travs de los 5 captulos que forman parte de esta obra, pueden ser utilizados de diferente manera de acuerdo a la experiencia de cada persona. Es importante indicar que el lector tendr un mejor entendimiento del mtodo empleado en la solucin de los problemas y de todos los conceptos tratados, conforme avance con el entendimiento de los problemas resueltos y el desarrollo de los problemas propuestos.

Ing. Juan Jos Flores Cueto.

CaptuloMTODO DE LAS 6D Un Enfoque Algortmico

1

Temas: Introduccin. Mtodo de las 6D: Etapas y pasos. Resumen del mtodo. Resultado de las etapas del mtodo.

Marco de trabajo. Modelamiento. Algoritmo. Programacin.

MTODO DE LAS 6D Un Enfoque Algortmico.

CAPTULO I MTODO DE LAS 6D Un Enfoque Algortmico INTRODUCCIN Durante el transcurso de nuestra vida nos enfrentamos a diversos problemas. Algunos de ellos podemos solucionarlos fcilmente, mientras que otros se complican de tal forma que nos afectan de una manera muy profunda. Algunos problemas, por su naturaleza, pueden ser resueltos utilizando una computadora. Estos problemas generalmente son de tipo estructurado, es decir, tienen una solucin determinada y pueden ser desde muy sencillos hasta muy complejos. Para resolver problemas estructurados utilizando la computadora es importante utilizar un mtodo. Este mtodo debe ser fcil de comprender y nos debe guiar paso a paso hasta la solucin del problema. El mtodo propuesto y utilizado en el presente texto es el Mtodo de las 6D, que est compuesto de seis etapas, cada una de las cuales consta de una serie de pasos, los cuales se van modificando (ajustando) dependiendo del grado de complejidad del problema y las herramientas que se utilicen para su solucin. Con la finalidad de recordar el mtodo, se ha definido que el nombre de cada una de las etapas del mtodo comience con la misma letra, la letra D. Es decir, el mtodo tiene seis etapas y el nombre de cada una de las etapas comienza con la letra D, de modo que este se pueda recordar como el Mtodo de las 6D.

Pag. 25

Ing. Juan Jos Flores Cueto.

Pag. 26

MTODO DE LAS 6D Un Enfoque Algortmico.

MTODO DE LAS 6D En la siguiente figura se muestra el Mtodo de las 6D con sus respectivas etapas:

Etapa 01Descripcin Problema

Etapa 02Definicin Solucinn veces

Etapa 03Diseo Solucin

Ingeniera Reversa Etapa 04Desarrollo Solucin

Etapa 05Depuracin Pruebas

Etapa 06Document.

Pag. 27

Ing. Juan Jos Flores Cueto.

ETAPAS Y PASOS METODO 6D. Descripcin de la Etapa 01 Descripcin del Problema: Etapa 01 Descripcin del ProblemaEn esta etapa, en primer lugar, es necesario identificar cual es el problema que se desea resolver. Esto que parece algo sumamente sencillo, muchas veces resulta una tarea agotadora ya que generalmente existen muchas opiniones de cual es el problema central. Identificarlo es una de las tareas ms importante que los analistas deben afrontar. Identificado el problema es necesario poder comprenderlo en su totalidad, es decir, comprender qu es exactamente lo que se desea que se resuelva. Finalmente se deber escribir un enunciado claro, concreto y conciso del problema a resolver. PASOS: Identificacin del problema. Descripcin general del problema. Enunciado claro y preciso del problema.

ENUNCIADO

El resultado obtenido en esta etapa es un enunciado claro del problema que se desea solucionar.

Pag. 28

MTODO DE LAS 6D Un Enfoque Algortmico.

METODO 6D. Descripcin de la Etapa 02 Definicin de la Solucin: Etapa 02 Definicin de la SolucinEn esta etapa, es necesario estudiar a fondo el problema para poder solucionarlo, saber exactamente en qu consiste y poder descomponerlo en cada una de sus partes para facilitar su comprensin y posterior solucin. Esta es una regla que siempre deber ser aplicada se utilice o no una computadora en la solucin de un problema. Una vez entendido el problema, se est en condiciones de estudiarlo a fondo y plantear diversas alternativas que permitan solucionar el problema, para finalmente, seleccionar la alternativa mas adecuada.

PASOS: Definir el resultado deseado. Determinar los datos que se deben ingresar o generar para obtener el resultado deseado. Determinar la forma en que los datos sern procesados para transformarlos en informacin.

ESPECIFICACIONES

El resultado obtenido en esta etapa son las especificaciones de lo que se debe hacer para solucionar el problema.

Pag. 29

Ing. Juan Jos Flores Cueto.

METODO 6D. Descripcin de la Etapa 03 Diseo de la Solucin: Etapa 03 Diseo de la SolucinDefinida la solucin, se procede a disear la lgica modelando y desarrollando algoritmos. Para el modelado de la solucin del problema se utiliza el Lenguaje Unificado de Modelado (Unified Modeling Language, UML), el cual es una herramienta usada para describir clases, objetos y sus relaciones. Para el desarrollo de algoritmos se utiliza Pseudocdigos o Diagramas de Flujo (DF), los cuales son herramientas utilizadas para disear los algoritmos de los diferentes mtodos de una clase. Finalizado el desarrollo de los algoritmos es necesario verificar si se ha incluido soluciones para todas las formas en que se presente el problema. A este tipo de prueba se le denomina Prueba de escritorio.

PASOS: Definir un nombre para el proyecto. Definicin de diagramas, relaciones y clases. Desarrollo de Algoritmos.

DIAGRAMAS Y ALGORITMOS

El resultado obtenido en esta etapa son los diagramas y los algoritmos que especifican cmo se debe hacer para solucionar el problema.

Pag. 30

MTODO DE LAS 6D Un Enfoque Algortmico.

METODO 6D. Descripcin de la Etapa 04 Desarrollo de la Solucin: Etapa 04 Desarrollo de la SolucinUna vez previstas todas las posibilidades y alternativas que puedan presentarse y que pasen sin inconvenientes por la clase y los algoritmos, se podr proceder a la codificacin del problema en algn lenguaje de programacin. La codificacin involucra traducir los diagramas, las especificaciones de las clases (expresadas en notacin UML), y los pasos del algoritmo de cada mtodo (expresado en DF o pseudocdigo), en sentencias de un lenguaje de programacin determinado. Estas sentencias son almacenadas en un proyecto (o archivo) lgico, y constituyen lo que la computadora podr ejecutar. PASOS: Codificar el proyecto. Desarrollar comentarios internos en los programas de computadora. Desarrollar copias de seguridad de los programas de computadora.

PROGRAMAS

El resultado obtenido en esta etapa son los programas y/o clases, codificados en un lenguaje de programacin, que permiten solucionar el problema.

Pag. 31

Ing. Juan Jos Flores Cueto.

METODO 6D. Descripcin de la Etapa 05 Depuracin y Pruebas: Etapa 05 Depuracin y PruebasLuego que se codifiquen los programas y/o clases, deben ser probados mediante la ejecucin de los mismos (esto es conocido como corrida del programa). Al realizarse sta, pueden surgir diferentes tipos de errores, siendo los errores de lgica y sintaxis los ms comunes. Hay que corregir el programa; anular, modificar o crear nuevas sentencias, volver a probar el programa y continuar con la correccin y pruebas hasta conseguir el resultado deseado. PASOS: Realizar la depuracin y verificar la correcta escritura de los programas. Realizar pruebas de sintaxis. Realizar pruebas de lgica.

PRUEBAS

El resultado obtenido en esta etapa son las pruebas que registran el adecuado funcionamiento de la solucin del problema.

Pag. 32

MTODO DE LAS 6D Un Enfoque Algortmico.

METODO 6D. Descripcin de la Etapa 06 Documentacin: Etapa 06 DocumentacinEn esta etapa se recopila toda la documentacin generada en las etapas anteriores, la cual va a servir como base para la elaboracin del manual tcnico. Dedicarle tiempo a esta etapa nos ayudar a desarrollar buenos hbitos, los cuales sern necesarios cuando se desarrolle software en forma profesional. El manual tcnico debe incluir, como mnimo:Descripcin del problema. Resultados esperados y datos necesarios para generar dichos resultados. Diagramas UML, DF y/o Pseudocdigo. Pruebas desarrolladas. Listado de programas con comentarios internos.

-

PASOS: Recopilar el material generado en cada una de las etapas anteriores. Generar el manual del programa. Generar el manual del usuario.

Manuales

El resultado obtenido en esta etapa son los manuales que permiten un adecuado manejo de la solucin desarrollada.

Pag. 33

Ing. Juan Jos Flores Cueto.

METODO 6D.Adicionalmente es posible realizar Ingeniera Reversa entre las Etapas 03, 04 y 05:La ingeniera reversa nos permite crear o actualizar el modelo preliminar realizado en la ETAPA 03 Diseo de la solucin a partir del cdigo del programa realizado en la ETAPA 04 Desarrollo de la solucin y corregido en la ETAPA 05 Depuracin y pruebas. Es decir, a travs de la Ingeniera Reversa es posible programar o codificar algunas partes (hasta su correcto funcionamiento) que no estn especificadas en la Etapa 03 Diseo de la Solucin. A partir de esta solucin se actualizan los diagramas de la Etapa 03 y se contina con el proceso hasta llegar a la solucin deseada.

Ingeniera Reversa

n veces

Etapa 03Diseo Solucin

Etapa 04Desarrollo Solucin

Etapa 05Depuracin Pruebas

PASOS:

Exportar proyecto (archivos class o java) al disco de la PC, si est trabajando con un IDE. Importar proyecto (archivos class o java) a una herramienta CASE y realizar la ingeniera reversa. Organizar el modelo obtenido en la herramienta CASE.

DIAGRAMAS ACTUALIZADOS

Pag. 34

MTODO DE LAS 6D Un Enfoque Algortmico.

RESUMEN DEL MTODO

METODO 6D.

Resumen de las etapas y los pasos del mtodo:

Etapa 01 Etapa 03 Diseo Solucin Desarrollo Solucin Depuracin Pruebas

Etapa 02

Etapa 04

Etapa 05

Etapa 06 Document.

Descripcin Problema

Definicin Solucin

el

Identificacin del problema. Descripcin general del problema. Enunciado claro y preciso del problema. Definir un nombre para el proyecto. Definicin de diagramas, relaciones y clases. Desarrollo de Algoritmos. Codificar proyecto. Desarrollar comentarios internos en programas computadora. Desarrollar copias seguridad de programas computadora.

los de de los de

Definir el resultado deseado. Determinar los datos que se deben ingresar o generar para obtener el resultado deseado. Determinar la forma en que los datos sern procesados para transformarlos en informacin.

Realizar la depuracin y verificar la correcta escritura de los programas. Realizar pruebas de sintaxis. Realizar pruebas de lgica.

Recopilar el material generado en cada una de las etapas anteriores. Generar el manual del programa. Generar el manual del usuario.

Pag. 35

Ing. Juan Jos Flores Cueto.

RESULTADO DE LAS ETAPAS DEL MTODO

METODO 6D.

Resultado de las etapas del Mtodo:

Etapa 01 Etapa 03 Diseo Solucin Desarrollo Solucin Depuracin Pruebas

Etapa 02

Etapa 04

Etapa 05

Etapa 06 Document.

Descripcin Problema

Definicin Solucin

ENUNCIADO

ESPECIFICACIONES

DIAGRAMAS Y ALGORITMOS

PROGRAMAS

PRUEBAS

Manuales

Pag. 36

MTODO DE LAS 6D Un Enfoque Algortmico.

MARCO DE TRABAJO En el presente texto se solucionarn problemas sencillos utilizando el Mtodo de las 6D. La solucin de los problemas comenzar con el enunciado del problema y luego se desarrollar la etapa 02 (Definicin de la solucin), etapa 03 (Diseo de la solucin) y etapa 04 (Desarrollo de la solucin), es decir, solo se desarrollarn las tres etapas del mtodo que son posibles especificar en el presente texto. La etapa 05 (Depuracin y pruebas) se desarrolla directamente en un lenguaje de programacin y la etapa 06 (Documentacin) es la recopilacin del material y la elaboracin de los manuales respectivos.Etapa 01 Descripcin Problema

ENUNCIADO Etapa 02 Definicin Solucin

MARCO DE TRABAJO

Etapa 03 Diseo Solucin

Etapa 04 Desarrollo Solucin

Pag. 37

Ing. Juan Jos Flores Cueto.

Es importante precisar que en la primera parte del captulo II, en el captulo IV y en el captulo V del presente texto, se solucionan los problemas utilizando el marco de trabajo especificado, mientras que en la segunda parte del captulo II y el captulo III, solo se desarrolla la etapa 04 (Desarrollo de la solucin), con la finalidad de resolver una mayor cantidad de problemas y profundizar en la codificacin utilizando el lenguaje de programacin Java. Para poder solucionar problemas sencillos utilizando el Mtodo de las 6D, es necesario conocer los conceptos fundamentales de modelamiento, algoritmo y programacin, y dominar el uso de las estructuras lgicas, instrucciones o sentencias de bifurcacin y las estructuras de datos. Este tipo de soluciones son el objetivo del presente texto. Tambin es posible plantear soluciones ms complejas utilizando el Mtodo de las 6D. Para ello se tendra que dominar otros conceptos, tales como, Objetos, Mtodos, Encapsulamiento, Herencia, Polimorfismo, Interfaces Grficas, Conexin a Base de Datos, Servlets entre otros. Es importante mencionar, que dependiendo de la complejidad del problema, los pasos especificados en cada una de las etapas del mtodo se pueden redefinir (modificar). Esto significa, que dependiendo de la complejidad del problema y de su solucin, se puede plantear nuevos pasos y eliminar pasos ya existentes en las diferentes etapas del mtodo.

Pag. 38

MTODO DE LAS 6D Un Enfoque Algortmico.

MODELAMIENTO El modelamiento se refiere a la forma como se representa la solucin de un problema del mundo real en trminos de un modelo. Un modelo es una representacin grfica o simblica de algn aspecto del mundo real, que est bajo observacin o estudio. Para representar un modelo se utilizar el UML (Unified Modeling Language). El Lenguaje Unificado de Modelado (UML) es un lenguaje grfico que nos permite: Visualizar un modelo. Especificar un modelo (construir modelos precisos, no ambiguos). Construir un modelo en un lenguaje de programacin (se establecen correspondencias con lenguajes Orientados a Objetos, como Java, C++, Visual Basic...). Documentar los componentes de un sistema de software (arquitectura, requisitos, diseo, pruebas, versiones, planificacin...). Describir el ciclo de vida completo del desarrollo Orientado a Objetos.

Para desarrollar un modelo y representarlo en UML, es necesario conocer todos los conceptos relacionados con el desarrollo de Software Orientado a Objetos. Para nuestro propsito, se detallarn algunos conceptos bsicos que sern utilizados en las soluciones planteadas en el presente texto.Paquete.- Los paquetes nos permiten organizar las clases de un modelo. Un paquete contiene clases que tienen funciones similares. En UML, un paquete se representa de la siguiente forma:

NombrePaquete

Nombre del paquete.

Clase.- Una clase, es simplemente, un modelo que se utiliza para describir uno o ms objetos del mismo tipo. En su forma ms sencilla, una clase es un conjunto de atributos y mtodos. Una clase es una abstraccin y no

Pag. 39

Ing. Juan Jos Flores Cueto.

representa a ningn objeto en particular. En UML, una clase se representa de la siguiente forma: Nombre de la clase y del paquete al cual pertenece la clase. Lista de atributos de la clase. Lista de mtodos de la clase.

NombreClase(NombrePaquete al que pertenece)

Atributos Mtodos

Objeto.- Un objeto es cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y los mtodos que controlan y manipulan dichos datos. Un objeto se crea o instancia a partir de una clase, En UML, un objeto se representa de la siguiente forma:

NombreClase : nombreObjeto

Nombre de la clase a la cual pertenece el objeto y el nombre del objeto. Ambos nombres deben estar separados por dos puntos.

UML incorpora nueve diagramas que permiten representar un modelo desde diferentes perspectivas, los cuales se muestran a continuacin:Diagramas de Clase Paquete

Diagramas de Secuencia

Diagramas de Casos de Uso

Diagramas de Objeto

Diagramas de Colaboracin

Diagramas de Componentes

ModeloDiagramas de Estado Diagramas de Distribucin

Diagramas de Actividad

Pag. 40

MTODO DE LAS 6D Un Enfoque Algortmico.

Para nuestro propsito, se detallar el diagrama de paquetes que ser utilizado en las soluciones planteadas en el presente texto.Diagrama de paquetes.- Un diagrama de paquetes permite especificar y visualizar las relaciones de dependencia que existe entre los paquetes que forman parte de una solucin. Una relacin de dependencia entre dos o ms paquetes se establece cuando las clases que pertenecen a un paquete pueden tener acceso a todas o a algunas de las clases que pertenecen a otro paquete (dependencia unidireccional). Tambin se puede establecer una relacin de dependencia bidireccional cuando las clases que pertenecen a un paquete pueden tener acceso a todas o a algunas de las clases que pertenecen a otro paquete y viceversa. En UML, una relacin de dependencia unidireccional entre dos paquetes se grfica de la siguiente manera:

Relacin de dependencia unidireccional.

La dependencia en este caso significa que todas las clases que pertenecen al paquete dominioDeLaAplicacion podrn tener acceso a todas o algunas de las clases que pertenecen al paquete biblioteca (observe el sentido de la flecha que marca la dependencia unidireccional).

Pag. 41

Ing. Juan Jos Flores Cueto.

En el Mtodo de las 6D, el modelamiento de una solucin se desarrolla durante la Etapa 03 - Diseo de la solucin:Etapa 03 Diseo Solucin

Se desarrollan los siguientes pasos: Definir un nombre para el proyecto. La definicin del nombre del proyecto, permite agrupar a todos los elementos que sern parte de la solucin del problema utilizando el mtodo planteado. El nombre del proyecto comenzar con las letras Proy (abreviatura de proyecto), seguido de un nombre que identifique al proyecto. Este nombre debe ser seleccionado adecuadamente. Definicin de diagramas, relaciones y clases. En este paso se desarrollar el diagrama de paquetes y se especificar la relacin de dependencia entre los paquetes utilizando UML. Para nuestros fines se crearn dos paquetes en las soluciones. Uno de ellos lo se llamar dominioDeLaAplicacin y el otro biblioteca, y se establecer una relacin de dependencia unidireccional del primero hacia el segundo. En el paquete dominioDeLaAplicacion, se definir la clase que permitir solucionar el problema planteado utilizando UML. El nombre de la clase comenzar con las letras Prg (abreviatura de programa), seguido de un nombre que identifique a la clase. Este nombre debe ser seleccionado adecuadamente. Dicha clase no tendr ningn atributo definido y solo se definir un mtodo (el mtodo principal).

Pag. 42

MTODO DE LAS 6D Un Enfoque Algortmico.

En el paquete biblioteca, se tendr clase Lectura1 que facilitar el ingreso de los datos a la computadora.

Regla general para especificar los nombres de los paquetes, clases, atributos y mtodos: El nombre de la clase y el nombre del paquete deben comenzar con una letra mayscula y el resto en minscula. Si el nombre es compuesto, todas las primeras letras de los nombres simples que forman el nombre de la clase o paquete debern comenzar con mayscula. Los nombres de los atributos se escriben en minscula. En caso que el nombre sea compuesto, a partir de la segunda palabra se escribe la primera letra en mayscula. Los nombres de los mtodos cumplen las mismas caractersticas que los nombres de atributos a excepcin de los mtodos constructores.

1

La clase Lectura se trata en el Captulo II y se especifica en el Apndice.

Pag. 43

Ing. Juan Jos Flores Cueto.

Pag. 44

MTODO DE LAS 6D Un Enfoque Algortmico.

ALGORITMO Una clase, en su forma ms simple, est constituida por atributos y mtodos. Los mtodos representan pequeos subprogramas encapsulados dentro de las clases y contribuyen a definir el comportamiento tpico de los objetos. Para especificar cules son los pasos desarrollados en un determinado mtodo y cules son los datos que manejan dichos pasos se desarrollan los algoritmos. Un algoritmo constituye una lista completa de los pasos y una descripcin de los datos que son necesarios para resolver un determinado problema en el mbito de un mtodo. De esto, se deriva que un algoritmo se desarrolla para un determinado mtodo y que su definicin tiene dos partes esenciales:Una lista de pasos que deben ser ejecutados. Una descripcin de los datos que son manipulados por estos pasos. CARACTERSTICAS Descripcin de los pasos que deben ser ejecutados (estructuras lgicas). Descripcin de los datos que son manipulados por estos pasos (estructuras de datos). Un algoritmo debe ser preciso, indicando el orden de realizacin de cada paso. Todo algoritmo debe ser finito. Si se sigue un algoritmo, ste debe terminar en algn momento. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado. Un algoritmo puede o no tener datos de entrada. Un algoritmo producir uno o ms datos de salida.

Pag. 45

Ing. Juan Jos Flores Cueto.

Los datos de entrada y salida deben almacenarse en estructuras de datos. El resultado que se obtenga debe satisfacer los requerimientos de la persona interesada (efectividad). Debe ser estructurado. Es decir, debe ser fcil de leer, entender, usar y cambiar si es preciso.

En conclusin, los algoritmos permiten especificar la lgica de desarrollo de los mtodos que conforman una clase. Por lo tanto, se debe entender la importancia de estudiar los algoritmos para comprender como se est solucionando un determinado problema.

Se dispone de diversas herramientas para desarrollar los algoritmos para los mtodos de las clases. Entre dichas herramientas se puede mencionar al pseudocdigo y al diagrama de flujo.HERRAMIENTAS

PSEUDOCODIGOUn pseudocdigo permite expresar un algoritmo con palabras en castellano que son semejantes a las sentencias de un lenguaje de programacin. Pautas bsicas: Todo algoritmo debe tener un nombre, el cual deber comenzar con una letra mayscula. Si es un nombre compuesto, la primera letra de cada palabra simple deber estar en mayscula. No se permiten los espacios en blanco en el nombre del algoritmo (generalmente se utilizar el nombre de la clase y el nombre del mtodo para referirse a un determinado algoritmo). Es necesario que se determinen los datos de entrada y la informacin de salida. Para declarar una variable x se deber determinar qu tipo de dato se almacenar. Por ejemplo. Si se desea declarar una variable de tipo texto se realizara de la siguiente manera: TEXTO x. Para asignar un valor a una variable x se utiliza el signo igual. Por ejemplo, si se desea asignar 5 a la variable x se realizar de la siguiente manera: x = 5.

Pag. 46

MTODO DE LAS 6D Un Enfoque Algortmico.

Para indicar que la computadora lea un valor desde un dispositivo externo y lo almacene en la variable z, se utiliza: LEER z. Para indicar que la computadora escriba hacia un dispositivo externo: Para escribir un mensaje (observe que el mensaje est entre comillas) se utiliza: ESCRIBIR hola. Para escribir el valor de una variable (observe que la variable no est entre comillas) se utiliza: ESCRIBIR x. Para escribir el resultado de una expresin (observe que la expresin no est entre comillas) se utiliza: ESCRIBIR x + 2. Estructura bsica de un pseudocdigo: Algoritmo NombreClase nombreMetodo() ENTRADA: SALIDA: INICIO FIN

En ENTRADA y SALIDA se especifican las variables que se usarn en el desarrollo del algoritmo. Este es el cuerpo del algoritmo expresado en pseudocdigo. Las instrucciones se colocan entre INICIO... FIN.

DIAGRAMA DE FLUJO Un Diagrama de Flujo permite ilustrar la secuencia de pasos de un algoritmo por medio de smbolos especializados y lneas de flujo. La combinacin de smbolos especializados y lneas de flujo describe la lgica para la solucin del problema (algoritmo). Entonces, se puede afirmar que el Diagrama de Flujo es la representacin grfica de un algoritmo.

FLUJO Porque muestra la secuencia de lo que se tiene que realizar.

DIAGRAMA Por el hecho de ser un dibujo que no requiere estar a escala.

Pag. 47

Ing. Juan Jos Flores Cueto.

Elementos o smbolos bsicos:

PROCESO Utilizado para asignar valores a variables y resultados de operaciones matemticas.

ENTRADA / SALIDA Utilizado para ingresar datos y visualizar informacin que resulta del procesamiento. la

INICIO / FIN Este smbolo permite marcar el inicio y el final del algoritmo.

CONECTOR Este smbolo permite que no se crucen los flujos (lneas) en un diagrama.

FLUJOS (LINEAS) Lneas que permiten unir los diagramas y mostrar la secuencia lgica a la solucin del problema.

Pag. 48

MTODO DE LAS 6D Un Enfoque Algortmico.

REGLAS UTILIZADAS POR LAS HERRAMIENTAS Con la finalidad de comprender mejor el diseo de los algoritmos, desarrollados en pseudocdigo y diagrama de flujo, se han clasificado en 6 grupos las reglas definidas.REGLA FORMATO DESCRIPCIN GRUPO 1

LEER

LEER x

Utilizada para el ingreso de datos. El dato ingresado se almacena en la variable especificada.

ESCRIBIR

ESCRIBIR Hola ESCRIBIR x ESCRIBIR x + z

Utilizada para la salida de informacin. Se puede visualizar una cadena, el contenido de una variable o el resultado de una operacin matemtica.

COMENTARIO

COMENTARIO Variables

Utilizada para realizar comentarios internos en la codificacin de las soluciones. Permite declarar una variable de tipo numrico. Permite declarar una variable de tipo texto o cadena. Permite declarar a una variable de tipo texto o cadena de una sola letra. Permite declarar una variable de tipo lgico. Permite asignar el valor VERDADERO a una variable lgica. Permite asignar el valor FALSO a una variable lgica.

NUMERO

NUMERO x

TEXTO

TEXTO mensaje

CARACTER

CARACTER letra

LGICO

LGICO aprobado

VERDADERO

aprobado = VERDADERO

FALSO

aprobado = FALSO

GRUPO 2 SI (condicin) ENTONCES instrucciones... FINSI Permite especificar una estructura de decisin simple SI... FINSI. Las estructuras lgicas sern tratadas en el captulo II.

SI

Pag. 49

Ing. Juan Jos Flores Cueto.

REGLA

FORMATO SI (condicin) ENTONCES instrucciones... SINO instrucciones... FINSI CUANDO (variable) SEA CASO (valor 1) : instrucciones... CASO (valor 2) : instrucciones... CASO (valor n) : instrucciones... OTROS instrucciones.. FINCUANDO DESDE i = valorInicial HASTA valorFinal instruccin 1 . . . instruccin n FINDESDE MIENTRAS (condicin) instruccin 1 . . . instruccin n FINMIENTRAS HACER instruccin 1 . . . instruccin n MIENTRAS (condicin)

DESCRIPCIN Permite especificar una estructura de decisin doble SI... SINO... FINSI. Las estructuras lgicas sern tratadas en el captulo II.

SI / SINO

Permite especificar una estructura de decisin mltiple CUANDO... FINCUANDO. Las estructuras lgicas sern tratadas en el captulo II.

CUANDO

DESDE

Permite especificar una estructura de repeticin DESDE... FINDESDE. Las estructuras lgicas sern tratadas en el captulo II.

MIENTRAS

Permite especificar una estructura de repeticin MIENTRAS...FINMIENTRAS. Las estructuras lgicas sern tratadas en el captulo II.

HACER

Permite especificar una estructura de repeticin HACER...FINHACER. Las estructuras lgicas sern tratadas en el captulo II.

TERMINAR

TERMINAR

Permite terminar la ejecucin de una estructura lgica de repeticin.

CONTINUAR

CONTINUAR

Permite volver a ejecutar una estructura lgica de repeticin sin finalizar todas las instrucciones que forman parte de la misma.

Pag. 50

MTODO DE LAS 6D Un Enfoque Algortmico.

REGLA

FORMATO

DESCRIPCIN GRUPO 3

COSENO

x = COSENO n

Permite obtener el coseno del valor almacenado en la variable n. El resultado se almacena en la variable x. Ver captulo III.

SENO

x = SENO n

Permite obtener el seno del valor almacenado en la variable n. El resultado se almacena en la variable x. Ver captulo III. Permite obtener la longitud de la cadena almacenada en la variable n o la longitud del vector n. El resultado se almacena en la variable x. Ver captulo III y captulo IV. Permite obtener el nmero de filas de una matriz n. El resultado se almacena en la variable x. Permite obtener el nmero de columnas de una matriz n. El resultado se almacena en la variable x. Permite cambiar a mayscula la cadena almacenada en la variable n. El resultado se almacena en la variable x. Ver captulo III. Permite cambiar a minscula la cadena almacenada en la variable n. El resultado se almacena en la variable x. Ver captulo III.

LONGITUD

x = LONGITUD n

FILA

x = FILA n

COLUMNA

x = COLUMNA n

MAYSCULA

x = MAYSCULA n

MINUSCULA

x = MINUSCULA n

GRUPO 4

RESTO

x = z RESTO n

Permite obtener el resto de la divisin entre las variables z y n. El resultado se almacena en la variable x.

DIVIDIR

x = z DIVIDIR n

Permite obtener la parte entera de la divisin de las variables z y n. El resultado se almacena en la variable x. Permite obtener la raz n del nmero z. El resultado se almacena en la variable x.

RAIZ

x = z RAIZ n

Pag. 51

Ing. Juan Jos Flores Cueto.

REGLA POTENCIA

FORMATO x = z POTENCIA n

DESCRIPCIN Permite obtener la potencia n del nmero z. El resultado se almacena en la variable x. Permite obtener el nmero mayor entre el valor almacenado en la variable n y la variable z. El resultado se almacena en la variable x. Permite obtener el nmero menor entre el valor almacenado en la variable n y la variable z. El resultado se almacena en la variable x. Permite obtener el carcter ubicado en la posicin n de la cadena z. El resultado se almacena en la variable x. Permite obtener un nmero cualquiera (aleatorio) entre los valores de n y z. El resultado se almacena en la variable x.

MAXIMO

x = z MAXIMO n

MINIMO

x = z MINIMO n

CARACTER

x = z CARACTER n

ALEATORIO

x = z ALEATORIO n

GRUPO 5 Permite obtener una subcadena comprendida entre las posiciones especificadas por n1 y n2 de la cadena z. El resultado se almacena en la variable x.

SUBCADENA

x = z SUBCADENA n1, n2

ELIMINAESPACIO x = z ELIMINAESPACIO n1, n2

Permite eliminar los espacios existentes en una cadena entre las posiciones especificadas por n1 y n2. El resultado se almacena en la variable x.

GRUPO 6 Utilizada para crear arreglos previamente declarados. Un arreglo permite almacenar ms de un dato del mismo tipo. Los arreglos sern tratados en el captulo IV. Permite crear un determinada clase objeto de una

CREAR

CREAR vector[n] CREAR matriz[n1][n2]

CREAR

CREAR objeto

EJECUTAR

EJECUTAR algoritmo

Permite ejecutar otro algoritmo.

Pag. 52

MTODO DE LAS 6D Un Enfoque Algortmico.

REGLA PARAMETRO

FORMATO PARAMETRO listaVariables

DESCRIPCIN Permite especificar si un algoritmo recibe datos o valores. Permite especificar si retorna una respuesta. un algoritmo

RETORNAR

RETORNAR variable

En el Mtodo de las 6D, el algoritmo de una solucin se desarrolla despus del modelamiento, durante la Etapa 03 - Diseo de la solucin:Etapa 03 Diseo Solucin

Se desarrollar el siguiente paso: Desarrollo de algoritmos. En este paso, se desarrollar el algoritmo para el mtodo especificado en la clase, la cual forma parte del paquete dominioDeLaAplicacin. Para el desarrollo del algoritmo se utilizar pseudocdigo.

Pag. 53

Ing. Juan Jos Flores Cueto.

PROGRAMACIN La programacin es la traduccin del modelamiento y los algoritmos en sentencias que la computadora puede comprender y ejecutar. En trminos sencillos. Se puede decir, que la programacin es la accin de escribir programas para una computadora, utilizando alguno de los lenguajes de programacin existentes. La accin de escribir programas para una computadora se conoce como codificacin. Las personas que escriben los programas son conocidas como programadores, los cuales estn divididos en categoras segn su experiencia y dominio de diferentes lenguajes de programacin. Entonces, un lenguaje de programacin es un lenguaje que los programadores utilizan para escribir programas que son comprendidos y ejecutados en una computadora.Nos comunicamos con las computadoras a travs de los programas desarrollados en un lenguaje de programacin en particular. Existen diferentes lenguajes de programacin, la mayor parte de los cuales tienen un conjunto de reglas o sentencias muy especializadas.

La forma de programacin ha variado con el paso de los aos. Al inicio, se desarroll la programacin lineal, luego la programacin modular, despus la programacin estructurada y ahora la programacin orientada a objetos. Entre los lenguajes de programacin orientados a objetos podemos destacar a Java.LENGUAJES DE PROGRAMACIN JAVA Java es un lenguaje de programacin orientado a objetos desarrollado por Sun MicroSystems, una compaa reconocida por sus estaciones de trabajo UNIX de alta calidad.

Pag. 54

MTODO DE LAS 6D Un Enfoque Algortmico.

Fundamentado en el lenguaje de programacin C++, el lenguaje Java se dise para ser pequeo, sencillo y porttil a travs de plataformas y sistemas operativos, tanto a nivel de cdigo fuente como binario, lo que significa que los programas Java (applets, aplicaciones y servlets), pueden ejecutarse en cualquier computadora que tenga instalada una mquina virtual de Java. A pesar que Java es un lenguaje de programacin orientado a objetos, tambin puede ser utilizado como un lenguaje estructurado, lo cual se hace necesario para poder iniciar el estudio de los conceptos fundamentales de programacin.

Estructura bsica de un programa desarrollado en Java:

package NombrePaquete; class NombreClase { public static void main ( String arg[ ] ) { sentencias; } }Este es el cuerpo del programa en Java. Las sentencias se colocan dentro de los corchetes del mtodo main ( ).

En el lenguaje de programacin Java, para definir que una clase forma parte de un paquete determinado, se utiliza la siguiente palabra reservada: package En el lenguaje de programacin Java para definir una clase se utiliza la siguiente palabra reservada: class

Pag. 55

Ing. Juan Jos Flores Cueto.

Es importante comprender que una clase est constituida por atributos y mtodos. Todo el cdigo ejecutable reside dentro de los mtodos de la clase. No existe cdigo que no est contenido dentro de un mtodo (a excepcin de los bloques estticos). Existen clases que tienen un mtodo especial conocido como mtodo principal. Todas las clases que tienen especificado un mtodo principal, son clases que pueden ejecutarse. En el lenguaje de programacin Java, para especificar que una clase tiene un mtodo principal, se utiliza las siguientes sentencias: public static void main (String arg[]) Por lo tanto, en el lenguaje de programacin Java, el mtodo principal es conocido como mtodo main ( ).

Palabras reservadas en Java: Una palabra reservada o palabra clave, es aquella que tiene un significado especial para un lenguaje de programacin. Todos los lenguajes tienen palabras claves. En el caso de Java tenemos las siguientes:

abstract byte char continue double final for implements int native package public static switch throw try while

Palabras reservadas en Java boolean catch case do class extends default float else if finally instanceof import long interface null new protected private short return super strictfp this synchronized transient throws volatile void widefp break

Pag. 56

MTODO DE LAS 6D Un Enfoque Algortmico.

En la actualidad, la Programacin Estructurada (PE) y la Programacin Orientada a Objetos (POO) son las formas de programacin utilizadas por la mayora de los programadores, siendo la POO la ms reciente y la que promete solucionar muchos de los problemas de la PE, incorporando nuevas caractersticas y nuevos conceptos. Una caracterstica importante de la POO es que utiliza los mejores conceptos de la PE y de las otras formas de programacin. En el Mtodo de las 6D, la programacin de una solucin se desarrolla durante la Etapa 04 - Desarrollo de la solucin:Etapa 04 Desarrollo Solucin

Se desarrollar solo el primer paso: Codificar el proyecto. En este paso, se desarrollar la codificacin del proyecto. Es decir, utilizando el lenguaje de programacin Java, se traducir lo especificado en el modelamiento y en los algoritmos, en sentencias que la computadora pueda comprender y ejecutar.

Pag. 57

Ing. Juan Jos Flores Cueto.

Pag. 58

CaptuloEstructuras Fundamentales para la Solucin de Problemas

2

Temas: Introduccin. Estructuras de Datos: Variables Tipos de datos. Conversin de datos.

Estructuras Lgicas: Estructuras lgicas de secuencia. Estructuras lgicas de decisin. Estructuras lgicas de repeticin. Instrucciones de bifurcacin. Mapa de estructuras lgicas detallado.

Mtodo de las 6D. Etapas y pasos. Problemas resueltos en general y sobre figuras.

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

CAPTULO II ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCION DE PROBLEMAS INTRODUCCIN El modelamiento se refiere a la forma como representamos la solucin de un problema del mundo real en trminos de un modelo. Un algoritmo constituye una lista completa de los pasos y una descripcin de los datos que son necesarios para resolver un determinado problema en el mbito de un mtodo. La lista completa de los pasos se desarrolla utilizando las estructuras lgicas y las instrucciones de bifurcacin, mientras que los datos se almacenan en las estructuras de datos. La programacin es la traduccin del modelamiento y los algoritmos en sentencias que una computadora puede comprender y ejecutar. La accin de escribir un programa para computadoras se conoce como codificacin.

MARCO DE TRABAJOENUNCIADO DEL PROBLEMA Etapa 02 Definicin Solucin

Etapa 03 Diseo Solucin

Etapa 04 Desarrollo Solucin

Pag. 61

Ing. Juan Jos Flores Cueto.

LISTA DE PASOS DESCRIPCIN DE DATOS

SENTENCIAS DECLARACIN Y DEFINICIN DE DATOS

SE DESARROLLAN UTILIZANDO: Estructuras lgicas de secuencia. Estructuras lgicas de decisin. Estructuras lgicas de repeticin. Instrucciones de bifucacin. ALMACENADOS EN: Estructuras de datos tipo variables.

El presente captulo, trata sobre las estructuras fundamentales para la solucin de problemas. Es importante mencionar que utilizando las estructuras fundamentales para la solucin de problemas (estructuras lgicas, instrucciones de bifurcacin y las estructuras de datos conocidas como variables), se pueden desarrollar algoritmos de tal forma que estos puedan ser diseados en pseudocdigo o diagrama de flujo, para luego ser codificados en un lenguaje de programacin. La tcnica que se emplea en el presente texto para el ingreso de datos y visualizacin de la informacin, cada da se utiliza con menos frecuencia (tcnica tradicional basada en el ingreso de datos y visualizacin de informacin utilizando solo caracteres). En su lugar, se utilizan las interfaces grficas de usuario o GUI (por sus siglas en ingls), que incorporan ventanas, grficos, colores y otros objetos que permiten una interface visual con el usuario. El lenguaje de programacin Java incorpora un paquete denominado AWT (Abstract Windows Toolking) que contiene clases que permiten crear cualquier tipo de interfaces grficas de usuarios o GUI (interfaces visuales). Tambin incorpora un paquete llamado SWING (a partir de la versin 2 de Java), que facilita el ingreso y visualizacin de datos utilizando cuadros de dialogo visuales.

Pag. 62

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

ESTRUCTURAS DE DATOS VARIABLES Definicin: Una variable es una estructura de datos que permite reservar un espacio con la finalidad de almacenar o guardar temporalmente los datos. Una variable slo puede almacenar un dato a la vez. Si se necesita almacenar dos o tres datos, se requerirn dos o tres variables segn sea el caso. Declaracin de una variable: Declarar una variable significa definir el nombre de la variable y el tipo de dato que podr almacenar. Generalmente se realiza al inicio de un programa. La declaracin de una variable se debe realizar antes de que sta pueda ser utilizada; esto es necesario en los diferentes lenguajes de programacin, y Java no es la excepcin. En pseudocdigo y diagrama de flujo: TipoDeDato ListaDeVariables En Java: TipoDeDato ListaDeVariables ; Donde TipoDeDato debe ser un tipo de variable o tipo de dato vlido y ListaDeVariables puede tener uno o ms nombres de variables separadas por comas. Nombre de variable: Siempre es necesario que las variables tengan un nombre para poder referirse a ellas en cualquier parte de un programa. El nombre de una variable deber comenzar con una letra minscula. Si el nombre de la variable est formado por varias palabras, se deber escribir con mayscula la primera letra de cada palabra, a partir de la segunda palabra que forme parte del nombre. No es vlido que el nombre de una variable tenga espacios en blanco ni caracteres especiales (tales como /()=?^* etc). En pseudocdigo: Una variable no puede tener el nombre de una regla o pauta definida. (ejemplo: ESCRIBIR). En Java:

Pag. 63

Ing. Juan Jos Flores Cueto.

Una variable no puede tener el nombre de una palabra reservada. (Ejemplo: String). Se recomienda que el nombre a utilizar en las variables que se empleen, guarde relacin con el valor que estas almacenan. Inicializacin de una variable: Es posible que una variable sea definida con un valor inicial y que este valor posteriormente sea modificado. Es bueno definir con un valor inicial a todas las variables declaradas en el programa. En pseudocdigo y diagrama de flujo: TipoDeDato variable = valor En Java: TipoDeDato variable = valor ; Donde valor debe ser un valor equivalente al tipo de variable o tipo de dato definido. Aqu TipoDeDato es opcional y se utiliza slo si la variable no ha sido declarada anteriormente. Almacenamiento de datos en variables: Para almacenar un valor en una variable se utiliza el nombre con el que esta fue declarada, a continuacin el signo igual, seguido del valor que se desea almacenar. En pseudocdigo y diagrama de flujo: variable = valor En Java: variable = valor ; Se deber tener presente que una variable puede almacenar slo un valor a la vez y que este valor deber ser equivalente al tipo de dato con el que se declar la variable. Cada vez que almacena un valor en la variable, perder el valor que anteriormente tena esta. Es posible almacenar un valor en una variable en cualquier parte del programa. El nico requisito es que la variable donde se almacene el valor est previamente declarada. El valor de una variable puede tambin ser sustituido por el resultado de una operacin aritmtica o de clculo. Por ejemplo: En pseudocdigo y diagrama de flujo: suma = 7 + 5

Pag. 64

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

En Java: suma = 7 + 5 ; En ambos casos, cuando se desee visualizar el contenido de la variable suma, se observar que el valor obtenido ser 12. Otros usos de las variables: Muchas veces, es necesario utilizar variables que permitan almacenar resultados parciales, obtenidos cada vez que se ejecuta una estructura lgica de repeticin (las estructuras lgicas se repeticin se estudian ms adelante en este mismo captulo). Dichas variables pueden asumir la funcin de contador, acumulador o interruptor. La funcin que pueda asumir una variable depender de la forma como se plantee la solucin para un determinado problema. Contadores: Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad fija cada vez que se ejecutan los pasos que forman parte de una estructura de repeticin. Un contador puede ser creciente o decreciente. Acumuladores: Un acumulador o totalizador es una variable cuya funcin es almacenar un valor como resultado de sumas o restas sucesivas. Un acumulador realiza la misma funcin que un contador con la diferencia que el incremento o decremento no es una cantidad fija sino una cantidad variable. Interruptores: Un interruptor o conmutador (denominado tambin centinela, bandera o flag) es una variable que puede tomar dos posibles valores (1/0, verdadero/falso, si/no, encendido/apagado) dentro de una determinada solucin. Dependiendo del valor que tome el interruptor se ejecutarn ciertos pasos. Cabe mencionar que en una solucin se puede utilizar una o varias variables que pueden asumir las funciones de contador, acumulador o interruptor.

Pag. 65

Ing. Juan Jos Flores Cueto.

TIPOS DE DATOS Definicin: Los tipos de datos permiten declarar las variables. A pesar que en el pseudocdigo y diagrama de flujo slo se reconocen tres tipos de datos, en los lenguajes de programacin se tiene una gran variedad de tipos de datos, los cuales estn divididos generalmente- en dos categoras: bsicos o simples y compuestos. Existen diferentes tipos de datos. En pseudocdigo y diagrama de flujo se utilizan tres tipos (NUMERO, TEXTO y LOGICO). Los lenguajes de programacin permiten trabajar con una amplia diversidad de tipos de datos que se extienden desde los ms bsicos hasta los ms complejos. En Java, todos los datos son derivados de ocho tipos de datos bsicos; byte, short, int, long, float, double, char y boolean. Los tipos de datos bsicos se tratarn en este captulo y constituyen la base para los tipos de datos compuestos. Tipos de datos en Pseudocdigo: Reglas definidas para los tipos de datos: NUMERO CARACTER TEXTO LOGICO Referidos a cualquier nmero. Se puede subdividir en ENTERO y REAL. Referidos a cualquier letra, digito o smbolo encerrado entre comilla simple. Referidos a cualquier texto encerrado entre comillas dobles. Referido a los dos posibles valores lgicos (VERDADERO y/o FALSO).

Hay que tener presente que las palabras NUMERO, ENTERO, REAL. CARACTER. TEXTO y LOGICO son reglas utilizadas en el pseudocdigo y diagrama de flujo, por lo que no podrn ser usadas como nombre de variable. Estos datos nos permiten definir los tres tipos de variables utilizadas: Variables numricas: Permiten almacenar slo tipos de datos numricos (NUMERO, ENTERO y REAL). Con una variable numrica se puede realizar operaciones matemticas (suma, resta, multiplicacin, divisin, etc.). En este contexto, se debe tener presente que las operaciones matemticas se resuelven siguiendo las mismas reglas que se aplican en la aritmtica tradicional.

Pag. 66

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

Por ejemplo: Una serie de operaciones. Primero se resuelven las multiplicaciones y divisiones; luego las sumas y restas. Para alterar esta prioridad se podr utilizar los parntesis. Ejemplos: edad = 15 resultado = 5 + 8 * ( 6 2) Donde edad y resultado son variables que previamente han sido declaradas como variables de tipo numricas. Variables de texto: Permiten almacenar datos de tipo texto y datos de tipo caracter (TEXTO y CARACTER). Las variables tipo texto son tiles para almacenar cualquier cadena de texto, tales como nombres de personas, direcciones, nmero de AFP, etc. Ejemplos: nombre = Pedro letra = J Donde nombre y siglas son variables que previamente han sido declaradas como variables de tipo texto. Variables lgicas: Permiten almacenar slo tipo de datos lgicos. Existen slo dos valores que se pueden almacenar en este tipo de variable: verdadero y falso. Ejemplos: masculino = VERDADERO estudiante = FALSO Donde masculino y estudiante son variables que previamente han sido declaradas como variables de tipo lgico. Las palabras VERDADERO y FALSO constituyen reglas en pseudocdigo y diagrama de flujo, por lo que no est permitido que se usen como nombres de variables.

Pag. 67

Ing. Juan Jos Flores Cueto.

Tipos de datos en Java: Los tipos de datos bsicos o simples de Java son utilizados para declarar las variables que sern utilizadas en los programas, y forman parte de las palabras reservadas del lenguaje. Las palabras reservadas que permiten declarar variables son byte, short, int, long, float, double, char y boolean.

Tipo byte short int long float double char boolean

Descripcin Tipo byte Entero corto Entero Entero largo Real en coma flotante de simple precisin Real con coma flotante de doble precisin. Caracter Lgico

Longitud 1 byte 2 bytes 4 bytes 8 bytes 4 bytes 8 bytes 2 bytes 1 byte

Rango-128 127 -32768 32767 -2.147.483.648 2.147.483.647 -9.223.372.036.854.775.808 9.223.372.036.854.775.807 3,4*10-38 3,4*1038 1,7*10-308 1,7*10308 0 65.535 true / flase

A diferencia de otros lenguajes de programacin, en Java los tipos de datos simples no dependen de la plataforma ni del sistema operativo. Un entero de tipo int siempre tendr 4 bytes, por lo que no habr sorpresas al migrar un programa de un sistema operativo a otro. Es importante mencionar que Java no realiza una comprobacin de rangos. Por ejemplo: si a una variable de tipo short con el valor 32.767 se le suma 1, el resultado ser -32.768 y no se producir ningn error de ejecucin. Es importante destacar que estos ocho tipos de datos simples son diferentes, pero entre ellos se pueden agrupar como datos de tipo NUMERO (byte, short, int, long, float, double), tipo CARACTER (char) y tipo LOGICO (boolean). Los datos tipo NUMERO (datos numricos) se pueden dividir en valores de tipo ENTERO (byte, short, int, long) y valores de tipo REAL (float, double). Para representar una cadena de caracteres en Java, se utiliza la clase String. Los String en Java no son un tipo de dato bsico (simple), sino un tipo de dato compuesto (a pesar de ello, se puede utilizar como un tipo de dato simple para definir datos de tipo TEXTO en Java). Los valores de los datos de tipo String van entre comillas dobles (ejemplo; Hola) y permite almacenar cadenas de texto, mientras que los de tipo char van entre comillas simples (ejemplo; K) y slo permiten almacenar un solo caracter. Las palabras reservadas de Java no pueden ser utilizadas como nombre de variable.

Pag. 68

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

Como regla general, una variable solo puede almacenar valores de acuerdo al tipo de dato con el que fue declarado. Es decir, si se declara una variable con un tipo de dato especfico, solo podr almacenar valores de dicho tipo de dato. En base a esto, si se declara una variable con un tipo de dato especfico y se intenta almacenar un valor de distinto tipo, al momento de compilar, el programa indicar un error. Ejemplos:

Clase PrgTipoDato01package dominioDeLaAplicacion ; class PrgTipoDato01 { public static void main ( String arg [ ] ) { double numReal = 4.3 ; int numEntero ; // La siguiente lnea genera error. numEntero = numReal ; System.out.println ( numEntero ) ; } } Observacin: No se puede almacenar un nmero real grande (double) en una variable entera (int).

Clase PrgTipoDato02package dominioDeLaAplicacion ; class PrgTipoDato02 { public static void main ( String arg [ ] ) { double numRealDouble = 2.3 ; float numRealFloat ; // La siguiente lnea genera error. numRealFloat = numRealDouble ; System.out.println ( numRealFloat ) ; } } Observacin: No se puede almacenar un nmero real grande (double) en una variable real (float).

Pag. 69

Ing. Juan Jos Flores Cueto.

Clase PrgTipoDato03package dominioDeLaAplicacion ; class PrgTipoDato03 { public static void main ( String arg [ ] ) { boolean estado = true ; char caracter ; // La siguiente lnea genera error. caracter = estado ; System.out.println ( caracter ) ; } } Observacin: No se puede almacenar un valor lgico (boolean) en una variable caracter (char).

Pag. 70

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

CONVERSIN DE DATOS Anteriormente se mencion que por regla general en una variable solo se puede almacenar un solo valor y este valor debe ser del tipo de dato con el que la variable fue declarada. Pero como toda regla, esta tambin tiene su excepcin, y la excepcin para estos casos se denomina conversin de datos. A travs de la conversin de datos se puede almacenar en una variable valores de tipo diferente al tipo de dato con el que se declar la variable. La conversin de datos se aplica generalmente sobre los tipos de datos numricos, es decir entre datos de tipo byte, short, int, long, float y double. Tambin se puede aplicar sobre el tipo de dato char. Conversin implcita de datos en Java: La conversin implcita de datos se da entre un tipo de dato de menor precisin a un tipo de dato de mayor precisin (mas amplio, mas grande) y son generadas automticamente por el compilador Java. A continuacin se muestra los tipos de datos numricos ubicados desde el tipo de dato de menor precisin al tipo de dato de mayor precisin: byte, short, int, long, float y double Ejemplos;Clase PrgTipoDato04package dominioDeLaAplicacion ; class PrgTipoDato04 { public static void main ( String arg [ ] ) { int numEntero = 5 ; long numEnteroGrande ; // La siguiente lnea no genera error. numEnteroGrande = numEntero ; // Se visualiza 5 System.out.println ( numEnteroGrande ) ; } }

Observacin: Al ejecutar esta aplicacin el compilador utiliza la conversin implcita y convierte un nmero entero (int) en un nmero entero largo (long). Esto es vlido ya que el tipo de dato long en Java es de mayor precisin que el tipo de dato int.

Pag. 71

Ing. Juan Jos Flores Cueto.

Clase PrgTipoDato05package dominioDeLaAplicacion ; class PrgTipoDato05 { public static void main ( String arg [ ] ) { char caracter = a ; double numReal ; // La siguiente lnea no genera error. numReal = caracter ; // Se visualiza 97.0 System.out.println ( numReal ) ; } }

Observacin: Al ejecutar esta aplicacin el compilador utiliza la conversin implcita y convierte la letra a en un valor real (double) equivalente a su cdigo ASCII, por lo que se visualiza 97.0 (la letra a en cdigo ASCII es 97).

La conversin implcita de datos se realiza al mezclar variables de distinto tipo en expresiones matemticas o al ejecutar instrucciones o sentencias de asignacin. En ambos casos, es necesario que el lado izquierdo de la expresin tenga un tipo de dato ms amplio que el resultado de evaluar el lado derecho:numReal = numEntero + 5 ;

Lado izquierdo de la expresin

En caso contrario, si el lado derecho de la expresin tiene un tipo de dato ms amplio que el lado izquierdo, al momento de compilar, el programa indicar un error. La conversin implcita de datos en Java, se da de un tipo de dato de menor precisin a uno de mayor precisin. Conversin explicita de datos en Java (casting): Las conversiones de un tipo de dato de mayor precisn a otro tipo de dato de menor precisin requieren que se coloque en forma explicita en los programas. Ests conversiones son inseguras y puedan dar lugar a errores. Este tipo de conversin de datos se le denomina tambin cast (casting). El cast se realiza colocando entre parntesis

Pag. 72

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

el tipo de dato al que se desea convertir el resultado de una expresin. Ejemplo;Clase PrgTipoDato06package dominioDeLaAplicacion ; class PrgTipoDato06 { public static void main ( String arg [ ] ) { double num1 = 20, num2 = 3 ; int div ; // La siguiente lnea genera error. div = num1 / num2 ; System.out.println ( div ) ; } }

Clase PrgTipoDato07package dominioDeLaAplicacion ; class PrgTipoDato07 { public static void main ( String arg [ ] ) { double num1 = 20, num2 = 3 ; int div ; // La siguiente lnea no genera error. div = ( int ) ( num1 / num2 ) ; // Se visualiza 6. System.out.println ( div ) ; } } Observacin: Al ejecutar esta aplicacin el compilador utiliza la conversin explcita (casting) para poder almacenar el resultado de una divisin de numeros reales (double) en una variable entera (int).

Finalmente, en el captulo III se tratn las clases Wrappers que envuelven los tipos de datos simples y tambin permiten realizar operaciones de conversin, entre otras.

Pag. 73

Ing. Juan Jos Flores Cueto.

Pag. 74

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

ESTRUCTURAS LGICAS ESTRUCTURAS LGICAS DE SECUENCIA Definicin: Las Estructuras Lgicas de Secuencia son aquellas en las que una instruccin sigue a otra en secuencia. Las instrucciones se ejecutan una a una de tal modo que, finalizada la ejecucin de una instruccin, se inicia la ejecucin de la siguiente hasta completar la ejecucin de todas las instrucciones que forman parte de la secuencia. Las Estructuras Lgicas de Secuencia son las estructuras lgicas ms comunes y constituyen la base sobre la cual se desarrollan las dems estructuras lgicas. Tipos: 1. Estructura para la salida de informacin Definicin: La salida de informacin se refiere a la forma o mecanismos que se emplean para poder conocer el resultado de un determinado algoritmo. Este tipo de estructura permite mostrar informacin a travs de un dispositivo de salida de una computadora. Representacin: Para representar la salida o visualizacin de la informacin se utiliza: - La regla; ESCRIBIR - El smbolo; En diagrama de flujo. - La clase; System En Java. En pseudocdigo.

Pag. 75

Ing. Juan Jos Flores Cueto.

Es importante mencionar que se puede visualizar una cadena de texto, el contenido de una variable o el resultado de una operacin matemtica. Por ejemplo; Si desea visualizar la cadena de texto Hola Mundo utilizando pseudocdigo y diagrama de flujo, lo realizar de la siguiente manera: ESCRIBIR Hola MundoHola Mundo

Si desea codificarlo en el lenguaje de programacin Java, deber realizarlo de la siguiente manera: System.out.print (Hola Mundo); System.out.println (Hola Mundo); Se puede utilizar la palabra print o println. Cuando se utiliza la palabra print se mostrar la cadena de texto y el cursor permanecer al final de la cadena de texto mostrada, y cuando se utiliza la palabra println se mostrar la cadena de texto y el cursor se colocar en la siguiente lnea.

2. Estructura para la entrada de datos Definicin: La entrada de datos se refiere a la forma o mecanismos que se emplean para ingresar los datos que necesita un algoritmo para procesarlos y obtener, posteriormente, la informacin necesaria. Este tipo de estructura permite ingresar datos a travs de un dispositivo de entrada de una computadora. Representacin: Para representar la entrada de datos se utiliza: - La regla; LEER - El smbolo; En diagrama de flujo. En pseudocdigo.

Pag. 76

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

- La clase; Lectura En Java.

Es importante mencionar que el lenguaje de programacin Java no proporciona una clase que facilite el ingreso de datos en forma tradicional. En consecuencia, se utilizar una clase en Java desarrollada especialmente para que cumpla dicha finalidad.

CLASE

MTODOleerString()

DESCRIPCINPermite ingresar cadena de texto. una

leerChar()

Permite ingresar un caracter (una sola letra o nmero) Permite ingresar nmero entero. Permite ingresar nmero entero largo. un

leerInt() Lectura.class leerLong()

un

leerFloat()

Permite ingresar un nmero con parte decimal. Permite ingresar un nmero con parte decimal.

leerDouble()

La clase Lectura fue desarrollada por la Srta. Gisella Guzmn.

La clase Lectura va a facilitar el ingreso de datos en forma tradicional. 1 Esta clase es una implementacin mejorada de la clase Math2 Es importante mencionar, que esta clase permitir ingresar datos en forma tradicional y ser usada para la codificacin de algoritmos en Java. En el Apndice, se trata en detalle la clase Lectura.

1

Se puede revisar el uso de la clase Math2 en el primer libro del autor, titulado Mtodo para la solucin de problemas utilizando la programacin orientada a objetos Aspectos bsicos.

Pag. 77

Ing. Juan Jos Flores Cueto.

3. Estructura para operaciones aritmticas y de clculo Definicin: Las operaciones aritmticas y de clculo se refieren a la forma o mecanismos que se emplean para poder procesar los datos ingresados y obtener la informacin necesaria. Representacin: Para representar las operaciones aritmticas se utilizan los mismos signos que se emplean en la aritmtica tradicional (+, -, *, /). Suma: Resta: Multiplicacin: Divisin: + * /

Las operaciones lgicas se representan de la siguiente manera: En pseudocdigo y diagrama de flujo: Y lgico: O lgico: Negacin: En Java: Y lgico: O lgico: Negacin: && || ~ Y (AND) O (OR) N (NOT)

Formatos: Formato para disear algoritmos: Pseudocdigo INICIO Instrucciones ... FIN

EXPLICACIN: Todas las instrucciones que son parte de la solucin del problema debern aparecer entre las reglas INICIO y FIN. Estas instrucciones se ejecutarn una tras otra.

Pag. 78

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

Diagrama de Flujo EXPLICACIN:INICIO

Todas las instrucciones que son parte de la solucin del problema aparecern entre el siguiente smbolo:

Instrucciones ... Dentro del smbolo se indicar si es el inicio o el fin de la solucin con las reglas INICIO o FIN.

FIN

Al conjunto de pasos que forman parte de un algoritmo se les denomina instrucciones.

Formato para codificar algoritmos: Lenguaje de Programacin Java

EXPLICACIN: Inicialmente, se puede afirmar que todas las sentencias que son parte de la solucin aparecern dentro de los mtodos. El mtodo main ( ) es conocido como el mtodo principal, y es desde donde se inicia la ejecucin de las sentencias.

class NombreClase { public static void main (String a[]) { .... // sentencias .... } }

Al conjunto de pasos que forman parte de un programa de computadora se les denomina sentencias.

Pag. 79

Ing. Juan Jos Flores Cueto.

ESTRUCTURAS LGICAS DE DECISIN Definicin: Las Estructuras Lgicas de Decisin son construcciones que permiten alterar el flujo secuencial de una solucin, de tal forma que en funcin de una condicin o el valor de una variable, se pueda desviar la secuencia de la solucin entre diferentes alternativas. Las Estructuras Lgicas de Decisin son conocidas tambin como Estructuras de Seleccin. Tipos: 1. Estructuras lgicas de decisin simple Definicin: Una estructura de decisin simple SI... FINSI permite alterar el flujo secuencial (o pasos secuenciales) de una solucin ejecutando un conjunto de pasos adicionales si el resultado de una condicin lgica es verdadera. Este tipo de estructura es til cuando se tiene la posibilidad de escoger una determinada opcin. Formato para disear algoritmos:

Pseudocdigo EXPLICACIN: Si la condicin resulta verdadera, se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y FINSI. Si la condicin resulta falsa, no se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y FINSI.

SI (condicin) ENTONCES instrucciones... FINSI

Pag. 80

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

Diagrama de Flujo

EXPLICACIN: Si la condicin resulta verdadera, se ejecutan las instrucciones que se encuentran en el flujo etiquetado con la regla VERDADERO. Si la condicin resulta falsa, se sigue el flujo etiquetado con la regla o pauta FALSO y no se ejecutan las instrucciones que se encuentran en el flujo etiquetado con la regla VERDADERO.

VERDADERO

condicin ?

... instrucciones... ...

FALSO

Formato para codificar algoritmos: Lenguaje de Programacin Java

EXPLICACIN: Si la condicin resulta verdadera, se ejecutan las sentencias que se encuentra entre las llaves { }. Si la condicin resulta falsa, no se ejecutan las sentencias que se encuentran entre las llaves { }.

if (condicin) { sentencias... }

Pag. 81

Ing. Juan Jos Flores Cueto.

2. Estructuras lgicas de decisin doble Definicin: Una estructura de decisin doble SI... SINO... FINSI permite alterar el flujo secuencial (o pasos secuenciales) de una solucin, ejecutando un conjunto de pasos dependiendo del resultado de una condicin lgica. Si la condicin resulta verdadera, se ejecuta un conjunto de pasos, y si la condicin resulta falsa, se ejecuta otro conjunto de pasos. En ningn caso se podr ejecutar ambos conjuntos de pasos a la vez. Este tipo de estructura es til cuando se tiene la necesidad de escoger entre dos posibles opciones. Formato para disear algoritmos:

Pseudocdigo

EXPLICACIN: Si la condicin resulta verdadera, se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y SINO. Si la condicin resulta falsa se ejecutan las instrucciones que se encuentran entre las reglas SINO y FINSI. Slo se ejecuta uno de los grupos de instruccin, en ningn caso se podr ejecutar ambos grupos.

SI (condicin) ENTONCES instrucciones... SINO instrucciones... FINSI

Pag. 82

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

Diagrama de Flujo EXPLICACIN:VERDADERO condicin ? FALSO

... instrucciones ...

... instrucciones ...

Si la condicin resulta verdadera, se ejecutan las instrucciones que se encuentran en el flujo etiquetado con la regla VERDADERO. Si la condicin resulta falsa, se ejecutan las instrucciones que se encuentran en el flujo etiquetado con la regla FALSO.

Formato para codificar algoritmos: Lenguaje de Programacin Java

EXPLICACIN: Si la condicin resulta verdadera, se ejecutan las sentencias que se encuentran entre las llaves { } ubicadas despus de la palabra reservada if. Si la condicin resulta falsa, se ejecutan las sentencias que se encuentran entre las llaves { } ubicadas despus de la palabra reservada else.

if (condicin) { sentencias... } else { sentencias... }

Pag. 83

Ing. Juan Jos Flores Cueto.

3. Estructuras lgicas de decisin mltiple Definicin: Una estructura de decisin mltiple CUANDO... FINCUANDO permite alterar el flujo secuencial de una solucin ejecutando un conjunto de pasos dependiendo del valor de una variable. Generalmente, para cada posible valor que pueda tener la variable se define un conjunto de pasos a ejecutar. Tambin se define un conjunto de pasos a ejecutar en caso que uno de los valores de la variable no tenga asociado un conjunto de pasos a ejecutar. Este tipo de estructura es til cuando se tiene la necesidad de escoger entre ms de dos opciones.

Formato para disear algoritmos: Pseudocdigo EXPLICACIN: Si el valor de la variable es igual a uno de los valores colocados despus de una de las reglas CASO, se ejecutan las instrucciones que estn dentro del mismo. Si el valor de la variable no es igual a ninguno de los valores colocados despus de una de las reglas CASO, se ejecutan las instrucciones que estn dentro de la regla OTROS. La regla OTROS es opcional (es decir, puede aparecer como no).

CUANDO (variable) SEA CASO (valor 1) : instrucciones... CASO (valor 2) : instrucciones... CASO (valor n) : instrucciones... OTROS instrucciones... FINCUANDO

Pag. 84

ESTRUCTURAS FUNDAMENTALES PARA LA SOLUCIN DE PROBLEMAS

Diagrama de Flujo

variable ?

valor 1

valor 2

valor n

OTROS

instrucciones

instrucciones

instrucciones

instrucciones

EXPLICACIN: Si el valor de la variable es igual a uno de los valores que tiene como etiqueta el flujo, se ejecutan las instrucciones que estn seguidas del flujo (las que indica la flecha). Si el valor de la variable no es igual a uno de los valores de las etiquetas de los flujos, se ejecuta el flujo que tiene como regla OTROS. El flujo con la regla OTROS es opcional.

Pag. 85

Ing. Juan Jos Flores Cueto.

Formato para codificar algoritmos: Lenguaje de Programacin Java EXPLICACIN: Si el valor de la variable es igual a uno de los valores colocados despus de la palabra reservada case (valor 1, valor 2, etc), se ejecutan las sentencias que estn dentro del mismo hasta llegar al final (es decir hasta la llave) a no ser que encuentre una palabra reservada break entre las sentencias que se ejecutan. Si el valor de la variable no es igual a ninguno de los valores colocados despus de una de las palabras reservadas case, se ejecutan las sentencias que estn dentro de la palabra reservada default. La palabra reservada default es opcional (es decir puede aparecer como no).

switch (variable) { case valor 1 : sentencias... case valor 2 : sentencias... case valor n : sentencias... default : sentencias... }

Es importante tener presente que en Java se deber usar la palabra reservada break al final de cada bloque de sentencias si se desea que cada alternativa (case) ejecute un grupo de sentencias sin que ejecute el grupo de sentencias de las alternativas (case) que estn a continuacin. Tambin es importante mencionar que en Java la variable utilizada junto a la palabra reservada switch slo puede ser de tipo entero o de tipo caracter. Si la variable es de tipo entero (definida con la palabra re