La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Versión 6.5 Algoritmo y Estructura de Datos I (AEDI) 2006 - II Ing. Juan José Flores Cueto (Jefe de SubArea). Ing. Cindy Sotelo Mendoza (Jefe de Curso).

Presentaciones similares


Presentación del tema: "Versión 6.5 Algoritmo y Estructura de Datos I (AEDI) 2006 - II Ing. Juan José Flores Cueto (Jefe de SubArea). Ing. Cindy Sotelo Mendoza (Jefe de Curso)."— Transcripción de la presentación:

1 Versión 6.5 Algoritmo y Estructura de Datos I (AEDI) II Ing. Juan José Flores Cueto (Jefe de SubArea). Ing. Cindy Sotelo Mendoza (Jefe de Curso). Ing. Iveth Marcelino Ponce. Ing. Ronald Santos Paredes Vargas. Ing. Carmen Bertolotti Zuñiga. Facultad de Ingeniería y Arquitectura Guía Teórica desarrollada por los profesores del curso: Ing. Pablo Iván Casma Angulo. Bach. Jessica Paulino Torre.

2 Versión 6.5 I N T R O D U C C I Ó N Algoritmo y Estructura de Datos I

3 Versión 6.5 Algoritmo y Estructura de Datos I I IVVVIVIIVIII 4 Años Plan de Estudios II IC FDWeb AEDIAEDIISWI Prog I SWII Prog II DIBD III Prácticas en FIA-DATA Prácticas en EMPRESA Electivos

4 Versión 6.5 Algoritmo y Estructura de Datos I Objetivos generales: Comprender la importancia de utilizar un método para el desarrollo de soluciones básicas. Entender los diagramas básicos utilizados para el modelamiento de problemas del mundo real. Destacar el uso de los algoritmos para el manejo de datos y objetos. AEDI HOY III Sílabo Durante el desarrollo del curso, el estudiante desarrollará un programa de laboratorio, sustentado en los aspectos teóricos impartidos en el salón de clase.

5 Versión 6.5 Algoritmo y Estructura de Datos I Unidades: Unidad I: Desarrollo de soluciones básicas. Uso de estructuras lógicas y variables. ( semana 01 a semana 04 ). Unidad II: Introducción al desarrollo de soluciones OO. Uso de objetos, métodos y atributos ( semana 05 ). Unidad III: Desarrollo de soluciones OO. Uso de estructuras lógicas y arreglos. ( semana 06 a semana 08 ). Unidad IV: Desarrollo de soluciones básicas usando interfaz gráfica de usuario. ( semana 10 ). Unidad V: Estructuras dinámicas lineales de datos. ( semana 11 a semana 12 ). Unidad VI: Estructuras dinámicas no lineales de datos. ( semana 13 a semana 14 ). Unidad VII: Programación gráfica. ( semana 15 ) AEDI HOY III Sílabo Durante el desarrollo del curso, el estudiante desarrollará un programa de laboratorio, sustentado en los aspectos teóricos impartidos en el salón de clase.

6 Versión 6.5 Algoritmo y Estructura de Datos I El curso es de evaluación permanente. El sistema de evaluación del presente curso consta de promedio de prácticas calificadas (PP), promedio de proyectos (PT), un examen final de laboratorio (E1) y un examen final de teoría (E2). El promedio final se obtiene de la siguiente manera: P F = PP + PT + E1*2 + E2*2 6 Evaluación: Sílabo

7 Versión 6.5 Algoritmo y Estructura de Datos I Bibliografía: Sílabo Método de las 6D. UML – Pseudocódigo – Java (Enfoque algorítmico) Juan José Flores Cueto. Método para la Solución de Problemas utilizando la programación Orientada a Objetos. Aspectos Básicos Juan José Flores Cueto. Como programar en Java. Quinta Edición. Prentice Hall, Deitel & Deitel.

8 Versión 6.5 El proyecto de mitad de curso (parcial) se entregará en la semana 10 sesión 01(en el salón de clase). El proyecto final se entregará en la semana 16 sesión 01 (en el salón de clase), fecha en la cual se iniciarán las sustentaciones de los mismos. Formar equipos de trabajo de 5 alumnos. Seleccionar una empresa o un negocio en el cual pueda desarrollar una solución. Inscriba su tema con el profesor de teoría. Tiene como plazo máximo dos semanas. Solicite el formato para la elaboración de su proyecto final al profesor. Indicaciones: Proyecto Parcial y Final Algoritmo y Estructura de Datos I

9 Versión 6.5 Presentación en disquete (2 ptos). Calidad, limpieza y orden ( 1.5 ptos ). Copia de seguridad ( 0.5 ptos ). Estructura (4 ptos). Contenido (14 ptos). Algoritmo y Estructura de Datos I La monografía deberá ser presentada en base al modelo utilizado en la FIA. Recuerde agregar en contenido los puntos aquí establecidos. Carátula ( 0.5 ptos ). Índice ( 0.5 ptos ). Contenido. Conclusiones ( 2.0 ptos ). Bibliografía ( 1.0 ptos ). Enunciado del problema. Definición de la solución. Diseño de la solución. Modelamiento. Algoritmo. Desarrollo de la solución Codificación. Depuración y pruebas. Proyecto Parcial y Final Monografía:

10 Versión 6.5 Algoritmo y Estructura de Datos I Presentación. Organización. Exposición. Contenido. Material adicional Aspectos Ponderación Escala: 1 a 5 ( 1 muy malo y 5 excelente ). Proyecto Final Sustentación: La asistencia a las sustentaciones es obligatoria. En la primera sesión de la semana 16 sustentarán equipos en forma voluntaria y en la segunda sesión serán seleccionados por el profesor. En caso de no haber equipos voluntarios el profesor procederá a seleccionarlos.

11 Versión 6.5 Algoritmo y Estructura de Datos I Anotaciones:

12 Versión 6.5 Algoritmo y Estructura de Datos I Desarrollo de soluciones básicas Uso de estructuras lógicas y variables Desarrollo de soluciones básicas Uso de estructuras lógicas y variables Unidad I: Semana 01 a semana 05

13 Versión 6.5 Semana 01 – sesión 01 Objetivos: Identificar las etapas de un método para solucionar problemas utilizando la computadora. Definir y ejemplificar cada uno de los conceptos básicos de la teoría de objetos. Definir el concepto de modelamiento y la notación a utilizar. Algoritmo y Estructura de Datos I

14 Versión 6.5 Descripción Problema D efinición Solución D iseño Solución D esarrollo Solución D epuración Pruebas D ocument. Ingeniería reversa Método de las 6D n veces MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Etapa 01 Etapa 02 Etapa 03 Etapa 04 Etapa 05 Etapa 06

15 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas n veces La ingeniería reversa nos permite crear o actualizar el modelo preliminar realizado en la ETAPA 03 Diseño de la solución a partir del código del programa realizado en la ETAPA 04 Desarrollo de la solución y corregido en la ETAPA 05 Depuración y pruebas. MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6D – Ingeniería reversa Ingeniería reversa

16 Versión 6.5 Definición: Modelo matemático Modelo de clases Vf = Vo + at – a%3 Todo problema informático, procedente del mundo real, esta afecto, a que su solución pueda ser planteada en términos de un modelo que refleje la realidad observada y analizada. Un modelo es una representación gráfica o simbólica de algún aspecto del mundo real, que está bajo observación o estudio. Modelamiento CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO

17 Versión 6.5 El Lenguaje Unificado de Modelado (Unified Modeling Language, UML) es un lenguaje gráfico que nos permite: Visualizar. Especificar (construir modelos precisos, no ambiguos). Construir (se establecen correspondencias con lenguajes OO, como Java, C++, Visual Basic,...). Documentar los componentes de un sistema de software (arquitectura, requisitos, diseño, pruebas, versiones, planificación,...). Describir el ciclo de vida completo del desarrollo OO. Definición: Modelamiento - UML CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO

18 Versión 6.5 Definición: Paquete: Conjunto de clases similares. Un paquete permite organizar las clases. Un paquete contiene clases que tienen funciones similares. dominioDeLaAplicación. biblioteca. TOO - Paquetes CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO nombrePaquete

19 Versión 6.5 Definición: Clase: Colección de objetos del mismo tipo. Una Clase es una implantación de un tipo de objeto. Especifica una estructura para almacenar los atributos y los métodos operativos permisibles que se aplican a cada uno de sus objetos (comparten datos o atributos y métodos comunes). El mundo real se modela mediante clases. Una clase es una abstracción y no referencia a ningún objeto en particular. Carpeta. Perro. TOO - Clases CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO NombreClase (NombrePaquete al que pertenece) Atributos Operaciones

20 Versión 6.5 Ejemplo: SeresVivos Hombre (SeresVivos) nombres apellidos edad correr() caminar() nombres. apellidos. edad. correr(). caminar(). CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO Modelamiento - UML

21 Versión 6.5 ¿Qué datos manejan los objetos?. ¿Qué pueden hacer los objetos?. Expresado en: Estructuras de Datos. Expresado en: Algoritmos. CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO Modelamiento - UML Ejemplo: SeresVivos Hombre (SeresVivos) nombres apellidos edad correr() caminar()

22 Versión 6.5 Use Case Diagrams Use Case Diagrams Diagramas de Casos de Uso Scenario Diagrams Scenario Diagrams Diagramas de Colaboración State Diagrams State Diagrams Diagramas de Componentes Component Diagrams Component Diagrams Diagramas de Distribución State Diagrams State Diagrams Diagramas de Objetos Scenario Diagrams Scenario Diagrams Diagramas de Estados Use Case Diagrams Use Case Diagrams Diagramas de Secuencia State Diagrams State Diagrams Diagramas de Clase Paquete Diagramas de Actividad Modelo Diagramas: CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO Modelamiento - UML

23 Versión 6.5 Diagrama de paquetes Dependencia La dependencia es una relación que se puede establecer entre dos o más paquetes. La dependencia en este caso significa que todas las clases que pertenecen al paquete dominioDeLaAplicacion podrán tener acceso a todas o algunas de las clases que pertenecen al paquete biblioteca (el sentido de la flecha marca la dependencia). CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO Modelamiento - UML

24 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces TEMAS TRATADOS SEMANA 01 – SESIÓN 01 Modelamiento Notación UML Método de las 6D – Modelamiento

25 Versión 6.5 Objetivos: Definición y descripción del método empleado para definir los métodos de las clases. Algoritmos. Definición y descripción de la herramienta empleada para definir los métodos de las clases. Pseudocódigo. Descripción del lenguaje de programación utilizado para codificar soluciones. Java. Semana 01 – sesión 02 Algoritmo y Estructura de Datos I

26 Versión 6.5 Descripción Problema D efinición Solución D iseño Solución D esarrollo Solución D epuración Pruebas D ocument. Ingeniería reversa Método de las 6D n veces MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Etapa 01 Etapa 02 Etapa 03 Etapa 04 Etapa 05 Etapa 06

27 Versión 6.5 Definición: El algoritmo constituye una lista completa de pasos secuenciales y una descripción de datos necesarios para resolver un determinado problema. Una lista de pasos secuenciales que deben ser ejecutados. Una descripción de los datos que son manipulados por estos pasos. ALGORITMO - CONCEPTOS BÁSICOS Algoritmo

28 Versión 6.5 Un pseudocódigo permite expresar un algoritmo con palabras en castellano que son semejantes a las instrucciones de un lenguaje de programación. Los Algoritmos permiten expresar los métodos de las clases. Algoritmo PrgMensaje – main() ENTRADA: sueldo SALIDA: sueldo INICIO NUMERO sueldo sueldo = 0 LEER sueldo sueldo = sueldo * 0.85 ESCRIBIR sueldo FIN ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo Definición:

29 Versión 6.5 En Pseudocódigo se reconocen los siguiente tipos de datos : NUMERO. TEXTO. CARACTER. LOGICO. Tenga presente que las palabras NUMERO, TEXTO, CARACTER y LOGICO son reglas o pautas utilizadas en el pseudocódigo por lo que no podrán ser usadas como nombre de variable o constante. Tipos de datos: ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo

30 Versión 6.5 Todo algoritmo debe tener un nombre el cual deberá comenzar con una letra mayúscula. Si es un nombre compuesto, la primera letra de cada palabra simple deberá estar en mayúscula. No se permiten los espacios en blanco en el nombre del algoritmo. Es necesario que se determinen los datos de entrada y la información de salida. Para declarar una variable x se deberá determinar que tipo de dato va almacenar. Por ejemplo. Si deseamos declarar una variable de tipo texto se realizaría de la siguiente manera TEXTO x. Para asignar un valor a una variable x se utiliza el signo igual. Por ejemplo, si deseamos asignar 5 a la variable x se realizaría de la siguiente manera x = 5. Pautas - Generales y de asignación: ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo

31 Versión 6.5 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 mensajes (observe que el mensaje está entre comillas) se utiliza:ESCRIBIR hola Para escribir el valor de la variable x (observe que no se utilizan comillas) se utiliza:ESCRIBIR x Para escribir el resultado de una expresión (observe que no se utilizan comillas) se utiliza:ESCRIBIR x + 2 Pautas - Generales y de asignación: ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo

32 Versión 6.5 Los operadores que están encerrados entre paréntesis se evalúan primero. Si existen paréntesis anidados las expresiones mas internas se evalúan primero. Orden de prioridad: 1. ** 2. *, / 3. DIVIDIR, RESTO 4. +, - En caso de coincidencia de operadores de igual prioridad en una expresión, el orden de prioridad será de izquierda a derecha. + Suma. - Resta. * Multiplicación / División. ** Exponenciación. DIVIDIR División Entera. RESTOMódulo o resto. RAIZ Raíz de un número. POTENCIA Potencia de número. Pautas - Operadores aritméticos: ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo

33 Versión 6.5 Mayor que. =Igual que. <=Menor o igual que. >=Mayor o igual que. <>Distinto de. NO (Not)Negación. Y (And)Conjunción. O (Or)Disyunción. Pautas - Operadores relacionales y lógicos: ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo

34 Versión 6.5 Java es un lenguaje de Programación Orientado a Objetos desarrollado por Sun Microsystems. Es un lenguaje de propósito general que puede ser utilizado para el desarrollar cualquier tipo de aplicaciones. Sirve para confeccionar APPLETS. Permite convertir un WebSite en dinámico e interactivo. CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Codificación - Java Definición:

35 Versión 6.5 Los identificadores como su nombre lo indica, sirven para identificar variables, métodos o clases. Java es sensible a las mayúsculas y minúsculas. Variables. Métodos. Clases. Interfaces. Paquetes. Almacenamiento de datos. Para especificar funciones. Para especificar objetos. Para especificación de protocolos. Para agrupar clases. CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Identificadores: Codificación - Java

36 Versión 6.5 Los identificadores reservados conocidos también como palabras reservadas son de uso exclusivo del lenguaje de programación Java. Entre las palabras reservadas podemos mencionar: boolean. break. case. class else. false. float. for. if. int. new. private. static. return. super. CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Identificadores reservados: Codificación - Java

37 Versión 6.5 package nombrePaquete ; class... { … } Paquete: Conjunto de clases similares. Un paquete permiten organizar las clases. Un paquete contiene clases que tienen funciones similares. nombrePaquete CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Definición de un paquete: Codificación - Java

38 Versión 6.5 package nombrePaquete ; class NombreClase { // Atributos… // Métodos… } NombreClase (NombrePaquete al que pertenece) Atributos Operaciones Una clase es una implantación de un tipo de objeto. Especifica una estructura de datos y los métodos operativos permisibles que se aplican a cada uno de sus objetos. El mundo real se modela mediante clases. Una clase es una abstracción y no refencia a ningún objeto en particular. CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Definición de una clase: Codificación - Java

39 Versión 6.5 package dominioDeLaAplicacion ; import biblioteca.Lectura ; class NombreClase { ……….. } DEPENDENCIA CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Diagrama de paquetes: Codificación - Java

40 Versión 6.5 package dominioDeLaAplicacion ; class PrgBienvenida { public static void main (String arg [ ] ) { System.out.println (Bienvenidos a JAVA) ; } Método principal en Java. Existen clases que tienen un método especial conocido en Java como el método main(). Las clases que tienen implementado el método main() son clases que pueden ejecutarse. CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Estructura básica de una aplicación: Codificación - Java

41 Versión 6.5 En Java se reconocen los siguiente tipos de datos : byte. short. int. long. Tenga presente que byte, short, int, long, float, double, boolean, char son palabras reservadas utilizadas en Java por lo que no podrán ser usadas como nombre de variable o constante. Tipos de datos: CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN float. double. boolean. char. Codificación - Java

42 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Método de las 6D – Algoritmo y Codificación Algoritmo Diseñado en PSEUDOCODIGO Codificación Lenguaje de programación JAVA TEMAS TRATADOS SEMANA 01 – SESIÓN 02

43 Versión 6.5 Semana 02 – sesión 01 Objetivos: Algoritmo y Estructura de Datos I Describir el Método de las 6D en soluciones con uno y dos paquete (sin objeto). Desarrollar soluciones básicas utilizando el método propuesto. Ingreso de datos utilizando el teclado. Uso de la clase LE.

44 Versión 6.5 Algoritmo y Estructura de Datos I Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Variables y constantes. Ingreso, proceso y visualización de datos. Estructuras de datos Estructuras lógicas de asignación Método de las 6D – Soluciones con uno y dos paquetes (sin objeto)

45 Versión 6.5 ESTRUCTURAS DE DATOS Variables y constantes Definición: Declaración Almacenamiento de datos final tipoDato identificador ; identificador = valor ; tipoDato identificador identificador = valor En PseudocódigoEn Java En PseudocódigoEn Java Una variable es una estructura de datos que permite reservar un espacio con la finalidad de almacenar temporalmente los datos. Una variable sólo puede almacenar un solo dato a la vez y del mismo tipo.

46 Versión 6.5 ESTRUCTURAS DE DATOS Variables y constantes Ejemplos: Anote los ejemplos planteados por el profesor.

47 Versión 6.5 Determinar la información deseada (salida). Determinar los datos de entrada (entrada). Establecer como se va ha solucionar el problema (proceso). Determinar el nombre del proyecto. Definir el paquete y las clases que formarán parte de la solución del problema. Utilice UML. Diseñar el algoritmo para los diferentes métodos. Utilice pseudocódigo o diagrama de flujo. Codificar el diseño de la solución del problema utilizando el lenguaje de programación Java. D efinición Solución D iseño Solución D esarrollo Solución ENUNCIADO MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6D Soluciones con un paquete (sin objeto)

48 Versión 6.5 MÉTODO 6D – SOLUCIONES CON UN PAQUETE (sin objeto) PROBLEMA 01: ETAPA 1 Descripción Problema Desarrollar una solución que permita mostrar el nombre Pedro con el mensaje hola por la pantalla de la computadora. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. 3.ENUNCIADO CLARO Y PRECISO DEL PROBLEMA:

49 Versión 6.5 PROBLEMA 01: ETAPA 2 Definición Solución 1.Resultado deseado. 2.Datos necesarios. 3.Procesamiento. El mensaje Hola será almacenada junto con el nombre Pedro en una variable (nombre) y luego se mostrará la variable. 1.RESULTADO DESEADO: Mostrar el mensaje de bienvenida Hola junto con el nombre Pedro. 2.DATOS NECESARIOS: Ninguno. 3.PROCESAMIENTO: MÉTODO 6D – SOLUCIONES CON UN PAQUETE (sin objeto)

50 Versión 6.5 PROBLEMA 01: ETAPA 3 Diseño Solución 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 1.NOMBRE DEL PROYECTO: ProyMensaje. 2.DEFINICIÓN DE PAQUETE Y CLASE: MÉTODO 6D – SOLUCIONES CON UN PAQUETE (sin objeto) Desarrollar el algoritmo y la codificación.

51 Versión 6.5 Determinar el nombre del proyecto. Definir los paquetes y el diagrama de paquetes. Definir las clases que formarán parte de cada paquete (atributos y métodos). Diseñar el algoritmo para los diferentes métodos. Determinar la información deseada (salida). Determinar los datos de entrada (entrada). Establecer como se va ha solucionar el problema (proceso). Codificar el diseño de la solución del problema utilizando el lenguaje de programación Java. D efinición Solución D iseño Solución D esarrollo Solución ENUNCIADO MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6D Soluciones con dos paquetes (sin objeto)

52 Versión 6.5 El ingreso de datos nos permite ingresar datos desde un dispositivo de entrada y asignarlo a una variable para su posterior procesamiento. ESTRUCTURAS LÓGICAS Ingreso de datos Definición: nombreVariable = LE.leerInt(Ingrese Edad:) ; LEER nombreVariable En Pseudocódigo En Java – Clase LE Analice el uso de los diferentes métodos de la clase LE. leerString (String ). leerChar (String). leerInt (String ). leerLong (String ). leerFloat (String ) leerDouble (String ). leerShort (String ).

53 Versión 6.5 ESTRUCTURAS LÓGICAS La visualización de datos nos permite mostrar los datos a través de la pantalla de la computadora. Visualización de datos Definición: LE.mostrarInformacion (nombreVariable) ; LE.mostrarInformacion (x + 2); LE.mostrarInformacion ( Hola ) ; ESCRIBIR nombreVariable ESCRIBIR x + 2 ESCRIBIR Hola En Pseudocódigo En Java – Clase LE Analice los modificadores \n y \t. Para el ingreso de datos también puede utilizar la clase System de Java. System.out.print ( Hola ) ;

54 Versión 6.5 PROBLEMA 02: ETAPA 1 Descripción Problema Ingrese el sueldo de un obrero de la empresa El Triunfo S.A. y calcule su respectivo descuento del 15% por concepto de impuesto y el 5% por concepto de cafetería. Se deberá visualizar por pantalla el total de descuento y el sueldo a cobrar. Utilice la clase LE de Java para el ingreso de datos y visualización de la información. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. 3.ENUNCIADO CLARO Y PRECISO DEL PROBLEMA: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto)

55 Versión 6.5 PROBLEMA 02: ETAPA 2 Definición Solución 1.Resultado deseado. 2.Datos necesarios. 3.Procesamiento. El sueldo total será ingresado por teclado y almacenado en la variable sueldo. Luego se realizan los cálculos del descuento y del sueldo a cobrar del obrero. descuento = sueldo *0.2 pago = sueldo - descuento Los resultados se almacenan en las variables descuento y pago para luego ser mostradas por pantalla. 1.RESULTADO DESEADO: Mostrar el total de descuento y el sueldo a cobrar de un obrero de la empresa 2.DATOS NECESARIOS: El sueldo total del obrero. 3.PROCESAMIENTO: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto)

56 Versión 6.5 PROBLEMA 02: ETAPA 3 Diseño Solución 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 3.Definición de paquetes y clase. 1.NOMBRE DEL PROYECTO: ProySueldoObrero 2.DIAGRAMA DE PAQUETES: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) 3.DEFINICIÓN DE PAQUETES Y CLASES: Desarrollar el algoritmo y la codificación. Diagrama de paquetes

57 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Variables y constantes.. Ingreso, proceso y visualización de datos. Estructuras de datos Estructuras lógicas de asignación TEMAS TRATADOS SEMANA 02 – SESIÓN 01 Método de las 6D – Soluciones con uno y dos paquetes (sin objeto)

58 Versión 6.5 Objetivos : Describir la conversión básica de datos, el uso de funciones matemáticas y el manejo de cadenas en el lenguaje de programación. Desarrollar soluciones básicas utilizando el método propuesto. Uso de funciones matemáticas. Manejo de cadenas. Algoritmo y Estructura de Datos I Semana 02 – sesión 02

59 Versión 6.5 Algoritmo y Estructura de Datos I Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Uso de clases incorporadas en el lenguaje de programación Funciones matemáticas. Manejo de cadenas. Conversión de datos. Método de las 6D – Soluciones con dos paquetes (sin objeto)

60 Versión 6.5 CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN La conversión de datos permite almacenar en variables valores de tipo diferente al tipo de dato con el que fueron declaradas. Definición: Genera error double num1 = 20, num2 = 3 ; int div ; div = ( int ) ( num1 / num2 ) ; System.out.println ( div ) ; No genera error double num1 = 20, num2 = 3 ; int div ; div = num1 / num2 ; System.out.println ( div ) ; Conversión de datos

61 Versión 6.5 PROBLEMA 03: ETAPA 1 Descripción Problema Ingrese dos números enteros ( num1 y num2 respectivamente ) a través del teclado. Calcule la suma ( sum ), resta ( res ), multiplicación ( mul ) y división ( div ) de los dichos números. Muestre los resultados obtenidos. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. 3.ENUNCIADO CLARO Y PRECISO DEL PROBLEMA: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto)

62 Versión 6.5 PROBLEMA 03: ETAPA 3 Diseño Solución 1.NOMBRE DEL PROYECTO: ProyOperaciones 2.DIAGRAMA DE PAQUETES: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Desarrollar el algoritmo y la codificación. Diagrama de paquetes 3.DEFINICIÓN DE PAQUETES Y CLASES: 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 3.Definición de paquetes y clase.

63 Versión 6.5 La clase Math de Java, es una clase que viene incluida como parte del paquete java.lang (el paquete del lenguaje), el cual nos permite hacer uso de diversas funciones matemáticas. CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Funciones matemáticas 1.abs( ). 2.acos( ). 3.asin( ). 4.cos( ). 5.log( ). 6.max( ). 7.min( ). 8.pow( ). 9.random( ). 10.round( ). 11.sqrt( ). 12.floor( ). Definición: Métodos:

64 Versión 6.5 PROBLEMA 04: ETAPA 1 Descripción Problema Desarrollar una solución que permita calcular la nota final ( prom ) que ha obtenido un alumno en base a 2 notas obtenidas durante el desarrollo del curso ( nota1 y nota2 ). Se deberá tener presente que para el cálculo de la nota final se ha considerado duplicar la nota mayor. Muestre la nota final redondeada. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. 3.ENUNCIADO CLARO Y PRECISO DEL PROBLEMA: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto)

65 Versión 6.5 PROBLEMA 04: ETAPA 3 Diseño Solución 1.NOMBRE DEL PROYECTO: ProyNotaFinal 2.DIAGRAMA DE PAQUETES: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Desarrollar el algoritmo y la codificación. Diagrama de paquetes 3.DEFINICIÓN DE PAQUETES Y CLASES: 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 3.Definición de paquetes y clase.

66 Versión 6.5 La clase String de Java, es una clase que viene incluida como parte del paquete java.lang (el paquete del lenguaje), el cual nos permite declarar y manipular variables de tipo TEXTO. CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Manejo de cadenas Definición: 1.charAt( ). 2.compareTo( ). 3.endsWith( ). 4.equals( ). 5.equalsIgnoreCase( ). 6.indexOf( ). 7.lastIndexOf( ). 8.length( ). 9.replace( ). 10.startsWith( ). 11.substring( ). 12.toCharArray( ). Métodos: 13.toLowerCase( ). 14.trim( ). 15.toUpperCase( ). 16.concat( ).

67 Versión 6.5 PROBLEMA 05: ETAPA 1 Descripción Problema Desarrollar una solución que permita ingresar el nombre de dos productos de la librería El Boligrafito ( nomProd1 y nomProd2 ), de tal forma que muestre el nombre de ambos productos con la primera letra en mayúscula y el resto de letras en minúscula. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. 3.ENUNCIADO CLARO Y PRECISO DEL PROBLEMA: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto)

68 Versión 6.5 PROBLEMA 05: ETAPA 3 Diseño Solución 1.NOMBRE DEL PROYECTO: ProyNotaFinal2 2.DIAGRAMA DE PAQUETES: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Desarrollar el algoritmo y la codificación. Diagrama de paquetes 3.DEFINICIÓN DE PAQUETES Y CLASES: 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 3.Definición de paquetes y clase.

69 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO!! SEMANA 02 – SESIÓN 02 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 06 Desarrollar una solución que permita ingresar dos número en variables tipo cadena ( texto1 y texto2 respectivamente ), y convierta dichas cadenas en números para finalmente poder sumarlos ( suma ). Sugerencia: - Utilice el método parseInt( ) de la clase Integer o parseDouble() de la clase Double (clases conocidas como Wrappers.).

70 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO!! SEMANA 02 – SESIÓN 02 Desarrollar una solución que permita ingresar la cantidad de boletos vendidos para una rifa ( numBoletos ) y permita obtener un boleto ganador generado en forma aleatoria ( ganador ). Sugerencia: - Utilice el método random( ) de la clase Math de Java para obtener un número aleatorio. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 07

71 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 02 – SESIÓN 02 Desarrollar una solución que permita ingresar el nombre de dos alumnos de un salón de clase. Mostrar el primer nombre en letra mayúscula y el segundo nombre en letra minúscula. Asegúrese de eliminar los espacios en blanco del inicio y del final de cada nombre, indicando la cantidad de caracteres de cada uno de los nombres. Sugerencia: - Utilice los métodos toUpperCase( ), toLowerCase( ), trim( ) y length( ) de la clase String de Java. ENUNCIADO DEL PROBLEMA 08

72 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Uso de clases incorporadas en el lenguaje de programación Funciones matemáticas. Manejo de cadenas. Conversión de datos. TEMAS TRATADOS SEMANA 02 – SESIÓN 02 Método de las 6D – Soluciones con uno y dos paquetes (sin objeto)

73 Versión 6.5 Algoritmo y Estructura de Datos I Objetivos : Conocer las diferentes estructuras lógicas de decisión. Describir la Estructura Lógica de Decisión Simple SI (if), la Estructura Lógica de Decisión Doble SI / SINO (if - else) y las Estructuras de Decisión Múltiples CUANDO (switch) y SI ANIDADOS. Desarrollar soluciones básicas utilizando el método propuesto y las Estructuras Lógicas de Decisión. Semana 03

74 Versión 6.5 Algoritmo y Estructura de Datos I Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Estructuras Lógicas de Decisión Simple (SI). Doble (SI/SINO). Método de las 6D – Soluciones con dos paquetes (sin objeto) Múltiple (CUANDO). (SI Anidados).

75 Versión 6.5 Estructura Lógica de Decisión Simple (SI) ESTRUCTURAS LÓGICAS Una estructura de decisión simple SI... FINSI permite alterar el flujo secuencial (o pasos secuenciales) de una solución ejecutando un conjunto de pasos adicionales si el resultado de una condición lógica es verdadera. FORMATOS: Definición: SI (condición) ENTONCES instrucciones... FINSI PSEUDOCODIGO if (condición) { sentencias... } JAVA

76 Versión 6.5 PROBLEMA 09: ETAPA 1 Descripción Problema Determinar el sueldo neto de un trabajador ( sueldo ), ingresando la tarifa ( tarifa ) y el número ( numHoras ) de horas trabajadas. Si el trabajador supera las 45 horas trabajadas se le deberá dar un aumento del 15% del sueldo. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO

77 Versión 6.5 PROBLEMA 09: ETAPA 3 Diseño Solución MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Diagrama de paquetes ProySueldoTrabajador Desarrollar el algoritmo y la codificación. 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 3.Definición de paquetes y clase.

78 Versión 6.5 Estructura Lógica de Decisión Doble (SI/SINO) Una estructura de decisión doble SI... SINO... FINSI permite alterar el flujo secuencial (o pasos secuenciales) de una solución, ejecutando un conjunto de pasos dependiendo del resultado de una condición lógica. SI (condición) ENTONCES instrucciones... SINO instrucciones... FINSI PSEUDOCODIGO ESTRUCTURAS LÓGICAS Definición: FORMATOS: if (condición) { sentencias... } else { sentencias... } JAVA

79 Versión 6.5 PROBLEMA 10: ETAPA 1 Descripción Problema Calcular y mostrar la nota final ( nf ) de un alumno en base a 3 notas ( n1, n2 y n3 ). Si la nota final ( nf ) es menor a 14 se deberá mostrar el mensaje Desaprobado, caso contrario se mostrará el mensaje Aprobado. Fórmula: nf = (n1+n2+n3) / 3. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO

80 Versión 6.5 PROBLEMA 10: ETAPA 3 Diseño Solución MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Diagrama de paquetes ProyNotaFinal Desarrollar el algoritmo y la codificación. 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 3.Definición de paquetes y clase.

81 Versión 6.5 Una estructura de decisión múltiple CUANDO... FINCUANDO permite alterar el flujo secuencial de una solución ejecutando un conjunto de pasos dependiendo del valor de una variable. Estructura Lógica de Decisión Múltiple (CUANDO) ESTRUCTURAS LÓGICAS Definición: FORMATOS: switch (variable) { case valor 1 : sentencias... case valor 2 : sentencias... case valor n : sentencias... default : sentencias... } JAVA CUANDO variable SEA CASO valor 1 : instrucciones... CASO valor 2 : instrucciones... CASO valor n : sentencias... OTROS : instrucciones... FINCUANDO PSEUDOCODIGO

82 Versión 6.5 PROBLEMA 11: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO Ingresar la categoría ( categoria ) y el sueldo ( sueldo ) de un trabajador, y calcular su aumento de sueldo teniendo en cuenta la siguiente mostrada. Mostrar el nuevo sueldo del trabajador ( sueldo ). CategoríaAumento 138 % 221 % 312 % 4 08 % Desarrollar el algoritmo y la codificación.

83 Versión 6.5 Estructura Lógica de Decisión Múltiple (SI Anidados) Una estructura de decisión múltiple SI Anidados permite alterar el flujo secuencial de una solución ejecutando un conjunto de pasos que dependen del resultado de evaluar diferentes condiciones lógicas dentro de estructuras de decisión simple o doble. ESTRUCTURAS LÓGICAS Definición: FORMATOS: SI (condición1) ENTONCES instrucciones1… SINO SI (condición2) ENTONCES instrucciones2… SINO SI (condición3) ENTONCES instrucciones3… FINSI PSEUDOCODIGO if (condición1) { sentencias1... } else { if (condición2) { sentencias2... } else { if (condición3) { sentencias3… } JAVA

84 Versión 6.5 PROBLEMA 12: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO Un curso se evalúa de la siguiente forma: se toma cinco prácticas calificadas ( n1, n2, n3, n4, n5 ), se determina el promedio de las cuatro notas más altas ( prom ) y se le da al estudiante una categoría ( A, B, C ), en base a la tabla mostrada. Determinar la categoría del alumno. RangoCategoria Desde 16 a 20A Desde 11 a 15B Desde 00 a 10C Desarrollar el algoritmo y la codificación.

85 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 03 ENUNCIADO DEL PROBLEMA 13 Ingresar un número ( num ) y determine si el número ingresado es un número par o impar. Muestre un mensaje ( mensaje ) indicando si el número es par o si el número impar. Sugerencia: - Utilice el resto de la división (para obtener el resto de una división en Java se utiliza el %).

86 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 14 Ingresar el apellido paterno de dos obreros ( ape1 y ape2 ), elimine los espacios en blanco del inicio y del final de los apellidos y determine la longitud de cada apellido ( tam1 y tam2 ). Muestre la última letra de cada apellido ( letra1 y letra2 ) y si son iguales muestre un mensaje. Sugerencia: - Utilice los métodos trim(), length() y charAt() de la clase String. - Para obtener el carácter final de una cadena utilice el método charAt() de la clase String y como argumento de este método utilice length() -1. INTÉNTALO!! SEMANA 03

87 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 15 Calcular y mostrar el promedio final ( prom ) de un alumno redondeado a un decimal. El cálculo del promedio final se realiza en base a las notas del alumno ( n1, n2 y n3 ) considerando que se elimina la menor nota ( nMe ). Muestre un mensaje de felicitaciones ( mensaje ) a todos los alumnos aprobados y un mensaje de desaprobado a todos los alumnos con un promedio menor a 12. Sugerencia: - Utilice el método min() de la clase Math. - Utilice la siguiente fórmula: prom = (n1 + n2 + n3 + nMa – nMe) / 3 INTÉNTALO!! SEMANA 03

88 Versión 6.5 Desarrollar una solución que permita ingresar el nombre de dos libros de la biblioteca de nuestra facultad ( libro1 y libro2 ), de tal forma que muestre los nombres de los productos ordenados alfabéticamente en forma ascendente. Sugerencia: - Utilice el método compareTo() o compareToIgnoreCase() de la clase Math. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 16 INTÉNTALO!! SEMANA 03

89 Versión 6.5 Desarrollar la codificación en Java de una solución que permita ingresar el nombre, la categoría y el sueldo de un trabajador, y calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Muestre el nombre (la primera letra en mayúscula y el resto en minúscula), la categoría en Mayúscula y el sueldo redondeado a dos decimales. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 17 CategoríaAumento A30% B10% C05% INTÉNTALO!! SEMANA 03

90 Versión 6.5 Calcular y mostrar el costo total que representa un paciente para un hospital de acuerdo al tipo de enfermedad, según los datos de la tabla. Adicionalmente debe considerar que las mujeres tienen un incremento del 15% para el segundo tipo de enfermedad. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 18 Tipo EnfermedadCosto / Paciente / Dia A30% B10% C05% INTÉNTALO!! SEMANA 03

91 Versión 6.5 Desarrollar una solución que permita determinar la suma de las cifras de un número de cuatro cifras ingresado por teclado. Adicionalmente determine si el número es capicúa o no. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 19 INTÉNTALO!! SEMANA 03

92 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 20 Desarrolle un programa que permita ingresar un número entero menor que 100 y permita mostrar su equivalente en letras. INTÉNTALO!! SEMANA 03

93 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! ENUNCIADO DEL PROBLEMA 21 Desarrolle un programa que permita ingresar el día, el mes y el año de una determinada fecha ( día, mes y año respectivamente ). Determinar si la fecha ingresada es correcta y si el año es bisiesto o no. Dato: Un año es bisiesto si es múltiplo de 4, por ejemplo 1984, pero los años múltiplos de 100 solo son bisiestos cuando a su vez son múltiplos de 400, por ejemplo 1800 no es bisiesto, mientras que 2000 si lo es. ( año%4==0 && año%100!=0 || año%400==0 ). INTÉNTALO!! SEMANA 03

94 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Estructuras Lógicas de Decisión Simple (SI). TEMAS TRATADOS SEMANA 03 Doble (SI/SINO). Método de las 6D – Soluciones con dos paquetes (sin objeto) Múltiple (CUANDO). (SI Anidados).

95 Versión 6.5 Algoritmo y Estructura de Datos I Semana 04 Conocer las diferentes estructuras de repetición. Describir las Estructura Lógicas de Repetición HACER (do - while), MIENTRAS (while) y DESDE (for). Describir el uso de los contadores, acumuladores e interruptores. Describir la estructura para el manejo de errores. Conocer las instrucciones de bifurcación. Solucionar problemas aplicando el método planteado y las Estructuras Lógicas de Repetición. Objetivos :

96 Versión 6.5 Algoritmo y Estructura de Datos I Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Estructuras Lógicas de Repetición y manejo de errores HACER DESDEMIENTRAS Uso de contadores, acumuladores e interruptores en Estructuras Lógicas de Repetición. Método de las 6D – Soluciones con dos paquetes (sin objeto) PROBAR. Uso de instrucciones de bifurcación.

97 Versión 6.5 Estructura Lógica de Repetición (HACER) ESTRUCTURAS LÓGICAS Definición: Una estructura lógica de repetición HACER... MIENTRAS, permite repetir una instrucción o un bloque de instrucciones mientras que una condición se cumpla o sea verdadera. Esta estructura de repetición permite que se ejecuten al menos una vez las instrucciones o instrucción antes de probar la condición. Esta estructura es utilizada para el desarrollo de menú y para la consistencia de los datos. PSEUDOCODIGO HACER instrucción 1. instrucción n MIENTRAS (condición) FORMATOS: JAVA do { sentencia 1. sentencia n } while (condición) ;

98 Versión 6.5 PROBLEMA 22: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO Desarrolle una solución que permita calcular el promedio de 10 alumnos utilizando la siguiente fórmula: prom = (n1 + n2+ n3*2) / 5 Ingrese las notas a través del teclado ( n1, n2 y n3 ). Valide el ingreso de datos y muestre el promedio redondeado a dos decimales. Desarrollar el algoritmo y la codificación.

99 Versión 6.5 contador = contador + cantidadConstante Ejemplos:En PseudocódigoEn Java - Incremento de 1 en 1 c = c + 1 C++ - Incremento de 2 en 2 contar = contar + 2 contar += 2 ; ESTRUCTURAS DE DATOS Variables Uso de contadores Un contador es una variable entera que toma un valor inicial y cuyo valor se incrementa o decrementa en una cantidad fija cada vez que se ejecutan los pasos que forman parte de una estructura de repetición. Un contador puede ser creciente o decreciente. Definición:

100 Versión 6.5 PROBLEMA 23: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Plantear el enunciado del problema y desarrollar la codificación. INICIO NUMERO numAlu, i = 1 HACER LEER numAlu SI ( numAlu < 1 ) ENTONCES ESCRIBIR Dato no válido… FINSI MIENTRAS ( numAlu < 1 ) HACER LEER nota1, nota2, nota3 prom = (nota1 + nota2 + nota3) / 3 prom = prom REDONDEAR 2 ESCRIBIR prom i = i + 1 MIENTRAS ( i <= numAlu ) FIN Analice el cuerpo del siguiente algoritmo:

101 Versión 6.5 Estructura Lógica de Repetición (MIENTRAS) ESTRUCTURAS LÓGICAS Definición: PSEUDOCODIGO MIENTRAS (condición) instrucción 1. instrucción n FINMIENTRAS Una estructura lógica de repetición MIENTRAS… FINMIENTRAS, permite repetir una instrucción o un bloque de instrucciones mientras que una condición se cumpla o sea verdadera. Esta estructura de repetición prueba la condición antes de ejecutar la instrucción o instrucción. FORMATOS: JAVA while (condición) { sentencia 1. sentencia n }

102 Versión 6.5 PROBLEMA 24: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO Desarrollar una solución que permita ingresar un número entero (validar el ingreso de datos) y muestre los números múltiplos de 3 menores al número ingresado. Utilice la estructura MIENTRAS. Observe el uso de la variable contador. Desarrollar el algoritmo y la codificación.

103 Versión 6.5 ESTRUCTURAS DE DATOS Variables Uso de acumuladores Definición: Un acumulador es una variable numérica que toma un valor inicial, normalmente cero (O) y luego va variando en una cantidad diferente cada vez que se ejecutan los pasos que forman parte de una estructura de repetición. Ejemplo: En PseudocódigoEn Java suma = suma + numsuma += num ; acumulador = acumulador + cantidadVariable

104 Versión 6.5 PROBLEMA 25: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Plantear el enunciado del problema y desarrollar la codificación. Analice el cuerpo del siguiente algoritmo: INICIO NUMERO num, i = 1, suma = 0 HACER LEER num SI ( num < 1 ) ENTONCES ESCRIBIR Ingrese número entero FINSI MIENTRAS ( num < 1 ) MIENTRAS ( i < num ) SI ( i RESTO 5 = 0 ) ENTONCES suma = suma + i FINSI i = i + 1 FINMIENTRAS ESCRIBIR suma FIN

105 Versión 6.5 Estructura Lógica de Repetición (DESDE) ESTRUCTURAS LÓGICAS Definición: Una estructura de repetición DESDE... FINDESDE permite repetir una instrucción, o un bloque de instrucciones, un número determinado de veces o hasta que una condición se cumpla. Con frecuencia se utiliza para iteraciones sencillas en donde se repite un bloque de instrucciones un cierto número de veces y después se detiene. PSEUDOCODIGO DESDE i = valorInicial HASTA valorFinal instrucción 1. instrucción n FINDESDE FORMATOS: JAVA for ( i = valorInicial ; i < valorFinal ; i++ ) { sentencia 1. sentencia n }

106 Versión 6.5 PROBLEMA 26: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO Desarrollar la codificación. Mostrar la serie aritmética que se muestra a continuación. Debe tener presente que el número de términos ( numTer ) se ingresará por teclado. serie: 1 – – 16 + … Ejemplo: Si numTer = 6 La serie es: 1 – – – 36

107 Versión 6.5 ESTRUCTURAS DE DATOS Variables Uso de interruptores Definición: Un interruptor o conmutador (denominado también centinela, bandera o flag) es una variable lógica o numérica que puede tomar dos posibles valores (1/0, verdadero/falso, si/no, encendido/apagado) dentro de una determinada solución Ejemplo: En PseudocódigoEn Java sw = FALSOsw = false ;

108 Versión 6.5 PROBLEMA 27: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Plantear el enunciado del problema y desarrollar la codificación. Analice el cuerpo del siguiente algoritmo: INICIO LOGICO sw = FALSO NUMERO i, num LEER num DESDE i = 2 HASTA i = num - 1 SI ( num RESTO i = 0 ) ENTONCES sw = VERDADERO FINSI FINDESDE SI ( sw || num = 0 || num = 1 || num = 2 ) ENTONCES ESCRIBIR Número primo SINO ESCRIBIR Número no es primo FINSI FIN

109 Versión 6.5 Estructura Lógica para el manejo de errores (PROBAR) ESTRUCTURAS LÓGICAS Definición: Una estructura de manejo de errores PROBAR... FINPROBAR evita que un programa se detenga en forma inadecuada debido a la ocurrencia de un error o del lanzamiento de una excepción, permitiendo capturar y manejar dichos problemas. PSEUDOCODIGO PROBAR instrucción 1. instrucción n ERROR FINPROBAR FORMATOS: JAVA try { sentencia 1. sentencia n } catch (Excepción) { }

110 Versión 6.5 PROBLEMA 28: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO Desarrollar una solución que permita ingresar dos números enteros. Mostrar el resultado de dividir ambos números. Considerar que existe la posibilidad que el divisor sea igual a cero. Maneje excepciones. Sugerencia; Utilice la excepción ArithmeticException. Desarrollar la codificación.

111 Versión 6.5 Instrucciones de bifurcación. TERMINAR RETORNAR CONTINUAR TIPOS INSTRUCCIONES En Java, la instrucción de bifurcación TERMINAR es conocida como la sentencia break y tiene tres usos: 1.Permite finalizar una secuencia de sentencias en un switch (específicamente en el case). 2.Se utiliza para salir de un bucle, sin analizar la condición y sin ejecutar el resto de código del cuerpo del bucle. 3.Se emplea para proporcionar un mecanismo que permita cambiar el flujo de ejecución a otra parte de la solución (equivalente a un goto en otros lenguajes de programación).

112 Versión 6.5 PROBLEMA 29: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Plantear el enunciado del problema y desarrollar la codificación. Analice el cuerpo del siguiente algoritmo: INICIO LOGICO sw = FALSO NUMERO i = 2, num LEER num MIENTRAS ( i < num ) SI ( num RESTO i = 0 ) ENTONCES sw = VERDADERO TERMINAR FINSI i = i + 1 FINMIENTRAS SI ( sw || num = 0 || num = 1 || num = 2 ) ENTONCES msg = Número primo SINO msg = Número no es primo FINSI ESCRIBIR msg FIN

113 Versión 6.5 Desarrollar un programa que permita calcular y visualizar la cantidad de números pares comprendidos entre los números 20 y 400. Utilice la estructura HACER. Modifique el programa de tal forma que permita calcular y visualizar la cantidad de números pares comprendidos entre dos números cualesquiera ingresados por el teclado. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 04 ENUNCIADO DEL PROBLEMA 30

114 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 04 ENUNCIADO DEL PROBLEMA 31 Desarrolle un programa que implemente un menú con las siguientes opciones: [1] Ingrese el radio de un círculo. (validar el ingreso de datos). [2] Calcular y mostrar el perímetro del círculo. [3] Calcular y mostrar el área del círculo. [4] Finalizar.

115 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 04 ENUNCIADO DEL PROBLEMA 32 Desarrolle un programa que permita ingresar 20 números a través del teclado, y determine y muestre la suma de todos los números pares ingresados. Utilice la estructura MIENTRAS. Modifique el programa de tal forma que la cantidad de números se ingrese por teclado (validar el ingreso de datos). Adicionalmente, determinar y mostrar la cantidad de números primos ingresados.

116 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 04 ENUNCIADO DEL PROBLEMA 33 Desarrollar un programa que permita obtener la siguiente información: ¿Cuántos alumnos están matriculado en el curso?. ¿Cuántas alumnas son mayores de 18 años?. No ingrese la cantidad de alumnos que hay en el salón de clase.

117 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 04 ENUNCIADO DEL PROBLEMA 34 Desarrolle un programa que permita mostrar la siguiente figura: * ** *** **** En la figura mostrada el número de filas=4. Asuma que el número de filas tiene un rango entre 2 y 20.

118 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 04 ENUNCIADO DEL PROBLEMA 35 Desarrolle un programa que implemente un menú con las siguientes opciones: [1] Ingrese un número. (validar el ingreso de datos). [2] Calcular la cantidad de números múltiplos de 3 menores al número ingresado. [3] Determinar si el número ingresado es capicúa o no. [4] Determinar si el número ingresado es primo o no. [5] Finalizar.

119 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 04 ENUNCIADO DEL PROBLEMA 36 Desarrollar una solución que permita ingresar la fecha en una variable de tipo cadena con el siguiente formato: dd-mm-aaaa. Validar que a fecha ingresada tenga el formato especificado. Manejar excepciones. Sugerencia; Utilice la excepción NumberFormatException.

120 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 04 ENUNCIADO DEL PROBLEMA 37 Desarrollar una solución que permita ingresar la fecha de nacimiento de una persona y la fecha actual en dos variables de tipo cadena con el siguiente formato: dd-mm-aaaa. Mostrar el nombre del mes en que nació la persona y la edad que tiene (expresada en años y meses). Manejar excepciones. Sugerencia; Utilice la excepción NumberFormatException.

121 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Método de las 6D – Soluciones con dos paquetes (sin objeto) TEMAS TRATADOS SEMANA 04 Estructuras Lógicas de Repetición y manejo de errores HACER DESDEMIENTRAS Uso de contadores, acumuladores e interruptores en Estructuras Lógicas de Repetición. PROBAR. Uso de instrucciones de bifurcación.

122 Versión 6.5 Algoritmo y Estructura de Datos I Introducción al desarrollo de soluciones OO Uso de objetos, métodos y atributos Introducción al desarrollo de soluciones OO Uso de objetos, métodos y atributos Unidad II: Semana 05

123 Versión 6.5 Objetivos: Definir y ejemplificar conceptos adicionales de la teoría de objetos y su representación en UML. Conocer el diagrama de secuencia. Definir pautas adicionales en pseudocódigo para diseñar soluciones utilizando métodos. Especificar las sentencias necesarias para codificar soluciones utilizando métodos. Desarrollar soluciones OO en una clase. Uso de estructuras lógicas y variables. (operaciones de ingreso de datos, proceso y visualización de información). Algoritmo y Estructura de Datos I Semana 5

124 Versión 6.5 Descripción Problema D efinición Solución D iseño Solución D esarrollo Solución D epuración Pruebas D ocument. Ingeniería reversa Método de las 6D n veces MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Etapa 01 Etapa 02 Etapa 03 Etapa 04 Etapa 05 Etapa 06

125 Versión 6.5 ¿Qué datos manejan los objetos? Expresado en: Estructuras de Datos. NombreClase (NombrePaquete al que pertenece) Atributos Métodos CLASES – Atributos. Un atributo es una características que tienen un conjunto de objetos que pertenecen a una misma clase. Dichas características pueden ser almacenadas en variables, arreglos o cualquier estructura de datos existente. DEFINICIÓN: CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML

126 Versión 6.5 ¿Qué datos manejan los objetos? Expresado en: Estructuras de Datos. Atributo de clase. Atributo de instancia. CLASIFICACIÓN: CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML Variables globales. Variables locales. TIPOS:

127 Versión 6.5 NombreClase (NombrePaquete al que pertenece) Atributos Métodos CLASES – Métodos. DEFINICIÓN: ¿Qué pueden hacer los objetos?. Expresado en: Algoritmos. Los métodos representan pequeños subprogramas encapsulados dentro de las clases y contribuyen a definir el comportamiento típico de los objetos. Los métodos especifican la forma en que se controlan los datos de un objeto. Los métodos definen el comportamiento de un objeto. CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML

128 Versión 6.5 CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML ¿Qué pueden hacer los objetos?. Expresado en: Algoritmos. Método de clase. Método de objeto o instancia. Métodos especiales CLASIFICACION: Método principal. Método constructor. TIPOS: void que no reciben parámetros. void que reciben parámetros. tipeados que no reciben parámetros. tipeados que reciben parámetros.

129 Versión 6.5 DEFINICIÓN Objetos: Modelos de entes del mundo. Un objeto del mundo real es cualquier cosa acerca del cual conocemos sus características comunes: estado y comportamiento. Un objeto de software es cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y las métodos que controlan dichos datos. La 1ra carpeta. El perro Boby. OBJETOS / INSTANCIA. nombreObjeto : NombreClase CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML

130 Versión 6.5 EJEMPLO LENGUAJE UNIFICADO DE MODELADO UML. CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML

131 Versión 6.5 Use Case Diagrams Use Case Diagrams Diagramas de Casos de Uso Scenario Diagrams Scenario Diagrams Diagramas de Colaboración State Diagrams State Diagrams Diagramas de Componentes Component Diagrams Component Diagrams Diagramas de Distribución State Diagrams State Diagrams Diagramas de Objetos Scenario Diagrams Scenario Diagrams Diagramas de Estados Use Case Diagrams Use Case Diagrams Diagramas de Secuencia State Diagrams State Diagrams Diagramas de Clase Paquete Diagramas de Actividad Modelo DIAGRAMAS CONCEPTOS BÁSICOS DE MODELAMIENTO UTILIZANDO UML LENGUAJE UNIFICADO DE MODELADO UML.

132 Versión 6.5 DIAGRAMA DE SECUENCIA CONCEPTOS BÁSICOS DE MODELAMIENTO UTILIZANDO UML LENGUAJE UNIFICADO DE MODELADO UML. Un diagrama de secuencia es una vista gráfica de un escenario que muestra la interacción del objeto en una secuencia basada en intervalos de tiempo para saber lo que pasa primero y lo que pasa luego. Principales elementos: - Objetos. - Mensajes. - Línea de vida. - Enfoques de control fuente/destino. - Puede incluir un actor.

133 Versión 6.5 PAUTAS – ADICIONALES CREAR EJECUTAR PARAMETRO RETORNO CLASE Permite crear un arreglo o un objeto de una clase. Permite ejecutar un algoritmo desde otro algoritmo. Permite especificar los datos que recibe un algoritmo. Permite especificar si un algoritmo retorna un resultado. ALGORITMO – PAUTAS ADICIONALES EN PSEUDOCÓDIGO Permite referenciar a una clase determinada.

134 Versión 6.5 DEFINICION DE OBJETOS Declaración Creación NombreClase nombreObjeto = new NombreMetodoConstructor() ; CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA El método constructor es un método especial que se ejecuta en forma automática cuando se crea un objeto. La definición del método constructor es opcional siendo su finalidad principal inicializar variables y crear arreglos y objetos de otra clases.

135 Versión 6.5 Los atributos de clase están ubicados dentro de las clases. Solo existirá una copia de cada atributo de clase para todas las instancias de la clase que se creen. class NombreClase { // variables de clase static tipoDato nombreVar …. } ATRIBUTOS DE CLASE CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA Para poder obtener el valor de un atributo de clase deberá colocar el nombre del objeto o el nombre de la clase en la que fue declarado el atributo, luego el operador punto (.) y finalmente el nombre del atributo cuyo valor se desea obtener. (Para obtener el valor de un atributo hay que considerar el modo de acceso con el que fue declarado el atributo en su clase).

136 Versión 6.5 Los atributos de instancia están ubicadas dentro de los objetos. Cada objeto nuevo obtiene una copia nueva de las variables de instancia que la clase define. class NombreClase { // Atributo de instancia tipoDato nombreVar; …. } ATRIBUTOS DE INSTANCIA CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA Para poder obtener el valor de un atributo de instancia deberá colocar el nombre del objeto, luego el operador punto (.) y finalmente el nombre del atributo cuyo valor se desea obtener. (Para obtener el valor de un atributo hay que considerar el modo de acceso con el que fue declarado el atributo en su clase).

137 Versión 6.5 package dominioDeLaAplicacion ; import biblioteca.* ; class NombreClase {... static tipoRetorno nombreMetodo (args) { … } METODOS DE CLASE CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA Para poder ejecutar un método de clase deberá colocar el nombre del objeto o el nombre de la clase en la que fue definido el método, luego el operador punto (.) y finalmente el nombre del método que desea ejecutar. (Para ejecutar un método hay que considerar el modo de acceso con el que fue definido el método en su clase).

138 Versión 6.5 package dominioDeLaAplicacion ; import biblioteca.* ; class NombreClase {... tipoRetorno nombreMetodo (args) {... } METODOS DE INSTANCIA CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA Para poder ejecutar un método de instancia deberá colocar el nombre del objeto en la que fue definido el método, luego el operador punto (.) y finalmente el nombre del método que desea ejecutar. (Para ejecutar un método hay que considerar el modo de acceso con el que fue definido el método en su clase).

139 Versión 6.5 void nombreMetodo ( ) {... } METODOS DE INSTANCIA CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA Durante el desarrollo de nuestras soluciones utilizaremos métodos de instancia. Es importante comprender que los métodos de instancia pueden ser de 4 tipos. (Para ejecutar un método hay que considerar el modo de acceso con el que fue definido el método en su clase). void nombreMetodo (parametros) {... } tipoDato nombreMetodo ( ) {... return valor ; } tipoDato nombreMetodo (parametros) {... return valor ; }

140 Versión 6.5 Desarrollar una solución que permita ingresar las dos notas de un alumno (de 0 a 20) y permita calcular el promedio de las notas. Mostrar el promedio de notas del alumno (redondeado) y un mensaje indicando si el alumno aprobó o no aprobó el curso. Nota: El promedio del alumno se determina en base a la suma de las dos notas ingresadas, más la nota mayor entre ambas dividido entre tres. En la solución utilice métodos. PROBLEMA 38: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE ENUNCIADO Desarrollar el modelamiento, algoritmo y la codificación.

141 Versión 6.5 Desarrollar una solución que permita ingresar las dos notas de un alumno (de 0 a 20) y permita calcular el promedio de las notas. Mostrar el promedio de notas del alumno (redondeado) y un mensaje indicando si el alumno aprobó o no aprobó el curso. Nota: El promedio del alumno se determina en base a la suma de las dos notas ingresadas, más la nota mayor entre ambas dividido entre tres. En la solución utilice métodos y considere como atributos solo datos de entrada. PROBLEMA 39: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar el modelamiento, algoritmo y la codificación. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

142 Versión 6.5 Diseño Solución 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 1.NOMBRE DEL PROYECTO: ProyNotas. 2.DEFINICIÓN DE DIAGRAMAS Y RELACIONES: DESARROLLO DE SOLUCIONES OO 2.1 Diagrama de paquetes y especificación de clase. PROBLEMA 38: ETAPA 3

143 Versión 6.5 Diseño Solución 1.Definir un nombre para el proyecto. 2.Definición de diagramas y relaciones. 2.DEFINICIÓN DE DIAGRAMAS Y RELACIONES: DESARROLLO DE SOLUCIONES OO 2.1 Diagrama de secuencia. PROBLEMA 38: ETAPA 3

144 Versión Desarrollo de Algoritmos. PROBLEMA 38: ETAPA 3 Diseño Solución 3.DESARROLLO DE ALGORITMO EN PSEUDOCODIGO DESARROLLO DE SOLUCIONES OO

145 Versión 6.5 PROBLEMA 38: ETAPA 4 1.Codificar el proyecto. 2.Comentarios internos. 3.Copias de seguridad. Desarrollo Solución 1.CODIFICAR EL PROYECTO: DESARROLLO DE SOLUCIONES OO

146 Versión 6.5 Objetivos: Definir pautas adicionales en pseudocódigo para diseñar soluciones utilizando métodos. Especificar las sentencias necesarias para codificar soluciones utilizando métodos. Desarrollar soluciones OO en una clase. Uso de estructuras lógicas y variables. (operaciones de ingreso de datos, proceso y visualización de información). Algoritmo y Estructura de Datos I Semana 6

147 Versión 6.5 Desarrollar una solución que permita ingresar las dos notas de un alumno (de 0 a 20) y permita calcular el promedio de las notas. Mostrar el promedio de notas del alumno (redondeado) y un mensaje indicando si el alumno aprobó o no aprobó el curso. Nota: El promedio del alumno se determina en base a la suma de las dos notas ingresadas, más la nota mayor entre ambas dividido entre tres. En la solución utilice métodos y considere como atributos solo datos de entrada. PROBLEMA 39: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar el modelamiento, algoritmo y la codificación. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

148 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 05 ENUNCIADO DEL PROBLEMA 40 … Sugerencia; …

149 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 05 ENUNCIADO DEL PROBLEMA 41 … Sugerencia; …

150 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 05 ENUNCIADO DEL PROBLEMA 42 … Sugerencia; …

151 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces TEMAS TRATADOS SEMANA 05 Modelamiento Notación UML Método de las 6D – Modelamiento Algoritmo Diseñado en PSEUDOCODIGO Codificación Lenguaje de programación JAVA

152 Versión 6.5 Algoritmo y Estructura de Datos I Desarrollo de soluciones OO Uso de estructuras lógicas y arreglos Desarrollo de soluciones OO Uso de estructuras lógicas y arreglos Unidad III: Semana 06 a semana 08

153 Versión 6.5 Algoritmo y Estructura de Datos I Semana 02 Objetivos : Describir las diferentes estructuras de datos. Describir la estructura de datos tipo arreglo. Uso de vectores. Desarrollo de soluciones OO en una clase. Uso de estructuras lógicas y arreglos. ( operaciones de ingreso de datos, proceso y visualización de información ).

154 Versión 6.5 Algoritmo y Estructura de Datos I Uso de estructuras lógicas para el manejo de arreglos. Arreglos: Estructuras de datos Unidimensional: Vectores. Bidimensional: Matrices. Soluciones OO, usando una Clase

155 Versión 6.5 Los arreglos son estructuras de datos que almacenan datos del mismo tipo. Los arreglos son entidades estáticas en cuanto a que su tamaño no cambia una vez que han sido creadas. Los arreglos pueden ser: ESTRUCTURAS DE DATOS Arreglos Definición: Unidimensionales: Vectores Bidimensionales: Matrices Unidimensionales: Vectores Bidimensionales: Matrices En ambos casos se debe declarar, crear e inicializar el arreglo antes de usar el mismo.

156 Versión 6.5 ESTRUCTURAS DE DATOS Arreglo Unidimensional - Vector numeros[ ] tamaño=4 Arreglos unidimensionales o vectores simples Representación gráfica: JuanJoseCindyIvetteJessicaWilbe tamaño= nombres[ ]

157 Versión 6.5 ESTRUCTURAS DE DATOS Declaración: tipoDato nombre_del_vector [ ] ; tipoDato nombre_del_vector [ ] En PseudocódigoEn Java tipoDato [ ] nombre_del_vector ; ó Ejemplos: TEXTO nombres [ ] NUMERO sueldos [ ] CARACTER letras [ ] String nombres [ ] ; double sueldos [ ] ; char letras [ ] ; Arreglo Tipo Vector Simple

158 Versión 6.5 ESTRUCTURAS DE DATOS Creación: nombre_del_vector = new tipoDato [tamaño] ; CREAR nombre_del_vector [tamaño] En PseudocódigoEn Java Ejemplos; CREAR nombres [10 ] CREAR sueldos [numNot] CREAR letras [LONGITUD texto] nombres = new String [10] ; sueldos = new double [numNot] ; letras = new char [texto.length()] ; Arreglo Tipo Vector Simple

159 Versión 6.5 ESTRUCTURAS DE DATOS Inicialización: En Pseudocódigo En Java Ejemplos; Arreglo Tipo Vector Simple nombre_del_vector[ ] = { valor1, valor2, valor3, valor4, …, valorN }; nombre_del_vector[ ] = { valor1, valor2, valor3, valor4, …, valorN } edades[] = {12,14,15,23,76,3,10} edades[] = {12,14,15,23,76,3,10};

160 Versión 6.5 ESTRUCTURAS DE DATOS Ingreso de datos: nombre_del_vector[índice] = valor ; nombre_del_vector[índice] = valor En PseudocódigoEn Java Ejemplos; Cuando empleamos vectores podemos utilizar las estructuras lógicas de repetición para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE. nombres [0 ] = Danae sueldos [1] = letras [x] = J nombres [0 ] = Danae ; sueldos [1] = ; letras [x] = J ; Arreglo Tipo Vector Simple

161 Versión 6.5 ESTRUCTURAS DE DATOS Tamaño: variable = nombre_del_vector.length ; variable = LONGITUD nombre_del_vector [ ] En PseudocódigoEn Java Ejemplos: tamaño = LONGITUD nombres [ ] tamaño = LONGITUD sueldos [ ] tamaño = LONGITUD letras [ ] tamaño = nombres.length ; tamaño = sueldos.length ; tamaño = letras.length ; Arreglo Tipo Vector Simple

162 Versión 6.5 ESTRUCTURAS DE DATOS Declaración y creación: En Java Declaración, creación e inicialización: tipoDato nombre_del_vector[ ] = { valor1, valor2, valor3, valor4, …, valorN } ; En Java tipoDato nombre_del_vector [ ] = new tipoDato [tamaño] ; Arreglo Tipo Vector Simple

163 Versión 6.5 ESTRUCTURAS DE DATOS Arreglo Tipo Vector Simple Ingreso de datos - Usando estructura de repetición for String nombre[]; nombre= new String[10]; for(int i=0;i

164 Versión 6.5 ESTRUCTURAS DE DATOS Arreglo Tipo Vector Simple Mostrar datos - Usando estructura de repetición for String listado=""; for(int i=0;i

165 Versión 6.5 PROBLEMA 43: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar el modelamiento, el algoritmo y la codificación. Desarrollar una solución que permita ingresar y almacenar la nota ( notas[] ) de 10 alumnos de un salón de clase y determinar el promedio final ( prom ). Mostrar el promedio. Consistenciar el ingreso de datos. Utilice vectores simples. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

166 Versión 6.5 PROBLEMA 44: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar la codificación. Desarrollar una solución que permita ingresar y almacenar la nota ( notas[] ) de todos los alumnos de un salón de clase y determinar el promedio final ( prom ) redondeado a dos decimales. Mostrar el promedio. Consistenciar el ingreso de datos. Utilice vectores simples. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

167 Versión 6.5 PROBLEMA 45: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar la codificación. Desarrollar una solución que permita ingresar y almacenar el sueldo ( sueldos[] ) de todos los trabajadores de una empresa. Calcular y mostrar el sueldo neto ( sueldoNeto ) de cada trabajador, sabiendo que se tienen que descontar el 12% por impuestos y el 3% por seguro. Consistenciar el ingreso de datos. Utilice vectores simples. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

168 Versión 6.5 PROBLEMA 46: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar la codificación. Desarrollar una solución que permita ingresar y almacenar el nombre de todos los artículos ( nombres[] ) de una bodega. Mostrar la cantidad de vocales que tiene cada nombre. Consistenciar el ingreso de datos. Utilice vectores simples. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

169 Versión 6.5 Algoritmo y Estructura de Datos I Semana 03 Objetivos : Describir las diferentes estructuras de datos. Describir la estructura de datos tipo arreglo. Uso de matrices. Desarrollo de soluciones OO en una clase. Uso de estructuras lógicas y arreglos. ( operaciones de ingreso de datos, proceso y visualización de información ).

170 Versión 6.5 Algoritmo y Estructura de Datos I Uso de estructuras lógicas para el manejo de arreglos. Arreglos: Estructuras de datos Vectores. Matrices. Soluciones OO, usando una Clase

171 Versión 6.5 ESTRUCTURAS DE DATOS Arreglos - Matrices Arreglos bidimensionales o matrices Representación: numeros[][] filas = 2 columnas = 4 Orden = 2 x 4 Preguntar por tamaño y orden

172 Versión 6.5 ESTRUCTURAS DE DATOS Declaración: tipoDato identificador [ ][ ] ; tipoDato identificador [ ][ ] En PseudocódigoEn Java Arreglos tipo matriz tipoDato [ ][ ] identificador ; ó Ejemplos; - TEXTO nombres [ ][ ] - NUMERO sueldos [ ][ ] - CARACTER letras [ ][ ] - String nombres [ ][ ] ; - double sueldos [ ][ ] ; - char letras [ ][ ] ;

173 Versión 6.5 ESTRUCTURAS DE DATOS Creación: identificador = new tipoDato [filas][columnas] ;CREAR identificador [filas][columnas] En PseudocódigoEn Java Ejemplos; - CREAR nombres [2 ][4] - CREAR sueldos [numAlu][numNot] - CREAR letras [4][total] - nombres = new String [2][10] ; - sueldos = new double [numAlu][numNot] ; - letras = new char [4][total] ; Arreglos tipo matriz

174 Versión 6.5 ESTRUCTURAS DE DATOS Ingreso de datos: identificador [índice] = valor ;identificador [índice] = valor En PseudocódigoEn Java Ejemplos; Cuando utilizamos matrices podemos utilizar las estructuras lógicas de repetición para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE dos veces. - nombres [0 ][0] = Danae - sueldos [1][x] = letras [y][x] = J - nombres [0 ][0] = Danae ; - sueldos [1][x] = ; - letras [y][x] = J ; Arreglos tipo matriz

175 Versión 6.5 PROBLEMA 47: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar el modelamiento, el algoritmo y la codificación. Desarrollar una solución que permita ingresar y almacenar números enteros en una matriz de 3 por 3 ( a[][] ) y permita calcular la suma ( suma ) de los números ubicados en la diagonal principal. Consistenciar la entrada de datos. Utilice matrices. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

176 Versión 6.5 PROBLEMA 48: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar la codificación. Desarrollar una solución que permita ingresar y almacenar el precio de compra y el precio de venta de todos los artículos de una bodega ( precios[][] ). Calcular y mostrar la utilidad que se obtiene por la venta de cada artículo redondeado a dos decimales. Adicionalmente determine cual es la mayor utilidad. Utilice matrices. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

177 Versión 6.5 PROBLEMA 49: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar la codificación. Desarrollar una solución que permita ingresar y almacenar el código y el nombre de los empleados de una compañía ( empleados[][] ). Calcular y mostrar las dos primeras letras del código de cada empleado en letra mayúscula. Adicionalmente determine cual es el código alfabéticamente menor. Utilice matrices. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

178 Versión 6.5 PROBLEMA 50: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar la codificación. Desarrollar una solución que permita ingresar y almacenar el promedio de prácticas, la nota del examen parcial y la nota del examen final de todos los alumnos de MBIII de la FIA ( notas[][] ). Calcular y mostrar el promedio que obtuvo cada alumno redondeado. Adicionalmente indicar el porcentaje de alumnos que aprobaron el curso. Utilice matrices. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE

179 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 06 ENUNCIADO DEL PROBLEMA 51 Desarrollar una solución que permita ingresar y almacenar la nota ( notas[] ) de todos los alumnos de un salón de clase. Determinar la nota mayor, la nota menor, el promedio de las notas, la cantidad de aprobados y cantidad de desaprobados. Consistenciar el ingreso de datos. Utilice vectores.

180 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 06 ENUNCIADO DEL PROBLEMA 52 Desarrollar una solución que permita ingresar y almacenar 20 números ( numeros[] ) enteros mayores que cero. Determinar y mostrar la cantidad de números múltiplos de 5 y la suma de todos los números pares. Consistenciar el ingreso de datos. Utilice vectores.

181 Versión 6.5 Desarrollar una solución que permita ingresar y almacenar el promedio de prácticas, la nota del examen parcial y la nota del examen final de todos los alumnos de MBIII de la FIA ( notas[][] ). Calcular y mostrar el promedio general del salón de clase y el número de alumnos que obtuvieron la mayor nota. Utilice matrices. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 06 ENUNCIADO DEL PROBLEMA 53

182 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 06 ENUNCIADO DEL PROBLEMA 54 Desarrollar una solución que permita ingresar y almacenar las notas de todos los alumnos de MBIII de la FIA ( notas[][] ). Calcular y mostrar el promedio de cada alumno redondeado, el porcentaje de alumnos aprobados, el promedio general de todo el salón de clase y el número de alumnos que obtuvieron la menor nota. Utilice matrices.

183 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Arreglos: Estructuras de datos Vectores. Matrices. Método de las 6D – Soluciones OO en una clase TEMAS TRATADOS SEMANA 06 Uso de estructuras lógicas para el manejo de arreglos.

184 Versión 6.5

185 Objetivos: Algoritmo y Estructura de Datos I Semana 07 Creación de arreglos de gran tamaño para el almacenamiento y manejo de datos. Entender y desarrollar algoritmo de búsqueda secuencial y ordenamiento de datos por intercambio en arreglos de gran tamaño. Desarrollo de soluciones OO en una clase. Uso de estructuras lógicas y arreglos. (operaciones de ingreso de datos, proceso, visualización de información, ordenamiento y búsqueda. Uso de menú).

186 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Búsqueda de datos. Algoritmos para el manejo de datos en arreglos Ordenamiento de datos. Método de las 6D – Soluciones OO en una clase Algoritmo y Estructura de Datos I Uso de estructuras lógicas para el manejo de datos en arreglos de gran tamaño.

187 Versión 6.5 Definición: Un arreglo de gran tamaño es aquel que se crea con una capacidad mayor a la cantidad de datos que va almacenar. Los arreglos de gran tamaño se utilizan cuando no se puede determinar desde un inicio cual debe ser el tamaño de un arreglo. ARREGLOS – MANEJO DE DATOS Arreglos de gran tamaño codigos (long) numAlu = 0 (int) Observe el vector codigos[ ]. Dicho vector ha sido creado con un tamaño de Tamaño suficiente para almacenar todos los códigos de los alumnos de un salón de clase. Para manejar los datos almacenados en un arreglo de gran tamaño se necesita una variable que indica el tamaño lógico del arreglo. Observe el valor de la variable numAlu. ¿Qué significa?

188 Versión 6.5 La búsqueda de datos consiste en ubicar un determinado elemento, su posición o ambos entre un conjunto de elementos almacenados en una estructura de datos específica. Se dice que la búsqueda es exitosa cuando el elemento buscado es encontrado, caso contrario, la búsqueda es no exitosa o fallida. 1.Búsqueda secuencial. 2.Búsqueda binaria. 3.Búsqueda de hashing. Tipos: Introducción: Búsqueda de Datos ARREGLOS – MANEJO DE DATOS

189 Versión 6.5 Este es el método más sencillo de búsqueda de datos y se basa en recorrer el arreglo en forma secuencial desde el principio hasta el final. Método de Búsqueda Secuencial Definición: ARREGLOS – MANEJO DE DATOS codigos (long) numAlu = X (int) INICIO FIN ¿Cuándo se finaliza la búsqueda?

190 Versión 6.5 Dado los datos siguientes: ARREGLOS – MANEJO DE DATOS Búsqueda Secuencial de Datos numAlu = 3 (int) Supongamos que se desea buscar un determinado código. ¿Qué operaciones se deberían realizar? ¿Qué restricciones deberían existir? Desarrolle un algoritmo en pseudocódigo para la búsqueda de un nombre. ¿Qué consideraciones debería tener si el vector fuera de tipo TEXTO? codigos (long)

191 Versión 6.5 PROBLEMA 55: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar una solución que permita almacenar los códigos de todos los alumnos de un salón de clase. Utilice un menú con las opciones siguientes: 1. Ingreso de códigos. 2. Búsqueda de código. 3. Mostrar códigos. 4. Finalizar Utilice vectores de gran tamaño para almacenar los datos. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE Desarrollar la codificación.

192 Versión 6.5 La ordenación o clasificación de datos es la operación de organizar un conjunto de datos en algún orden dado, tal como creciente o decreciente en datos numéricos, o bien en orden alfabético directo o inverso. Estructuras de datos típicas que suelen requerir ordenación son: lista de números, archivos de clientes de banco, nombres de una agenda telefónica, etc. Introducción: 1.Método de la Burbuja (intercambio). 2.Método de Inserción. 3.Método de Selección 4.Método QuickSort. Tipos: ARREGLOS – MANEJO DE DATOS Ordenamiento de Datos

193 Versión 6.5 Este método de ordenación se fundamenta en el principio de comparar e intercambiar pares de elementos contiguos hasta ordenar todos los elementos. Método de la Burbuja Definición: ARREGLOS – MANEJO DE DATOS numAlu = 3 (int) Danae Angella Camilla nombres (String) Angella Camila Danae nombres (String) Danae Camila Angella nombres (String) VECTOR ORDENADO

194 Versión 6.5 Dado los datos siguientes: ARREGLOS – MANEJO DE DATOS Ordenamiento de Datos por Burbuja numAlu = 3 (int) Supongamos que se desea ordenar los nombres alfabéticamente. ¿Qué operaciones se deberían realizar? ¿Qué restricciones deberían existir? Desarrolle un algoritmo en pseudocódigo para ordenar los datos. ¿Qué consideraciones debería tener si el vector fuera de tipo NUMERO? Danae Angella Camilla nombres (String)

195 Versión 6.5 PROBLEMA 56: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar una solución que permita almacenar los nombres de todos los alumnos de un salón de clase. Utilice un menú con las opciones siguientes: 1. Ingreso de nombres. 2. Ordenar nombres. 3. Mostrar nombres. 4. Finalizar Utilice vectores de gran tamaño para almacenar los datos. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE Desarrollar la codificación.

196 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 07 ENUNCIADO DEL PROBLEMA 57 … Sugerencia; …

197 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 07 ENUNCIADO DEL PROBLEMA 58 … Sugerencia; …

198 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces TEMAS TRATADOS SEMANA 07 Búsqueda de datos. Algoritmos para el manejo de datos en arreglos Ordenamiento de datos. Método de las 6D – Soluciones OO en una clase Uso de estructuras lógicas para el manejo de datos en arreglos de gran tamaño.

199 Versión 6.5 Objetivos: Algoritmo y Estructura de Datos I Semana 08 Introducción al uso de arreglos en paralelo. Entender y desarrollar algoritmo para la modificación y eliminación de datos en arreglos paralelos de gran tamaño. Desarrollo de soluciones OO en una clase. Uso de estructuras lógicas y arreglos. (operaciones de ingreso de datos, proceso, visualización de información, ordenamiento, búsqueda, modificación y eliminación. Uso de menú).

200 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Modificación de datos. Algoritmos para el manejo de datos en arreglos Eliminación de datos. Método de las 6D – Soluciones OO en una clase Algoritmo y Estructura de Datos I Uso de estructuras lógicas para el manejo de datos en arreglos en paralelo de gran tamaño.

201 Versión 6.5 Definición: Cuando en una solución se utiliza más de un arreglo y el orden en que se disponen los datos entre los arreglos tiene un significado se les denomina arreglos paralelos. ARREGLOS – MANEJO DE DATOS Arreglos en Paralelo

202 Versión 6.5 Ejemplo: Arreglos en Paralelo ARREGLOS – MANEJO DE DATOS Desarrolle la Gráfica de Estructura de una solución que utilice vectores en paralelo. De tal forma, que permita almacenar el código, el nombre y el promedio final de todos los alumnos de un salón de clase. Extienda la gráfica de tal forma que en lugar de almacenar el promedio final se almacenen las 4 notas de todos los alumnos de un salón de clase. Anote sus conclusiones.

203 Versión 6.5 Definición: ARREGLOS – MANEJO DE DATOS Modificación de Datos La modificación de datos consiste en cambiar el valor de un dato o de un conjunto de datos almacenados en una estructura de datos. En el caso de los arreglos, la modificación de datos es necesaria para mantener actualizados los datos almacenados codigos nombres promedios (long)(String)(double) numAlu = 0 (int) Gráfica de Estructuras (del ejemplo anterior)

204 Versión 6.5 Dado los datos siguientes: ARREGLOS – MANEJO DE DATOS Modificación de Datos codigos Danae Angella Camilla nombres promedios (long)(String)(double) numAlu = 3 (int) Supongamos que se desea modificar los datos del alumno con código = 20. ¿Qué operaciones se deberían realizar? ¿Qué restricciones deberían existir? Desarrolle un algoritmo en pseudocódigo para la modificación de datos de un alumno.

205 Versión 6.5 PROBLEMA 59: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Desarrollar una solución que permita almacenar los códigos, nombres y promedios de todos los alumnos de un salón de clase. Utilice un menú con las opciones siguientes: 1. Ingreso de datos. 2. Búsqueda de datos por código. 3. Modificación de datos por código. 4. Mostrar datos. 5. Finalizar Utilice vectores paralelos para almacenar los datos. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE Desarrollar la codificación.

206 Versión 6.5 Definición: ARREGLOS – MANEJO DE DATOS Eliminación de Datos La eliminación de datos consiste en eliminar el valor de un dato o de un conjunto de datos almacenados en una estructura de datos. En el caso de los arreglos, la eliminación de datos es necesaria para mantener actualizados los datos almacenados codigos nombres promedios (long)(String)(double) numAlu = 0 (int) Gráfica de Estructuras (del ejemplo anterior)

207 Versión 6.5 Dado los datos siguientes: ARREGLOS – MANEJO DE DATOS Eliminación de Datos codigos Danae Angella Camilla nombres promedios (long)(String)(double) numAlu = 3 (int) Supongamos que se desea eliminar los datos del alumno con código = 20. ¿Qué operaciones se deberían realizar? ¿Qué restricciones deberían existir? Desarrolle un algoritmo en pseudocódigo para la eliminación de datos de un alumno.

208 Versión 6.5 PROBLEMA 60: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. ENUNCIADO Modifique la solución anterior de tal forma que pueda incluir dos opciones adicionales en el menú. Dicho menú deberá tener las opciones siguientes: 1. Ingreso de datos. 2. Búsqueda de datos por código. 3. Ordenación de datos por código. 4. Modificación de datos por código. 5. Eliminación de datos or código. 6. Mostrar datos. 7. Finalizar. Utilice vectores paralelos para almacenar los datos. MÉTODO 6D – SOLUCIONES OO EN UNA CLASE Desarrollar la codificación.

209 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 08 ENUNCIADO DEL PROBLEMA 61 … Sugerencia; …

210 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. INTÉNTALO !! INTÉNTALO!! SEMANA 08 ENUNCIADO DEL PROBLEMA 62 … Sugerencia; …

211 Versión 6.5 Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces TEMAS TRATADOS SEMANA 08 Algoritmos para el manejo de datos en arreglos Método de las 6D – Soluciones OO en una clase Modificación de datos. Eliminación de datos. Uso de estructuras lógicas para el manejo de datos en arreglos en paralelo de ran tamaño.

212 Versión 6.5 Algoritmo y Estructura de Datos I Desarrollo de soluciones básicas Usando Interfaz Grafica de Usuario Desarrollo de soluciones básicas Usando Interfaz Grafica de Usuario Unidad IV: Semana 10

213 Versión 6.5 Objetivos: Algoritmo y Estructura de Datos I Semana 10 – sesión 01 Comprender el empleo de herencia y el uso de interfaces dentro de la Programación Visual. Describir los diferentes componentes que integran la programación visual.

214 Versión 6.5 El interfaz de usuario es la parte del programa que permite a éste interactuar con el usuario. Las interfaces de usuario pueden adoptar muchas formas, que van desde la simple línea de comandos hasta las interfaces gráficas que proporcionan las aplicaciones más modernas. Java proporciona los elementos básicos para construir decentes interfaces de usuario a través del AWT, y opciones para mejorarlas mediante Swing INTERFAZ DE USUARIO INTERFAZ GRÁFICA DE USUARIO PROGRAMACION EN ENTORNO VISUAL

215 Versión 6.5 CARACTERÍSTICAS DE LA TOO Y UML – GUI PROGRAMACION EN ENTORNO VISUAL Descripción de componentes básicos En la interfaz gráfica que se muestra, los componentes son representados por objetos de las clases TextField, Label y Button. Label Button TextField Contenedor

216 Versión 6.5 Interfaz gráfica de usuario DISEÑO: Etapa en la cual se colocan los componentes gráficos sobre la ventana. En Java, podemos utilizar componentes awt (paquete awt) o swing (paquete swing). PROGRAMACIÓN: Etapa en la cual se asocia métodos a los componentes gráficos. En Java, se utiliza la interfaz ActionListener (paquete event en Java). INTERFAZ GRÁFICA DE USUARIO

217 Versión 6.5 Es el paquete de Java que contienen los elementos necesarios para la creación de Interfaces Graficas de Usuario. La estructura básica del AWT se basa en Componentes y Contenedores. PAQUETE AWT. Componentes (Component) Contenedor(Conteiner) AWT INTERFAZ GRÁFICA DE USUARIO

218 Versión 6.5 COMPONENTES Button Canvas Checkbox Choice Container Label List Scrollbar TextComponent –TextArea –TextField La clase Component es una clase abstracta que representa todo lo que tiene una posición, un tamaño, puede ser pintado en pantalla y puede recibir eventos. INTERFAZ GRÁFICA DE USUARIO El AWT proporciona varias clases de Componentes: Componentes

219 Versión 6.5 Componentes mas utilizados En Java, algunos de los componentes mas utilizados son: Button, Label, TextField,etc Button: BtnAceptar TextField:TxtClave Label: LblUsuario INTERFAZ GRÁFICA DE USUARIO

220 Versión 6.5 HERENCIA CARACTERÍSTICAS DE LA TOO Y UML – Herencia Herencia: Creación de clase a partir de clases existentes. Es una de las características mas importantes de la programación orientada a objetos que facilita el planteamiento de soluciones adecuadas, y constituye un mecanismo que permite crear clases a partir de clases existentes. DEFINICIÓN CLASE BASE, PADRE, SUPERCLASE O GENERAL. CLASE DERIVADA, HIJO, SUBCLASE O ESPECÍFICA. * El término herencia es utilizado en biología para referirse a ciertas características físicas y de comportamiento que son comunes entre familiares (padres e hijos). Rectangulo Cuadrado

221 Versión 6.5 HERENCIA EN CLASE: Proponga otros ejemplos donde se puede apreciar el concepto de herencia. EJEMPLOS Persona VendedorCliente Factura FacturaContadoFacturaCredito CARACTERÍSTICAS DE LA TOO Y UML – Herencia

222 Versión 6.5 INTERFACES CARACTERÍSTICAS DE LA TOO Y UML – Interfaces Interfaz: Clase abstracta a nivel superior. Es una de las características mas importantes de la programación orientada a objetos. Este mecanismo permite abstraer los métodos a un nivel superior, lo que permite simular la herencia múltiple y obtener más polimorfismo que el que se puede obtener de una simple jerarquía de clases. INTRODUCCIÓN Una interfaz es un conjunto de métodos que indican que una clase tiene un comportamiento particular además del que hereda de su superclase.

223 Versión 6.5 INTERFACES Una interfaz es como un molde, solamente permite declarar nombres de métodos (pueden ser public, static y final), listas de argumentos, tipos de retorno y adicionalmente miembros dato. (los cuales solo pueden ser constantes de tipos básicos de datos). Jerarquías de clases distintas pueden utilizar la misma interfaz. Animal Pajaro … Hombre Persona … INTERFAZ COMÚN CARACTERÍSTICAS DE LA TOO Y UML – Interfaces

224 Versión 6.5 Recoger similitudes entre clases no relacionadas forzando una relación entre ellas. Declarar métodos que forzosamente una o mas clases tienen que implementar. Tener acceso a un objeto, para permitir el uso de objetos anónimos (útil cuando se vende un paquete de clases a otros desarrolladores). CONCLUSIONES Las interfaces son utilices para: CARACTERÍSTICAS DE LA TOO Y UML – Interfaces

225 Versión 6.5 Objetivos: Algoritmo y Estructura de Datos I Semana 10 – sesión 02 Solucionar problemas básicos empleando Programación Visual. Comprender los fundamentos de la solución de problemas con Programación Visual.

226 Versión 6.5 En base a los conceptos tratados en la clase anterior desarrolle la siguiente Jerarquía de Clases. EJEMPLO PRÁCTICO JERARQUÍA DE CLASES [clases entidad] CARACTERÍSTICAS DE LA TOO Y UML – Herencia Rectangulo Cuadrado Circulo Figura

227 Versión 6.5 Diseño de la Ventana EJEMPLO PRÁCTICO CARACTERÍSTICAS DE LA TOO Y UML – Interfaz gráfica

228 Versión 6.5 Algoritmo y Estructura de Datos I Estructura Dinámicas Lineales de Datos Unidad VI: Semana 11 a Semana 12

229 Versión 6.5 Describir el uso de objetos de la clase Vector para el uso y manejo de estructuras de datos tipo arreglo unidimensional Describir el uso de la interfaz Enumeration para mostrar datos almacenados en una estructura de datos Ejemplificar el uso de la Clase Vector y la interfaz Enumeration para el manejo de arreglo de objetos. Algoritmo y Estructura de Datos II Objetivos : Semana 11 – sesión 01

230 Versión 6.5 Algoritmo y Estructura de Datos II Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Clase Vector Interfaz Enumeration Método de las 6D – Soluciones Orientadas a Objetos Clases e Interfases incorporadas en el lenguaje de programación

231 Versión 6.5 Algoritmo y Estructura de Datos II Estructuras de Datos (en memoria principal) LINEALESNO LINEALES EstáticasDinámicasJerárquicasNo jerárquicas Listas Pilas Colas Variables Arreglos Árboles Grafos Forma de organización de los datos en la memoria principal del computador

232 Versión 6.5 Algoritmo y Estructura de Datos I Estructuras de Datos (en memoria secundaria) Forma de organización de los datos en la memoria secundaria del computador Archivos BD Mañana V

233 Versión 6.5 Algoritmo y Estructura de Datos II Estructuras de Datos (en memoria principal) LINEALES EstáticasDinámicas Listas Pilas Colas Variables Arreglos Vector Enumeration CLASE: INTERFAZ:

234 Versión 6.5 VECTORES Vectores: Almacenamiento de datos del mismo tipo. Los vectores son estructuras de datos que consisten en elementos del mismo tipo. Los arreglos son entidades estáticas en cuanto a que su tamaño no cambia una vez que han sido creadas. Se debe tener en cuenta que antes de usar los elementos de un arreglo, se debe declarar, crear e inicializar el arreglo. DEFINICIÓN Representación vector[0]vector[1]vector[2]vector[3] vector 0123 índices ESTRUCTURA DE DATOS ARREGLO - Arreglos

235 Versión 6.5 ARREGLO DE OBJETOS Arreglo de objetos: Almacenamiento de datos compuestos del mismo tipo. Estos permiten almacenar objetos en lugar de datos simples. DEFINICIÓN Arreglos simples 10 codigo 012 ESTRUCTURA DE DATOS ARREGLO – Arreglo de objetos Arreglos de objetos Danae nombre sueldo ( int ) ( String ) ( double ) 10 Danae datos ( Empleado ) 012

236 Versión 6.5 ARREGLO DE OBJETOS ESTRUCTURA DE DATOS ARREGLO – Arreglo de objetos 10 Danae datos ( Empleado ) 012 Danae setNombre() - getNombre() - setSueldo() - getSueldo() - setCodigo() - getCodigo()

237 Versión 6.5 La clase Vector de Java, es una clase que viene incluida como parte del paquete java.util (el paquete de utilidad del lenguaje), y se utiliza con la finalidad de crear objetos tipo arreglo unidimensional con la capacidad de aumentar y reducir su tamaño en forma dinámica a medida que cambian los requerimientos de datos de una aplicación. CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Vector Definición:

238 Versión 6.5 Métodos: CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Los objetos de la clase Vector permiten almacenar referencias a objetos de la clase Object. Esto significa, que a través de los objetos Vector, podemos almacenar referencias a cualquier tipo de objeto. Si se desea almacenar valores de tipo primitivo deberá utilizar las clases de envoltura o Wrappers. Uso de la clase Vector Crear objetos Vector: 1.Vector () 2.Vector ( Collection c ). 3.Vector ( int initialCapacity ). 4.Vector ( int initialCapacity, int capacityIncrement )

239 Versión 6.5 Métodos: CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Vector Agregar elementos: 1.add ( int index, Object element ) : void 2.add ( Object o ) : boolean 3.addAll ( Collection c ) : boolean 4.addAll ( int index, Collection c ) : boolean 5.addElement ( Object o ) : void Insertar elementos: 1.insertElementAt ( Object o, int index ) : void Eliminar elementos: 1.clear () : void 2.remove ( int index ) : Object 3.remove ( Object o ) : boolean 4.removeAll ( Collection c ) : boolean 5.removeAllElement () : void 6.removeElement ( Object obj ) : boolean 7.removeElementAt( int index ) : void 8.retainAll ( Collection c ) : bolean

240 Versión 6.5 Métodos: CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Vector Buscar elementos: 1.contains ( Object element ) : boolean 2.containsAll ( Collection c ) : boolean 3.equals ( Object o ) : boolean 4.indexOf ( Object o ) : int 5.indexOf ( Object o, int index ) : int 6.lastIndexOf ( object o ) : int 7.lastIndexOf ( Object o, int index ) : int Modificar elementos: 1.set ( int index, Object o ) : Object 2.setElementAt ( Object o, int index ) : void Tamaño y capacidad: 1.capacity () : int 2.isEmpty () : boolean 3.setSize ( int newSize ) : void 4.size () : int 5.trimToSize () : void Recorrer elementos: 1.elementAt (int index) : Object 2.firstElement () : Object 3.lastElement () : Object 4.get ( int index ) : Object

241 Versión 6.5 Métodos: CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Vector Copiar elementos: 1.clone () : Object 2.copyInto ( Object [ ] array ) : boolean 3.elements () : Enumeration 4.toArray () : Object [ ] 5.toString () : String 6.subList ( int fromIndex, toIndex ) : List

242 Versión 6.5 PROBLEMA 63: ETAPA 1 Descripción Problema Desarrollar una solución que permita ingresar la nota final (prom) de todos los alumnos de un salón de clase. Muestre el tamaño y la capacidad del vector, así como el primer y ultimo elemento almacenado. Utilice la clase Vector del paquete java.util. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. 3.ENUNCIADO CLARO Y PRECISO DEL PROBLEMA: MÉTODO 6D – SOLUCIONES ORIENTADAS A OBJETOS

243 Versión 6.5 La interfaz Enumeration de Java, es una interfaz que viene incluida como parte del paquete java.util (el paquete de utilidad del lenguaje), y se utiliza para recorrer a través de los elementos almacenados en un contenedor tal como un objeto de tipo Vector INTERFASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la interfaz Enumeration Definición: El método hasMoreElements() devuelve true si hay mas elementos en el objeto Vector El método nextElement() devuelve una referencia al siguiente objeto en el objeto Vector

244 Versión 6.5 PROBLEMA 64: ETAPA 1 Descripción Problema Desarrollar una solución que permita ingresar los nombres de todos los alumnos de un salón de clase. Elimine el segundo elemento y el nombre Luis si existe. Mostrar los nombres almacenados. Utilice la clase Vector y la interfaz Enumeration del paquete java.util. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. 3.ENUNCIADO CLARO Y PRECISO DEL PROBLEMA: MÉTODO 6D – SOLUCIONES ORIENTADAS A OBJETOS

245 Versión 6.5 PROBLEMA 65: ETAPA 1 Descripción Problema Diseñar una solución utilizando una interfaz gráfica de usuario que permita manejar los nombres de todos los alumnos de un salón de clase. Utilice la clase Vector y la interfaz Enumeration del paquete java.util. 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. 3.ENUNCIADO CLARO Y PRECISO DEL PROBLEMA: MÉTODO 6D – SOLUCIONES ORIENTADAS A OBJETOS

246 Versión 6.5 Algoritmo y Estructura de Datos II Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Clase Vector Interfaz Enumeration Método de las 6D – Soluciones Orientadas a Objetos Clases e Interfases incorporadas en el lenguaje de programación

247 Versión 6.5 Objetivos: Algoritmo y Estructura de Datos I Semana 11 – sesión 02 Desarrollar soluciones utilizando la clase Vector y la Interfaz Enumeration de Java Describir el uso de la clase Arrays de Java para el manejo de arreglos

248 Versión 6.5 El profesor del curso explicará los problemas que se han incluido en el PLACE sobre el tema tratado. INTÉNTALO !! INTÉNTALO!! SEMANA 11

249 Versión 6.5 PROBLEMA : 66 ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Enunciado claro y preciso del problema. MÉTODO 6D – SOLUCIONES DE PROBLEMAS ENUNCIADO Desarrollar una solución que permita ingresar y almacenar el nombre, sueldo y código de los trabajadores de una empresa. Considerar los procesos de registro y control de los datos.

250 Versión 6.5 La clase Arrays de Java, es una clase que viene incluida como parte del paquete java.util (el paquete de utilidad del lenguaje), y se utiliza para manipular arreglos. Contiene métodos estáticos. CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Arrays Definición: Métodos: sort( ) binarySearch ( ) equals ( ) fill ( )

251 Versión 6.5 El profesor del curso explicará los problemas que se han incluido en el PLACE sobre el tema tratado. INTÉNTALO !! INTÉNTALO!! SEMANA 11

252 Versión 6.5 Objetivos : Introducción a las estructuras de datos tipo : Listas Definición de listas Representación de listas: en memoria y en forma de nodos Describir el uso de la clase LinkedList de Java para el manejo de listas Algoritmo y Estructura de Datos I Semana 12 – sesión 01

253 Versión 6.5 Lista: Colección de datos. Es una estructura de datos que permite almacenar datos del mismo tipo, denominados elementos o nodos. Las listas puedan aumentar o disminuir su tamaño a medida que van incorporándose nuevos elementos o eliminando elementos. El orden de la lista se establece mediante referencia a objetos. ESTRUCTURA DE DATOS – Listas LISTAS Relación de alumnos 17C 2005-I 1.Alvarez Valderrama, Maritza Margot. 2.Anicama Canales, Pedro David. 3.Aranibar Dìaz, Aldo Arnaldo. … DEFINICIÓN

254 Versión 6.5 Lista: Colección de datos. VENTAJAS ESTRUCTURA DE DATOS – Listas LISTAS No requieren de un índice para acceder a un determinado elemento o nodo. El consumo de memoria dependerá únicamente de la cantidad de información almacenada en la misma.

255 Versión 6.5 CLASIFICACIÓN ESTRUCTURA DE DATOS – Listas LISTAS LINEALES EstáticasDinámicas Listas Pilas Colas Variables Arreglos LISTAS SIMPLES LISTAS DOBLES LISTAS CIRCULARES Nodos que contienen objetos y un enlace al siguiente nodo. Nodos que contienen objetos y dos enlaces, uno al siguiente nodo y otro al anterior. Nodos que contienen objetos y el último elemento contiene una referencia al primer nodo.

256 Versión 6.5 Son listas unidireccionales que solo se pueden recorrer del inicio de la lista hasta el final de la lista en un solo sentido. DEFINICIÓN ESTRUCTURA DE DATOS – Listas simples LISTAS SIMPLES Operaciones: Adición. Recorrido. Búsqueda. Modificación. Eliminación. Ordenamiento.

257 Versión 6.5 ESTRUCTURA DE DATOS – Listas simples LISTAS SIMPLES Llamadas también unidireccionales: sólo se pueden recorrer del principio hacia el final. info: contiene información asociada al elemento sig : Campo de enlace, contiene la dirección de memoria donde se encuentra ubicado el siguiente elemento de la lista. Adicionalmente se utiliza una variable llamada cabecera, la cual contiene la dirección del primer nodo de la Lista. Asimismo, el campo de enlace del último nodo contiene una dirección nula. DEFINICIÓN ESTRUCTURA DE UN NODO info sig

258 Versión 6.5 ESTRUCTURA DE DATOS – Listas simples LISTAS SIMPLES REPRESENTACIÓN GRÁFICA cabecera null Ejemplo: selecciones que han obtenido el campeonato mundial de fútbol: Brasil, Italia, Argentina, Francia. Ordenar alfabéticamente los elementos de la Lista Cuando se ordenan los elementos, sólo se intercambia el contenido del campo info; no se cambian las direcciones de memoria.

259 Versión 6.5 REPRESENTACIÓN ESTRUCTURA DE DATOS – Listas simples LISTAS SIMPLES Almond…3 Agüero…5 Alva…0 Acuña…2 Alarcón…1 nombre siguiente inicio fin EN MEMORIA: VISUALMENTE: Relación de alumnos 21D 2005-I 1.Acuña Azarte, Maritza Haydee. 2.Agüero Herrera, Jorge Alberto. 3.Alarcón Suarez, Juan José. 4.Almond Ruiz, George William. 5.Alva Pimentel, César Eduardo. A través del uso de listas simples podemos acceder a los datos recorriéndolos hacia delante hasta el final.

260 Versión 6.5 REPRESENTACIÓN ESTRUCTURA DE DATOS – Listas simples LISTAS SIMPLES 1 23 cabecera null EN NODOS: VISUALMENTE: Relación de alumnos 21D 2005-I 1.Acuña Azarte, Maritza Haydee. 2.Agüero Herrera, Jorge Alberto. 3.Alarcón Suarez, Juan José. Acuña… Agüero…Alarcón… A través del uso de listas simples podemos acceder a los datos recorriéndolos hacia delante hasta el final. sig

261 Versión 6.5 LISTAS SIMPLES EJEMPLO ESTRUCTURA DE DATOS – Listas simples Relación de alumnos 21D 2005-I 1.Acuña Azarte, Maritza Haydee. 2.Agüero Herrera, Jorge Alberto. 3.Alarcón Suarez, Juan José. 4.Almond Ruiz, George William. 5.Alva Pimentel, César Eduardo. Inicio (cabecera) Fin (null) Lista Elemento o nodo (datos simples) (siguiente)

262 Versión 6.5 La clase LinkedList de Java, es una clase que viene incluida como parte del paquete java.util (el paquete de utilidad del lenguaje), y se utiliza para manipular colecciones de datos conocidas como listas. CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase LinkedList Definición:

263 Versión 6.5 PROBLEMA 67: ETAPA 1 Descripción Problema 1.Identificación del problema. 2.Descripción general del problema. 3.Descripción de la estructura de datos a utilizar MÉTODO 6D – SOLUCIONES DE PROBLEMAS ENUNCIADO Diseñe una aplicación para almacenar y administrar los datos de empleados de una empresa, considere lo siguientes datos: código y nombre. Utilice la clase LinkedList.

264 Versión 6.5 PROBLEMA 67: ETAPA 2 Diseño de la Solución 1.Diseño de ventana MÉTODO 6D – SOLUCIONES DE PROBLEMAS

265 Versión 6.5 Objetivos : Introducción a las estructuras de datos tipo : pilas y colas. Definición y clasificación de las pilas. Descripción de la implementación de pilas con vectores y listas. Definición de las colas. Representación de las colas Algoritmo y Estructura de Datos I Semana 12 – sesión 02

266 Versión 6.5 CLASIFICACIÓN ESTRUCTURA DE DATOS – Pilas PILAS LINEALES EstáticasDinámicas Listas Pilas Colas Variables Arreglos PILAS Estructura de datos lineales, dinámicas. A B C Elemento Cima

267 Versión 6.5 Pila: Colección de datos. Es una estructura de datos que permite almacenar datos del mismo tipo, en la cual en un extremo se puede insertar y eliminar elementos, llamado la parte superior de la pila o cima. A este tipo de estructura de datos se le conoce como LIFO (primero en entrar, último en salir). DEFINICIÓN ESTRUCTURA DE DATOS – Pilas PILAS

268 Versión 6.5 Utiliza una Estructura lineal para implementarla esta puede ser: Lista Arreglo El acceso a la pila se hace a través de sus operaciones apilar (push) y desapilar (pop) No se puede recorrer CARACTERISTICAS ESTRUCTURA DE DATOS – Pilas PILAS

269 Versión 6.5 OPERACIONES ESTRUCTURA DE DATOS – Pilas PILAS Agregar (apilar) Agrega un elemento a la pila. Pila empujada hacia abajo. Empujar (push). Eliminar (desapilar) Retira un elemento de la pila. Validación de la pila vacía. Retirar (pop).

270 Versión 6.5 ESTRUCTURA DE DATOS – Pilas PILAS A B C Elemento Cima ApilarDesapilar D D REPRESENTACIÓN LIFO (primero en entrar, último en salir).

271 Versión 6.5 ESTRUCTURA DE DATOS – Pilas REPRESENTACIÓN DE UNA PILA

272 Versión 6.5 ESTRUCTURA DE DATOS – Pilas EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

273 Versión 6.5 ESTRUCTURA DE DATOS – Pilas EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

274 Versión 6.5 ESTRUCTURA DE DATOS – Pilas EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

275 Versión 6.5 IMPLEMENTACIÓN ESTRUCTURA DE DATOS – Pilas PILAS UTILIZANDO VECTORES A B C ABC i=7 x [0]x [1]x [2] x [-1] CIMA PILA Índice último elemento ingresado PILA VACÍA índice -1

276 Versión 6.5 IMPLEMENTACIÓN ESTRUCTURA DE DATOS – Pilas PILAS UTILIZANDO LISTAS A B C x [-1] 123 fin CBA CIMA PILA Índice último elemento ingresado PILA VACÍA índice -1

277 Versión 6.5 Cola: Colección de datos. Una cola es una lista lineal de elementos en las que las eliminaciones se realizan en un extremo, llamado primero, y las inserciones se realizan sólo en el otro extremo, llamado último. Las colas abundan en la vida diaria. Ejemplo La cola del autobús La cola de la impresora DEFINICIÓN ESTRUCTURA DE DATOS – Colas COLAS

278 Versión 6.5 Utiliza una Estructura lineal para implementarla esta puede ser: Lista Arreglo El acceso a la cola se hace a través de sus operaciones por un extremo se inserta y por el otro se retira. No se puede recorrer CARACTERISTICAS ESTRUCTURA DE DATOS – Colas COLAS

279 Versión 6.5 ESTRUCTURA DE DATOS – Colas COLAS Es una estructura de datos que permite almacenar datos del mismo tipo, los datos se insertan al final al cual se le conoce como ultimo y se procesan primero los que se encuentran al inicio Una cola es una estructura FIFO, es decir el primero en entrar, es el primero en salir. First In, First Out(FIFO) último primero

280 Versión 6.5 ESTRUCTURA DE DATOS – Colas COLAS AB C ultimoprimero Acolar Decolar D A REPRESENTACIÓN FIFO (primero en entrar, primero en salir).

281 Versión 6.5 IMPLEMENTACIÓN ESTRUCTURA DE DATOS – Colas COLAS B C ultimoprimero A FIFO (primero en entrar, primero en salir). UTILIZANDO VECTORES max cola [ ]

282 Versión 6.5 Algoritmo y Estructura de Datos I Estructuras Dinámicas No Lineales De Datos Estructuras Dinámicas No Lineales De Datos Unidad VI: Semana 13 a Semana 14

283 Versión 6.5 Objetivos : Introducción a la recursividad Recursividad en la programación y ejemplos de recursividad Metodos Recursivos Definición de Árboles Características de los árboles Árboles binarios Algoritmo y Estructura de Datos I Semana 13 – sesión 01

284 Versión 6.5 Se define un método recursivo cuando puede llamarse a si mismos Se debe consideran dentro de los métodos recursivos lo siguiente: Parámetros Condición antes de invocarse Debe tener un fin ESTRUCTURA DE DATOS – Recursividad METODOS RECURSIVOS

285 Versión 6.5 Se puede utilizar la recursividad como una alternativa a la iteración. La recursividad la encontramos en variables recursivas y métodos recursivos Eficiente en términos de tiempo de computadora que una solución iterativa debido a las operaciones auxiliares que llevan consigo las llamadas suplementarias a las funciones. La solución recursiva muchas veces permite a los programadores especificar soluciones naturales, que en otros casos sería difícil de resolver. ESTRUCTURA DE DATOS – Recursividad RECURSIVIDAD EN LA PROGRAMACION

286 Versión 6.5 Algunas ejemplos de recursión: Factorial -- n! = n × (n-1)! Sucesión de Fibonacci -- f(n) = f(n-1) + f(n-2) Números de Catalan -- C(2n, n)/(n+1) Las Torres de Hanoi Función de Ackermann ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE RECURSIVIDAD

287 Versión 6.5 Función recursiva para calcular el factorial de un número entero. n! = n * (n-1) * (n-2) *... * 1 No se puede calcular el factorial de números negativos, y el factorial de cero es 1, de modo que una función bien hecha para cálculo de factoriales debería incluir un control para esos casos: ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE METODOS RECURSIVOS

288 Versión 6.5 Llamada al método recursivo int x=factorial(5); /* Función recursiva para cálculo de factoriales */ public int factorial(int n) { if(n ==1) return 1; else return n*factorial(n-1); /* Recursividad */ } ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE RECURSIVIDAD

289 Versión 6.5 ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE METODOS RECURSIVOS Diseñe un método recursivo que permita la potencia de un numero A elevado a B Análisis 3 2 =3*3 3 2 =3*3 1= 3*3*3 0 =3*3*1

290 Versión 6.5 Llamada al método recursivo int x=potencia(3,2); /* Función recursiva para cálculo de potencia */ public int potencia(int a,int b) { if(b ==0) return 1; else return a*potencia(a,b-1); /* Recursividad */ } ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE RECURSIVIDAD

291 Versión 6.5 Los árboles son estructuras de datos jerarquizadas, organizadas y dinámicas: formada por un conjunto de nodos y un conjunto de aristas que conectan pares de nodos. Jerárquica porque los componentes estan a distinto nivel. Organizada porque importa la forma en que este dispuesto el contenido. Dinámica porque su forma, tamaño y contenido pueden variar durante la ejecución. El primer nodo se le conoce con el nombre de RAIZ ESTRUCTURA DE DATOS – Árboles DEFINICION DE ARBOL

292 Versión 6.5 ESTRUCTURA DE DATOS – Árboles REPRESENTACION DE UN ARBOL RAIZ A CD B EF a b e f c d Representation Textual Representación Nodal

293 Versión 6.5 ESTRUCTURA DE DATOS – Árboles CARACTERISTICAS Todo árbol tiene un único nodo raíz. Todo nodo, excepto la raíz esta conectado por medio de una arista a un único nodo, donde existe correspondencia se dice que es nodo padre aquel que antecede y es hijo a aquel nodo que le precede. Hay un único camino desde la raíz a cada nodo. Todo nodo que no tiene mas ramificaciones se le conoce como nodo terminal u hoja.

294 Versión 6.5 Padre es el antecesor inmediato de un nodo Hijo, cualquiera de sus descendientes inmediatos. Hermano de un nodo, es otro nodo con el mismo padre. El grado de un nodo cualesquiera, es el numero de descendientes directos que tenga. Grado de un Árbol, es el máximo grado de todos los nodos. Nivel, es el número de aristas o arcos que deben ser recorridos para llegar a un determinado nodo. Altura, es el máximo número de niveles de todos los nodos del árbol. ESTRUCTURA DE DATOS – Árboles CARACTERISTICAS

295 Versión 6.5 ESTRUCTURA DE DATOS – Árboles CARACTERISTICAS DE LOS ÁRBOLES A BCD G EF IH raiz hijos hojas Grado 2 Grado del Arbol 3 Nivel 3

296 Versión 6.5 Representación de un árbol genealógico. Representación de operaciones algebraicas. Para realizar la administración de directorios como para UNIX, DOS, Windows. Crear directorio de ficheros, etc. ESTRUCTURA DE DATOS – Árboles APLICACIONES DE ÁRBOLES

297 Versión 6.5 Son los árboles cuyo grado es 2 como máximo. ESTRUCTURA DE DATOS – Árboles ÁRBOLES BINARIOS Se dice que es un árbol binario si tiene 0, 1 o 2 hijos

298 Versión 6.5 Los árboles binarios se pueden recorrer de la siguiente manera: Pre-Orden (Prefijo) RID - Visitar la raiz - Recorrer el sub-arbol izquierdo. - Recorrer el sub-arbol derecho. In-Orden (Infijo) IRD - Recorrer el sub-arbol izquierdo. - Visitar la raiz. - Recorrer el sub-arbol derecho. Post-Orden (Postfijo) IDR - Recorrer el sub-arbol izquierdo. - Recorrer el sub-arbol derecho. - Visitar la raiz. ESTRUCTURA DE DATOS – Árboles RECORRIDO DE UN ARBOL BINARIO

299 Versión 6.5 A B C D EF IH G PreOrden (RID): _____________ InOrden (IRD): _____________ PostOrden (IDR): _____________ ESTRUCTURA DE DATOS – Árboles PreOrden (RID): ABDGCEHIF InOrden (IRD): DGBAHEICF PostOrden (IDR): GDBHIEFCA

300 Versión 6.5 ESTRUCTURA DE DATOS – Árboles B C D EG A F KJML H I PreOrden (RID): _____________ InOrden (IRD): _____________ PostOrden (IDR): _____________

301 Versión 6.5 Un árbol binario de búsqueda también llamado árbol ordenado es aquel donde se cumple que nodos menores que la raíz van a la izquierda y los que son mayores que la raíz van a la derecha. Los nodos insertados en árboles de búsqueda binarios se insertan como hojas. Definición: ESTRUCTURA DE DATOS – Árboles ÁRBOLES BINARIOS DE BÚSQUEDA

302 Versión 6.5 ESTRUCTURA DE DATOS – Árboles REPRESENTACIÓN DE UN ARBOL ORDENADO

303 Versión 6.5 Se crea un nuevo elemento Si la raíz esta vacía entonces raíz será el nuevo elemento Si la raíz tiene datos, comparamos si es menor se va a la izquierda y si es mayor a la derecha siempre y cuando sea una hoja ESTRUCTURA DE DATOS – Árboles INSERCION DE UN ELEMENTO A UN ARBOL (AGREGAR) null raiz nuevo 6 raiz 6 4 nuevo 4 6 raiz 9 nuevo (a) (b) (c) (d) raiz (e)

304 Versión 6.5 public class Arbol { Elemento raiz ; public String inOrden( Elemento p){ if(p != null) return inOrden(p.izq) + " " + p.info + "\n" + inOrden(p.der); return ""; } public String preOrden( Elemento p){ if(p != null) return p.info + "\n"+preOrden(p.izq) + " " + preOrden(p.der); return ""; } public String postOrden( Elemento p){ if(p != null) return postOrden(p.izq) + postOrden(p.der)+ p.info + \n " +; return ""; } IMPLEMENTACION DE LA CLASE ARBOL: RECORRER (PROFUNDIDAD) EJEMPLO: ESTRUCTURA DE DATOS – Árboles

305 Versión 6.5 Objetivos : Definición de Grafos. Ejemplos aplicativos Algoritmo y Estructura de Datos I Semana 13 – sesión 02

306 Versión 6.5 Algoritmo y Estructura de Datos I Estructuras de Datos (en memoria principal) LINEALESNO LINEALES EstáticasDinámicasJerárquicasNo jerárquicas Listas Pilas Colas Variables Arreglos Arboles Grafos Forma de organización de los datos en la memoria principal del computador

307 Versión 6.5 GRAFOS Un grafo es una estructura de datos compuesta por vértices y arcos. Es la representación gráfica de los datos de una situación particular. Los grafos representan conjuntos de objetos que no tienen restricción de relación entre ellos. Un grafo puede representar varias cosas de la realidad cotidiana, tales como mapas de carreteras, vías férreas, circuitos eléctricos, etc DEFINICIÓN ESTRUCTURA DE DATOS – Gráfos

308 Versión 6.5 GRAFOS Un grafo, G, es un par ordenado de V y A, donde V es el conjunto de vértices o nodos del grafo.Un vértice puede tener 2 o más aristas, pero toda arista debe unir exactamente a dos vértices. DEFINICIÓN V= A,B,C,D,E,F,G,H,I,J,K,L ARCOS : JK,EG,GE,etc NO ARCOS : AC, BG, BF, etc ESTRUCTURA DE DATOS – Gráfos

309 Versión 6.5 GRAFOS Gracias a la teoría de Grafos se pueden resolver diversos problemas como por ejemplo la síntesis de circuitos secuenciales, contadores o sistemas de apertura. Los grafos se utilizan también para modelar trayectos como el de una línea de autobús a través de las calles de una ciudad, en el que podemos obtener caminos óptimos para el trayecto aplicando diversos algoritmos como puede ser el algoritmo de Floyd Para la administración de proyectos, utilizamos técnicas como PERT en las que se modelan los mismos utilizando grafos y optimizando los tiempos para concretar los mismos. APLICACIONES ESTRUCTURA DE DATOS – Gráfos

310 Versión 6.5 GRAFOS La notación G = A ( V, A ) se utiliza comúnmente para identificar un grafo. Los grafos se constituyen principalmente de : aristas, vértices y los caminos que pueda contener el mismo grafo. ESTRUCTURA DE DATOS – Gráfos

311 Versión 6.5 GRAFOS Conceptos: Aristas: Son las líneas con las que se unen los vértices de un grafo y con las que se construyen también caminos. Si la arista carece de dirección se denota indistintamente {a,b} o {b,a}, siendo a y b los vértices que une. Sï {a,b} es una arista, a los vértices a y b se les llama extremos ESTRUCTURA DE DATOS – Gráfos

312 Versión 6.5 GRAFOS Conceptos: Vértices: Son los puntos o nodos con los que está conformado un grafo. Llamaremos grado de un vértice al número de aristas de las que es un extremo. Se dice que un vértice es par o impar según sea su grado. ESTRUCTURA DE DATOS – Gráfos

313 Versión 6.5 GRAFOS Conceptos: Caminos: Sean x, y V, se dice que hay un camino en G de x a y si existe una sucesión finita no vacía de aristas {x,V1}, {V1,V2},.....{Vn,Y}. En este caso x e y se llaman los extremos del camino. El número de aristas del camino se llama la longitud del camino. ESTRUCTURA DE DATOS – Gráfos

314 Versión 6.5 GRAFOS Clasificación: Podemos clasificar los grafos en dos grupos : dirigidos y no dirigidos. En un grafo no dirigido.- el par de vértices que representa un arco no está ordenado. Por tanto, los pares (v1,v2) y (v2,v1) representan el mismo arco. En un grafo dirigido o dígrafo.- es aquel en el que sus arcos tienen una orientación. Cada arco está representado por un par ordenado de vértices, de forma que representen dos arcos diferentes. ESTRUCTURA DE DATOS – Gráfos

315 Versión 6.5 GRAFOS Ejemplo 1: G1 = ( V1, A1 ) V1 = {1, 2, 3, 4} A1 = { (1,2), (1,3), (1,4), (2,3), (2,4), (3,4) } ESTRUCTURA DE DATOS – Gráfos

316 Versión 6.5 GRAFOS Ejemplo 2: G2 = ( V2, A2 ) V2 = {1, 2, 3, 4, 5, 6} A2 = { (1, 2), (1, 3), (2, 4), (2, 5), (3, 6) } ESTRUCTURA DE DATOS – Gráfos

317 Versión 6.5 GRAFOS Ejemplo 3: G3 = ( V3, A3 ) V3 = { 1, 2, 3 } A2 = {,, } 1 23 ESTRUCTURA DE DATOS – Gráfos

318 Versión 6.5 GRAFOS Algoritmo de PRIM: Es un algoritmo de la teoría de grafos para encontrar un subconjunto de aristas que forman un grafo con todos los vértices, en donde el peso total de todas las aristas en el grafo es el mínimo camino posible. Ejemplo: ESTRUCTURA DE DATOS – Gráfos

319 Versión 6.5 GRAFOS Pseudocódigo del algoritmo PRIM: Entrada: Un grafo ponderado conexo con todos sus pesos diferentes. Salida: Las aristas de un árbol generador minimal. i : = 1; N := tamaño del grafo de Entrada en número de vértices; mientras (i < N) hacer escoger la arista de peso mínimo A de entre todas las que aún no han sido escogidas si la Salida aún está vacía, es decir, que estamos en la primera iteración entonces escoge la arista A de menor peso; fin_si si A no forma ciclo con las que ya forman parte de la Salida entonces añadir A a la Salida; i := i + 1; Fin_si Fin_mientras ESTRUCTURA DE DATOS – Gráfos

320 Versión 6.5 GRAFOS EJEMPLO:Ejecución de un grafo usando Applet ESTRUCTURA DE DATOS – Gráfos

321 Versión 6.5 Objetivos : Definición de Archivos Tipos de archivos Archivos textos Clasificación Diagrama de Bloques Clase Archivo. Introducción Algoritmo y Estructura de Datos I Semana 14

322 Versión 6.5 Algoritmo y Estructura de Datos I Diseño Solución Desarrollo Solución Depuración Pruebas Ingeniería reversa n veces Estructuras de Datos Archivos texto. Método de las 6D – Soluciones con dos paquetes (sin objeto)

323 Versión 6.5 Estructura de Datos Archivo Una estructura de Datos Archivo es una colección de datos que se almacenan en un almacenamiento secundario (dispositivos tales como discos, diskettes, cds, etc). Los datos de un archivo pueden ser leídos y utilizados por otros medios. Operaciones básicas: Definición: -Apertura del archivo. -Escritura de datos en el archivo. -Lectura de datos del archivo. -Cierre del archivo. ESTRUCTURA DE DATOS – Archivos Ventajas: 1.-Permite almacenar diferentes tipos de datos. 2.-Permite almacenar los datos en forma permanente. 3.-Su capacidad depende del espacio disponible en el disco. Semana 14 Sesión 01

324 Versión 6.5 Estructura de Datos Archivo Su contenido es totalmente textual, es decir solo se guardan caracteres ASCII. Dichos archivos por lo general tienen extensión txt o dat. Los archivos pueden ser modificados utilizando un editor de texto, ya que estos se visualizan sin formato, tal y como se almacenaron los datos. Son conocidos también como archivos planos. Tipos: Son aquellos que almacenan datos o instrucciones en otro tipo de estructura, que no puede ser modificado con un editor de texto cualquiera. Generalmente, son modificados utilizando el programa con el que fueron almacenados. Archivos de TEXTO:Archivos BINARIOS: ESTRUCTURA DE DATOS – Archivos Semana 14 Sesión 01

325 Versión 6.5 ARCHIVOS TEXTOS O PLANOS ESTRUCTURA DE DATOS – Archivos Estructura: Archivo: Registro: Campo: Esta conformado por un conjunto de registros. Esta conformado por un conjunto de campos. Esta conformado por un conjunto de datos todos del mismo tipo. Nombre del CampoTipo de DatoLongitud codigoTEXTO10 nombreTEXTO40 sueldoNUMERO12 2 Archivo: Empleado.dat Semana 14 Sesión 01

326 Versión 6.5 ARCHIVOS TEXTOS O PLANOS ESTRUCTURA DE DATOS – Archivos Clase Archivo: Métodos: abrirArchivo(): Permite abrir un archivo de texto. Si el archivo de texto no existe automáticamente crea el archivo. cerrarArchivo(): Permite cerrar un archivo de texto. eof(): Permite indicar que se ha llegado al fin del archivo. grabarDatos(): Permite grabar los datos en un archivo de texto. leerDatos(): Permite leer datos de un archivo de texto. totalRegistros(): Indica la cantidad total de registros que contiene el archivo. Es una clase reutilizable que pertenece al paquete biblioteca y ha sido creada con la finalidad de facilitar el manejo de operaciones básicas con un archivo texto. La clase Archivo tiene también atributos y otros métodos. Dichos atributos y métodos son privados por lo que son utilizados internamente por los métodos que aquí se detallan. Semana 14 Sesión 01

327 Versión 6.5 PROBLEMA : ETAPA 1 Descripción Problema Desarrolle una solución que permita almacenar el nombre y la clave de todos los usuarios de una aplicación en un archivo de texto denominado usuarios.dat. Utilice la clase Lectura para el ingreso de datos y la clase Archivo para el manejo de operaciones básicas con un archivo texto. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO Semana 14 Sesión 01

328 Versión 6.5 PROBLEMA : ETAPA 3 Diseño Solución 1.NOMBRE DEL PROYECTO: ProyArchivoUsuarios 2.DIAGRAMA DE PAQUETES: MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) 3.DEFINICIÓN DE CLASES: Desarrollar la definición de clases y la estructura del archivo. Diagrama de paquetes 4.DEFINICIÓN DE LA ESTRUCTURA DEL ARCHIVO: Semana 14 Sesión 01

329 Versión 6.5 PROBLEMA : ETAPA 4 Desarrollo Solución MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) Explique detalladamente package domApli; import biblioteca.*; public class PrgArchivoUsuarios { public static void main(String[] args) { char opc; Archivo usuarios = new Archivo(); usuarios.abrirArchivo("C:\\","Usuarios.dat","rw"); String datos[] = new String[2]; // Ingresando datos do { System.out.println ("Escriba nombre de usuario: "); datos[0] = Lectura.leerString(); System.out.println ("Escriba clave de usuario: "); datos[1] = Lectura.leerString(); usuarios.grabarDatos(datos); System.out.println ("Desea continuar (s/n): "); opc = Lectura.leerChar(); } while (opc =='s' || opc =='S'); // Mostrando datos for (int i=0; i

330 Versión 6.5 Maestro : Son aquellos que poseen datos permanentes, no cambian fácilmente su contenido. Ejemplo: Maestro de alumnos, profesores, artículos, clientes, proveedores. Transacciones : Son archivos que se actualizan constantemente. Ejemplo: archivo de notas, cuenta corriente, entradas y salidas de materiales. Históricos : Son archivos con información que no tiene vigencia a la fecha y se referencia cuando se necesita cualquier información histórica. Back-up : Son archivos de respaldo. Temporales : Son archivos que se crean de forma momentánea y luego se eliminan. ESTRUCTURA DE DATOS – Archivos ARCHIVOS TEXTOS O PLANOS Clasificación por función: Semana 14 Sesión 02

331 Versión 6.5 ARCHIVOS TEXTOS O PLANOS SECUENCIAL : Los registros están organizados de la forma que fueron grabados.. INDEXADO : Los registros están ordenados por un campo o conjunto de campos determinado. ESTRUCTURA DE DATOS – Archivos a b c a a b c a = codigo b = nombre c = sexo ordenado por el campo a Clasificación por acceso: Semana 14 Sesión 02

332 Versión 6.5 Es mediante el cual se muestran todas las entradas y salidas de un programa determinado. Extiéndase por entrada información necesaria para producir la salida en base a un proceso determinado. ESTRUCTURA DE DATOS – Archivos Proceso de Calculo PrgCalculo Alumno.dat becas.dat reporte ARCHIVOS TEXTOS O PLANOS Diagrama de bloque: Semana 14 Sesión 02

333 Versión 6.5 PROBLEMA : ETAPA 1 Descripción Problema Desarrolle una solución que permita almacenar el código, nombre, apellido y promedio final de los alumnos de un salón de clase en un archivo de texto denominado alumnos.dat. Utilice un menú con las siguientes opciones: [1] Ingresar datos. [2] Mostrar datos. [3] Finalizar. Utilice la clase LE para el ingreso de datos y la clase Archivo para el manejo de operaciones básicas con un archivo texto. MÉTODO 6D – SOLUCIONES CON DOS PAQUETES (sin objeto) ENUNCIADO Semana 14 Sesión 02

334 Versión 6.5 PROPUESTO PROPUESTOS!! SEMANA 14 ENUNCIADO DEL PROBLEMA Semana 14 Laboratorio Desarrolle una solución que permita almacenar el nombre y la clave de todos los usuarios de una aplicación en un archivo de texto. Utilice un cuadro de dialogo para abrir o crear el archivo de texto donde se van almacenar los datos. Utilice la clase LE para el ingreso de datos y la clase Archivo para el manejo de operaciones básicas con un archivo texto.

335 Versión 6.5 PROPUESTO PROPUESTOS!! SEMANA 14 ENUNCIADO DEL PROBLEMA Semana 14 Laboratorio Desarrolle una solución que permita almacenar el código, nombre y la clave de todos los usuarios de una aplicación en un archivo de texto denominado usuarios.dat. Utilice un menú de opciones, la clase LE para el ingreso de datos y la clase Archivo para el manejo de operaciones básicas con un archivo texto.

336 Versión 6.5 Desarrolle una solución que permita almacenar el código, nombre, apellido y las 2 notas de los alumnos de un salón de clase en un archivo de texto denominado alumnos.dat. Utilice un menú con las siguientes opciones: [1] Ingresar datos. [2] Calcular promedios. [3] Mostrar datos. [4] Finalizar. Utilice la clase LE para el ingreso de datos y la clase Archivo para el manejo de operaciones básicas con un archivo texto. PROPUESTO PROPUESTOS!! SEMANA 14 ENUNCIADO DEL PROBLEMA Semana 14 Laboratorio

337 Versión 6.5 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. PROPUESTOS!! SEMANA 14 ENUNCIADO DEL PROBLEMA Desarrollar una solución que permita almacenar los códigos y nombres de todos los empleados de una empresa en un archivo de texto denominado empleados.dat. Utilice la interfaz gráfica mostrada y la clase Archivo para el manejo de operaciones básicas con un archivo texto. Semana 14 Laboratorio ADICIONAR MOSTRAR PROPUESTO 14-04

338 Versión 6.5 INTENTALO !! INTENTALO!! SEMANA 14 ENUNCIADO DEL PROBLEMA El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase. Desarrollar una solución que permita implementar la interfaz gráfica mostrada. Utilice la clase Archivo para el manejo de operaciones básicas con un archivo texto.

339 Versión 6.5 Algoritmo y Estructura de Datos I Programación Gráfica Unidad VII: Semana 15

340 Versión 6.5 Objetivos : Introducción a la Programación Gráfica Algoritmo y Estructura de Datos I Semana 15 – sesión 1 y 2

341 Versión 6.5 Algoritmo y Estructura de Datos I Estas funciones permiten dibujar gráficos en la pantalla. El API de Java nos permite fácilmente: Dibujar líneas de cualquier anchura Rellenar formas con gradientes y texturas Mover, rotar, escalar y recortar texto y gráficos. Componer texto y gráficos solapados. PROGRAMACION GRAFICA

342 Versión 6.5 PROGRAMACION GRAFICA Por ejemplo, podríamos usar el API de Java para mostrar gráficos y charts complejos que usan varios estilos de línea y de relleno para distinguir conjuntos de datos, como se muestra en la siguiente figura: ESTRUCTURA DE DATOS – Programación Gráfica

343 Versión 6.5 Esto comprende aprender conocimientos básicos sobre herramientas, librerías y APIs y desarrollar aplicaciones gráficas con un lenguaje de programación. Introducir el manejo de algunas librerías conocidas y explicar no solo su uso, también su integración en Java o C++. PROGRAMACION GRAFICA ESTRUCTURA DE DATOS – Programación Gráfica

344 Versión 6.5 Para el caso de Java, por ejemplo, para comenzar a trabajar con gráficos se debe de importar un paquete que permite realizar este tipo de funciones, llamado Graphics. import java.awt.Graphics; PROGRAMACION GRAFICA ESTRUCTURA DE DATOS – Programación Gráfica

345 Versión 6.5 Métodos para hacer gráficos: drawLine( x1,y1,x2,y2 ) drawRect( x,y,ancho,alto ) fillRect( x,y,ancho,alto ) clearRect( x,y,ancho.alto ) drawRoundRect( x,y,ancho,alto,anchoArco,altoArco ) fillRoundRect( x,y,ancho,alto,anchoArco,altoArco ) draw3DRect( x,y,ancho,alto,boolean elevado ) fill3DRect( x,y,ancho,alto,boolean elevado ) ESTRUCTURA DE DATOS – Programación Gráfica

346 Versión 6.5 Métodos para hacer gráficos: drawOval( x,y,ancho,alto ) fillOval( x,y,ancho,alto ) drawArc( x,y,ancho,alto,anguloInicio,anguloArco ) fillArc( x,y,ancho,alto,anguloInicio,anguloArco ) drawPolygon( int[] puntosX,int[] puntosY[],numPuntos ) fillPolygon( int[] puntosX,int[] puntosY[],numPuntos ) ESTRUCTURA DE DATOS – Programación Gráfica

347 Versión 6.5 // draw Line2D.Double g2.draw(new Line2D.Double(x, y+rectHeight-1, x + rectWidth, y)); // draw Rectangle2D.Double g2.setStroke(stroke); g2.draw(new Rectangle2D.Double(x, y, rectWidth, rectHeight)); // draw RoundRectangle2D.Double g2.setStroke(dashed); g2.draw(new RoundRectangle2D.Double(x, y, rectWidth, rectHeight, 10, 10)); // draw Arc2D.Double g2.setStroke(wideStroke); g2.draw(new Arc2D.Double(x, y, rectWidth, rectHeight, 90, 135, Arc2D.OPEN)); EJEMPLOS ESTRUCTURA DE DATOS – Programación Gráfica

348 Versión 6.5 EJEMPLO 1: Dibujar lo siguiente: import java.awt.Graphics; public class Linea extends java.applet.Applet { public void paint(Graphics g) { g.drawLine(25,25,300,150); } importando el paquete Graphics ESTRUCTURA DE DATOS – Programación Gráfica

349 Versión 6.5 EJEMPLO 2: Dibujar lo siguiente: import java.awt.Graphics; public class Ejemplo2 extends java.applet.Applet { public void paint(Graphics g) {g.drawRoundRect(40,40,120,120,20,20); } ESTRUCTURA DE DATOS – Programación Gráfica

350 Versión 6.5 EJEMPLO 3: Dibujar lo siguiente: import java.awt.Graphics; public class Ejemplo3 extends java.applet.Applet { public void paint(Graphics g) { g.fillArc(120,20,60,60,90,180); } ESTRUCTURA DE DATOS – Programación Gráfica

351 Versión 6.5 Algoritmo y Estructura de Datos I I GUÍA TEÓRICA DEL DOCENTE. Todos los derechos reservados.


Descargar ppt "Versión 6.5 Algoritmo y Estructura de Datos I (AEDI) 2006 - II Ing. Juan José Flores Cueto (Jefe de SubArea). Ing. Cindy Sotelo Mendoza (Jefe de Curso)."

Presentaciones similares


Anuncios Google