La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algoritmo y Estructura de Datos I (AEDI)

Presentaciones similares


Presentación del tema: "Algoritmo y Estructura de Datos I (AEDI)"— Transcripción de la presentación:

1 Algoritmo y Estructura de Datos I (AEDI)
Facultad de Ingeniería y Arquitectura Algoritmo y Estructura de Datos I (AEDI) II Guía Teórica desarrollada por los profesores del curso: Ing. Pablo Iván Casma Angulo. Bach. Jessica Paulino Torre. 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.

2 Algoritmo y Estructura de Datos I
I N T R O D U C C I Ó N

3 Algoritmo y Estructura de Datos I
Plan de Estudios IC AEDI AEDII BD SWI SWII DI II FDWeb Prog I Prog II Electivos Prácticas en FIA-DATA Prácticas en EMPRESA I II III IV V VI VII VIII 4 Años

4 Algoritmo y Estructura de Datos I
Sílabo Objetivos generales: HOY 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 III 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 Algoritmo y Estructura de Datos I
Sílabo 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) HOY AEDI III 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 Algoritmo y Estructura de Datos I
Sílabo Evaluación: 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

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

8 Proyecto Parcial y Final
Algoritmo y Estructura de Datos I Proyecto Parcial y Final Indicaciones: 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. 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.

9 Proyecto Parcial y Final
Algoritmo y Estructura de Datos I Proyecto Parcial y Final Monografía: Presentación en disquete (2 ptos). Calidad, limpieza y orden (1.5 ptos). Copia de seguridad (0.5 ptos). Estructura (4 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. Carátula (0.5 ptos). Índice (0.5 ptos). Contenido. Conclusiones (2.0 ptos). Bibliografía (1.0 ptos). Contenido (14 ptos). La monografía deberá ser presentada en base al modelo utilizado en la FIA. Recuerde agregar en contenido los puntos aquí establecidos.

10 Algoritmo y Estructura de Datos I
Proyecto Final Sustentación: Aspectos Ponderación Presentación. Organización. Exposición. Contenido. Material adicional. 1. 4. Escala: 1 a 5 (1 muy malo y 5 excelente). 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 Algoritmo y Estructura de Datos I
Anotaciones:

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

13 Algoritmo y Estructura de Datos I
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.

14 Definición Diseño Desarrollo Depuración Document.
MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6’D Etapa 01 Descripción Problema Etapa 02 Definición Solución Etapa 03 n veces Diseño Solución Ingeniería reversa Etapa 04 Desarrollo Solución Etapa 05 Modelamiento Depuración Pruebas Etapa 06 Algoritmo Document. Codificación

15 Método de las 6’D – Ingeniería reversa
MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6’D – Ingeniería reversa Diseño Solución Desarrollo Depuración Pruebas n veces Ingeniería reversa 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”.

16 Modelamiento Definición: Vf = Vo + at – a%3
CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO Modelamiento Definición: 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. Vf = Vo + at – a%3 Modelo matemático Modelo de clases

17 Modelamiento - UML Definición:
CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO Modelamiento - UML Definición: 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.

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

19 (NombrePaquete al que pertenece)
CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO TOO - Clases 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. EJEMPLOS NombreClase (NombrePaquete al que pertenece) Atributos Operaciones

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

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

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

23 Modelamiento - UML Diagrama de paquetes
CONCEPTOS BÁSICOS DE MODELAMIENTO Y TOO Modelamiento - UML Diagrama de paquetes 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). Dependencia

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

25 Algoritmo y Estructura de Datos I
Semana 01 – sesión 02 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.

26 Definición Diseño Desarrollo Depuración Document.
MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6’D Etapa 01 Descripción Problema Etapa 02 Definición Solución Etapa 03 n veces Diseño Solución Ingeniería reversa Etapa 04 Desarrollo Solución Etapa 05 Modelamiento Depuración Pruebas Etapa 06 Algoritmo Document. Codificación

27 Algoritmo Definición:
ALGORITMO - CONCEPTOS BÁSICOS Algoritmo 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.

28 Algoritmo PrgMensaje – main()
ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo Definición: 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

29 Algoritmo - Pseudocódigo
ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo Tipos de datos: 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.

30 Algoritmo - Pseudocódigo
ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo Pautas - Generales y de asignación: 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.

31 Algoritmo - Pseudocódigo
ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo Pautas - Generales y de asignación: 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

32 Algoritmo - Pseudocódigo
ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo Pautas - Operadores aritméticos: 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. RESTO Módulo o resto. RAIZ Raíz de un número. POTENCIA Potencia de número.

33 Algoritmo - Pseudocódigo
ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - Pseudocódigo Pautas - Operadores relacionales y lógicos: < Menor que. > 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.

34 Codificación - Java Definición:
CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Codificación - Java Definición: 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.

35 Codificación - Java Identificadores:
CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Codificación - Java Identificadores: 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.

36 Identificadores reservados:
CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Codificación - Java Identificadores reservados: 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. Identificadores reservados Existen 50 identificadores o palabras reservadas de JAVA. abstract, boolean, break, byte, byvalue, case, catch, char, class, const, continue, default, do, double, else, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, threadsafe, throw, transient, true, try, void, while.

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

38 (NombrePaquete al que pertenece)
CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Codificación - Java Definición de una clase: 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.

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

40 Estructura básica de una aplicación:
CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Codificación - Java Estructura básica de una aplicación: 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. package dominioDeLaAplicacion ; class PrgBienvenida { public static void main (String arg [ ] ) { System.out.println (“Bienvenidos a JAVA”) ; } class: Hace referencia a una clase. Primero: Nombre de la clase. public: Indica que el método podrá ser llamado desde cualquier lugar, dentro o fuera de la clase. static: Indica que el método no manipula instancias de objetos, por lo que podrá invocarse sin tener que referirse a una instancia en particular. void: Indica ningún tipo de dato. El método no retornará valor. main: Método o función miembro main es donde empieza la ejecución. Siempre debe ser parte de una clase. args []: Arreglo de objetos tipo cadena STRING pasados a la clase en tiempo de ejecución. System: Encapsula la funcionalidad del sistema. out: Variable estática miembro de la clase System. println: Método que permite enviar la cadena a la pantalla con salto de línea. Los programas en JAVA son implementados a través de clases debido a que se basan en el paradigma de objetos. public es un especificador de acceso. También existen otros como private (privado) y protected (protegido.). main siempre debe declarase como static pues cuando empieza un programa no existen objetos (instancias creadas). Los métodos estáticos solo pueden referirse a variables estáticas e invocar métodos a su vez estáticos. Las variables y métodos estáticos son mas conocidos como variables de clase y métodos de clase

41 Codificación - Java Tipos de datos:
CONCEPTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN Codificación - Java Tipos de datos: En Java se reconocen los siguiente tipos de datos : byte. short. int. long. float. double. boolean. char. 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.

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

43 Algoritmo y Estructura de Datos I
Semana 02 – sesión 01 Objetivos: Describir el Método de las 6’D 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 Algoritmo y Estructura de Datos I
Método de las 6’D – Soluciones con uno y dos paquetes (sin objeto) Estructuras de datos Diseño Solución Desarrollo Depuración Pruebas Ingeniería reversa n veces Codificación Modelamiento Algoritmo Variables y constantes. Estructuras lógicas de asignación Ingreso, proceso y visualización de datos.

45 Variables y constantes
ESTRUCTURAS DE DATOS Variables y constantes Definición: 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. Declaración En Pseudocódigo En Java tipoDato identificador final tipoDato identificador ; Almacenamiento de datos En Pseudocódigo En Java identificador = valor identificador = valor ;

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

47 Soluciones con un paquete (sin objeto)
MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6’D Soluciones con un paquete (sin objeto) ENUNCIADO Definición Solución Diseño Solución Desarrollo Solución Modelamiento Codificación 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. 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. Algoritmo

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

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

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

51 Soluciones con dos paquetes (sin objeto)
MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6’D Soluciones con dos paquetes (sin objeto) ENUNCIADO Definición Solución Diseño Solución Desarrollo Solución 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. Modelamiento Codificación 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. Algoritmo

52 Ingreso de datos Definición:
ESTRUCTURAS LÓGICAS Ingreso de datos Definición: El ingreso de datos nos permite ingresar datos desde un dispositivo de entrada y asignarlo a una variable para su posterior procesamiento. En Pseudocódigo En Java – Clase LE LEER nombreVariable nombreVariable = LE.leerInt(“Ingrese Edad:”) ; 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 Visualización de datos
ESTRUCTURAS LÓGICAS Visualización de datos Definición: La visualización de datos nos permite mostrar los datos a través de la pantalla de la computadora. En Pseudocódigo En Java – Clase LE ESCRIBIR nombreVariable ESCRIBIR x + 2 ESCRIBIR “Hola” LE.mostrarInformacion (nombreVariable) ; LE.mostrarInformacion (x + 2); LE.mostrarInformacion ( “Hola” ) ; Para el ingreso de datos también puede utilizar la clase System de Java. System.out.print ( “Hola” ) ; Analice los modificadores “\n” y “\t”.

54 PROBLEMA 02: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 02: ETAPA 1 ENUNCIADO CLARO Y PRECISO DEL 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

55 PROBLEMA 02: ETAPA 2 Resultado deseado. Datos necesarios.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 02: ETAPA 2 RESULTADO DESEADO: Mostrar el total de descuento y el sueldo a cobrar de un obrero de la empresa Definición Solución DATOS NECESARIOS: El sueldo total del obrero. PROCESAMIENTO: Resultado deseado. Datos necesarios. 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.

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

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

58 Algoritmo y Estructura de Datos I
Semana 02 – sesión 02 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.

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

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

61 PROBLEMA 03: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 03: ETAPA 1 ENUNCIADO CLARO Y PRECISO DEL 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

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

63 Funciones matemáticas
CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Funciones matemáticas Definición: 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. Métodos: abs( ). acos( ).   asin( ). cos( ). log( ). max( ). min( ). pow( ). random( ). round( ). sqrt( ). floor( ).

64 PROBLEMA 04: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 04: ETAPA 1 ENUNCIADO CLARO Y PRECISO DEL 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

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

66 Manejo de cadenas Definición: Métodos:
CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Manejo de cadenas Definición: 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. Métodos: charAt( ). compareTo( ). endsWith( ). equals( ). equalsIgnoreCase( ). indexOf( ). lastIndexOf( ). length( ). replace( ). startsWith( ). substring( ). toCharArray( ). toLowerCase( ). trim( ). toUpperCase( ). concat( ).

67 PROBLEMA 05: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 05: ETAPA 1 ENUNCIADO CLARO Y PRECISO DEL 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

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

69 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 06
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.). El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

70 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 07
INTÉNTALO!! SEMANA 02 – SESIÓN 02 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 07 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

71 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 08
INTÉNTALO!! SEMANA 02 – SESIÓN 02 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 08 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

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

73 Algoritmo y Estructura de Datos I
Semana 03 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.

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

75 Estructura Lógica de Decisión Simple (SI)
ESTRUCTURAS LÓGICAS Estructura Lógica de Decisión Simple (SI) Definición: 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: SI (condición) ENTONCES instrucciones... FINSI PSEUDOCODIGO if (condición) { sentencias... } JAVA

76 PROBLEMA 09: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 09: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

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

78 Estructura Lógica de Decisión Doble (SI/SINO)
ESTRUCTURAS LÓGICAS Estructura Lógica de Decisión Doble (SI/SINO) Definición: 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. FORMATOS: PSEUDOCODIGO if (condición) { sentencias... } else { JAVA SI (condición) ENTONCES instrucciones... SINO FINSI

79 PROBLEMA 10: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 10: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

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

81 Estructura Lógica de Decisión Múltiple (CUANDO)
ESTRUCTURAS LÓGICAS Estructura Lógica de Decisión Múltiple (CUANDO) Definición: 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. FORMATOS: CUANDO variable SEA CASO valor 1 : instrucciones... CASO valor 2 : CASO valor n : sentencias... OTROS : FINCUANDO PSEUDOCODIGO switch (variable) { case valor 1 : sentencias... case valor 2 : case valor n : default : } JAVA

82 PROBLEMA 11: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 11: ETAPA 1 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). Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Categoría Aumento 1 38 % 2 21 % 3 12 % 4 08 % Desarrollar el algoritmo y la codificación.

83 Estructura Lógica de Decisión Múltiple (SI Anidados)
ESTRUCTURAS LÓGICAS Estructura Lógica de Decisión Múltiple (SI Anidados) Definición: 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. SI (condición1) ENTONCES instrucciones1… SINO SI (condición2) ENTONCES instrucciones2… SI (condición3) ENTONCES instrucciones3… FINSI PSEUDOCODIGO JAVA FORMATOS: if (condición1) { sentencias1... } else { if (condición2) { sentencias2... if (condición3) { sentencias3… }

84 PROBLEMA 12: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 12: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Rango Categoria Desde 16 a 20 A Desde 11 a 15 B Desde 00 a 10 C Desarrollar el algoritmo y la codificación.

85 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 13
INTÉNTALO!! SEMANA 03 INTÉNTALO !! 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 %). El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

86 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 14
INTÉNTALO!! SEMANA 03 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

87 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 15
INTÉNTALO!! SEMANA 03 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 El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

88 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 16
INTÉNTALO!! SEMANA 03 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 16 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.

89 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 17
INTÉNTALO!! SEMANA 03 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 17 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. Categoría Aumento A 30% B 10% C 05% El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

90 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 18
INTÉNTALO!! SEMANA 03 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 18 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. Tipo Enfermedad Costo / Paciente / Dia A 30% B 10% C 05% El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

91 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 19
INTÉNTALO!! SEMANA 03 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 19 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.

92 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 20
INTÉNTALO!! SEMANA 03 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

93 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 21
INTÉNTALO!! SEMANA 03 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). El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

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

95 Algoritmo y Estructura de Datos I
Semana 04 Objetivos : 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.

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

97 Estructura Lógica de Repetición (HACER)
ESTRUCTURAS LÓGICAS Estructura Lógica de Repetición (HACER) 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. FORMATOS: PSEUDOCODIGO HACER instrucción 1 . instrucción n MIENTRAS (condición) JAVA do { sentencia 1 . sentencia n } while (condición) ;

98 PROBLEMA 22: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 22: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar el algoritmo y la codificación.

99 contador = contador + cantidadConstante
ESTRUCTURAS DE DATOS Variables Uso de contadores Definición: 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. contador = contador + cantidadConstante Ejemplos: En Pseudocódigo En Java - Incremento de 1 en  c = c C++ - Incremento de 2 en  contar = contar contar += 2 ;

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

101 Estructura Lógica de Repetición (MIENTRAS)
ESTRUCTURAS LÓGICAS Estructura Lógica de Repetición (MIENTRAS) Definición: 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: PSEUDOCODIGO MIENTRAS (condición) instrucción 1 . instrucción n FINMIENTRAS JAVA while (condición) { sentencia 1 . sentencia n }

102 PROBLEMA 24: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 24: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar el algoritmo y la codificación.

103 acumulador = acumulador + cantidadVariable
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. acumulador = acumulador + cantidadVariable Ejemplo: En Pseudocódigo En Java suma = suma + num suma += num ;

104 PROBLEMA 25: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 25: ETAPA 1 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 i = i + 1 FINMIENTRAS ESCRIBIR suma FIN Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Plantear el enunciado del problema y desarrollar la codificación.

105 Estructura Lógica de Repetición (DESDE)
ESTRUCTURAS LÓGICAS Estructura Lógica de Repetición (DESDE) 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. FORMATOS: PSEUDOCODIGO DESDE i = valorInicial HASTA valorFinal instrucción 1 . instrucción n FINDESDE JAVA for ( i = valorInicial ; i < valorFinal ; i++ ) { sentencia 1 . sentencia n }

106 PROBLEMA 26: ETAPA 1 serie: 1 – 4 + 9 – 16 + … ENUNCIADO
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 26: ETAPA 1 ENUNCIADO 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 Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

107 Variables Uso de interruptores Definición:
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ódigo En Java sw = FALSO sw = false ;

108 PROBLEMA 27: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 27: ETAPA 1 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” FIN Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Plantear el enunciado del problema y desarrollar la codificación.

109 Estructura Lógica para el manejo de errores (PROBAR)
ESTRUCTURAS LÓGICAS Estructura Lógica para el manejo de errores (PROBAR) 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. FORMATOS: PSEUDOCODIGO PROBAR instrucción 1 . instrucción n ERROR FINPROBAR JAVA try { sentencia 1 . sentencia n } catch (Excepción) { }

110 PROBLEMA 28: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 28: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

111 Instrucciones de bifurcación.
TIPOS En Java, la instrucción de bifurcación TERMINAR es conocida como la sentencia break y tiene tres usos: TERMINAR CONTINUAR Permite finalizar una secuencia de sentencias en un switch (específicamente en el case). Se utiliza para salir de un bucle, sin analizar la condición y sin ejecutar el resto de código del cuerpo del bucle. 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). RETORNAR

112 PROBLEMA 29: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) PROBLEMA 29: ETAPA 1 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” ESCRIBIR msg FIN Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Plantear el enunciado del problema y desarrollar la codificación.

113 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 30
INTÉNTALO!! SEMANA 04 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 30 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.

114 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 31
INTÉNTALO!! SEMANA 04 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

115 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 32
INTÉNTALO!! SEMANA 04 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

116 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 33
INTÉNTALO!! SEMANA 04 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

117 INTÉNTALO !! * ** *** **** ENUNCIADO DEL PROBLEMA 34
INTÉNTALO!! SEMANA 04 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

118 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 35
INTÉNTALO!! SEMANA 04 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

119 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 36
INTÉNTALO!! SEMANA 04 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

120 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 37
INTÉNTALO!! SEMANA 04 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

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

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

123 Algoritmo y Estructura de Datos I
Semana 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).

124 Definición Diseño Desarrollo Depuración Document.
MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6’D Etapa 01 Descripción Problema Etapa 02 Definición Solución Etapa 03 n veces Diseño Solución Ingeniería reversa Etapa 04 Desarrollo Solución Etapa 05 Modelamiento Depuración Pruebas Etapa 06 Algoritmo Document. Codificación

125 (NombrePaquete al que pertenece)
CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML CLASES – Atributos. ATRIBUTOS NombreClase (NombrePaquete al que pertenece) Atributos Métodos ¿Qué datos manejan los objetos? Expresado en: Estructuras de Datos. DEFINICIÓN: 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.

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

127 (NombrePaquete al que pertenece)
CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML CLASES – Métodos. METODOS NombreClase (NombrePaquete al que pertenece) Atributos Métodos ¿Qué pueden hacer los objetos?. Expresado en: Algoritmos. DEFINICIÓN: 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.

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

129 nombreObjeto : NombreClase
CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML OBJETOS / INSTANCIA. 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. EJEMPLOS UML La 1ra carpeta. El perro “Boby”. nombreObjeto : NombreClase

130 LENGUAJE UNIFICADO DE MODELADO UML.
CONCEPTOS ADICIONALES DE LA TEORÍA DE OBJETOS Y UML LENGUAJE UNIFICADO DE MODELADO UML. EJEMPLO ATRIBUTOS METODOS

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

132 LENGUAJE UNIFICADO DE MODELADO UML.
CONCEPTOS BÁSICOS DE MODELAMIENTO UTILIZANDO UML LENGUAJE UNIFICADO DE MODELADO UML. DIAGRAMA DE SECUENCIA 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 PAUTAS – ADICIONALES CREAR EJECUTAR PARAMETRO RETORNO CLASE
ALGORITMO – PAUTAS ADICIONALES EN PSEUDOCÓDIGO PAUTAS – ADICIONALES Permite crear un arreglo o un objeto de una clase. CREAR EJECUTAR PARAMETRO RETORNO CLASE Permite ejecutar un algoritmo desde otro algoritmo. Permite especificar los datos que recibe un algoritmo. Permite especificar si un algoritmo retorna un resultado. Permite referenciar a una clase determinada.

134 NombreClase nombreObjeto = new NombreMetodoConstructor() ;
CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA DEFINICION DE OBJETOS Declaración NombreClase nombreObjeto = new NombreMetodoConstructor() ; Creación 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 Los tipos de datos primitivos (simples o básicos) son:
CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA ATRIBUTOS DE CLASE 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 …. } Ejemplo: int var01, var02, var03 = 0; float promedio; Los tipos de datos primitivos (simples o básicos) son: Tipos de datos enteros: byte…….. 8 bits. Short…… 16 bits. Int………. 32 bits. Long……. 64 bits. Tipos de datos de punto flotante: float…….. 32 bits. bouble…. 64 bits. boolean Tipo de dato carácter char……… 16 bits (entero sin signo, que sirve de índice para tabla UNICODE). 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 ATRIBUTOS DE INSTANCIA
CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA ATRIBUTOS DE INSTANCIA 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; …. } Ejemplo: int var01, var02, var03 = 0; float promedio; Los tipos de datos primitivos (simples o básicos) son: Tipos de datos enteros: byte…….. 8 bits. Short…… 16 bits. Int………. 32 bits. Long……. 64 bits. Tipos de datos de punto flotante: float…….. 32 bits. bouble…. 64 bits. boolean Tipo de dato carácter char……… 16 bits (entero sin signo, que sirve de índice para tabla UNICODE). 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 METODOS DE CLASE package dominioDeLaAplicacion ; import biblioteca.* ;
CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA METODOS DE CLASE package dominioDeLaAplicacion ; import biblioteca.* ; class NombreClase { ... static tipoRetorno nombreMetodo (args) { } 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 METODOS DE INSTANCIA package dominioDeLaAplicacion ;
CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA METODOS DE INSTANCIA package dominioDeLaAplicacion ; import biblioteca.* ; class NombreClase { ... tipoRetorno nombreMetodo (args) { } 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 METODOS DE INSTANCIA void nombreMetodo ( ) { ... }
CODIFICACIÓN - LENGUAJE DE PROGRAMACIÓN JAVA METODOS DE INSTANCIA void nombreMetodo ( ) { ... } void nombreMetodo (parametros) { ... } tipoDato nombreMetodo ( ) { ... return valor ; } tipoDato nombreMetodo (parametros) { ... return valor ; } 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).

140 PROBLEMA 38: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 38: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar el modelamiento, algoritmo y la codificación.

141 PROBLEMA 39: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 39: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar el modelamiento, algoritmo y la codificación.

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

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

144 Desarrolle el algortimo
DESARROLLO DE SOLUCIONES OO PROBLEMA 38: ETAPA 3 DESARROLLO DE ALGORITMO EN PSEUDOCODIGO Diseño Solución Algoritmo Desarrolle el algortimo en clase Desarrollo de Algoritmos.

145 Desarrolle la codifcación
DESARROLLO DE SOLUCIONES OO PROBLEMA 38: ETAPA 4 CODIFICAR EL PROYECTO: Desarrollo Solución Codificación Desarrolle la codifcación en clase Codificar el proyecto. Comentarios internos. Copias de seguridad.

146 Algoritmo y Estructura de Datos I
Semana 6 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).

147 PROBLEMA 39: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 39: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar el modelamiento, algoritmo y la codificación.

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

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

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

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

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

153 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 Soluciones OO, usando una Clase
Algoritmo y Estructura de Datos I Soluciones OO, usando una Clase Estructuras de datos Arreglos: Unidimensional : Vectores. Bidimensional : Matrices. Uso de estructuras lógicas para el manejo de arreglos.

155 Unidimensionales : Vectores Bidimensionales : Matrices
ESTRUCTURAS DE DATOS Arreglos Definición: 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: Unidimensionales : Vectores Bidimensionales : Matrices En ambos casos se debe declarar, crear e inicializar el arreglo antes de usar el mismo.

156 Arreglo Unidimensional - Vector
ESTRUCTURAS DE DATOS Arreglo Unidimensional - Vector Arreglos unidimensionales o vectores simples Representación gráfica: numeros[ ] tamaño=4 2 1 3 32 -2 174 nombres[ ] tamaño=6 1 2 3 4 5 “Juan” “Jose” “Cindy” “Ivette” “Jessica” “Wilbe”

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

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

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

160 Arreglo Tipo Vector Simple Ingreso de datos: ESTRUCTURAS DE DATOS
En Pseudocódigo En Java nombre_del_vector[índice] = valor nombre_del_vector[índice] = valor ; Ejemplos; Ejemplos; nombres [0 ] = “Danae” sueldos [1] = 100.5 letras [x] = ‘J’ nombres [0 ] = “Danae” ; sueldos [1] = ; letras [x] = ‘J’ ; 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.

161 Arreglo Tipo Vector Simple Tamaño: ESTRUCTURAS DE DATOS
En Pseudocódigo En Java variable = LONGITUD nombre_del_vector [ ] variable = nombre_del_vector.length ; Ejemplos: 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 ;

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

163 Ingreso de datos - Usando estructura de repetición for
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<nombre.length;i++){ nombre[i]=LE.leerString("Ingrese nombre"); }

164 Mostrar datos - Usando estructura de repetición for
ESTRUCTURAS DE DATOS Arreglo Tipo Vector Simple Mostrar datos - Usando estructura de repetición for String listado=""; for(int i=0;i<nombre.length;i++){ listado+=nombre[i]+"\n"; } LE.mostrarInformacion(listado); Mostrar que sucede si no se usa el acumulador listado.

165 PROBLEMA 43: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 43: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar el modelamiento, el algoritmo y la codificación.

166 PROBLEMA 44: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 44: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

167 PROBLEMA 45: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 45: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

168 PROBLEMA 46: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 46: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

169 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 Soluciones OO, usando una Clase
Algoritmo y Estructura de Datos I Soluciones OO, usando una Clase Estructuras de datos Arreglos: Vectores. Matrices. Uso de estructuras lógicas para el manejo de arreglos.

171 Preguntar por tamaño y orden
ESTRUCTURAS DE DATOS Arreglos - Matrices Arreglos bidimensionales o matrices Representación: 32 -2 174 1 2 3 numeros[][] 14 12 -5 129 filas = 2 columnas = 4 Orden = 2 x 4 Preguntar por tamaño y orden

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

173 Arreglos tipo matriz Creación: ESTRUCTURAS DE DATOS En Pseudocódigo
En Java CREAR identificador [filas][columnas] identificador = new tipoDato [filas][columnas] ; Ejemplos; 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] ;

174 Arreglos tipo matriz Ingreso de datos: ESTRUCTURAS DE DATOS
En Pseudocódigo En Java identificador [índice] = valor identificador [índice] = valor ; Ejemplos; Ejemplos; nombres [0 ][0] = “Danae” sueldos [1][x] = 100.5 - letras [y][x] = ‘J’ nombres [0 ][0] = “Danae” ; sueldos [1][x] = ; - letras [y][x] = ‘J’ ; 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.

175 PROBLEMA 47: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 47: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar el modelamiento, el algoritmo y la codificación.

176 PROBLEMA 48: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 48: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

177 PROBLEMA 49: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 49: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

178 PROBLEMA 50: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 50: ETAPA 1 ENUNCIADO 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

179 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 51
INTÉNTALO!! SEMANA 06 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

180 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 52
INTÉNTALO!! SEMANA 06 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

181 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 53
INTÉNTALO!! SEMANA 06 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 53 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.

182 INTÉNTALO !! ENUNCIADO DEL PROBLEMA 54
INTÉNTALO!! SEMANA 06 INTÉNTALO !! 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

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

184

185 Algoritmo y Estructura de Datos I
Semana 07 Objetivos: 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 Algoritmo y Estructura de Datos I
Método de las 6’D – Soluciones OO en una clase Algoritmos para el manejo de datos en arreglos Diseño Solución Desarrollo Depuración Pruebas Ingeniería reversa n veces Codificación Modelamiento Algoritmo Búsqueda de datos. Ordenamiento de datos. Uso de estructuras lógicas para el manejo de datos en arreglos de gran tamaño.

187 Arreglos de gran tamaño
ARREGLOS – MANEJO DE DATOS Arreglos de gran tamaño 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. . codigos (long) 1 2 3 9999 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 Búsqueda de Datos Introducción: Tipos:
ARREGLOS – MANEJO DE DATOS Búsqueda de Datos Introducción: 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. Tipos: Búsqueda secuencial. Búsqueda binaria.   Búsqueda de hashing.

189 Método de Búsqueda Secuencial
ARREGLOS – MANEJO DE DATOS Método de Búsqueda Secuencial Definición: 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. codigos INICIO 1 2 3 . . . FIN numAlu = X 9999 ¿Cuándo se finaliza la búsqueda? (int) (long)

190 Búsqueda Secuencial de Datos
ARREGLOS – MANEJO DE DATOS Búsqueda Secuencial de Datos Dado los datos siguientes: codigos 10 1 20 2 30 3 . . numAlu = 3 9999 (int) (long) 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?

191 PROBLEMA 55: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 55: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

192 Ordenamiento de Datos Introducción: Tipos:
ARREGLOS – MANEJO DE DATOS Ordenamiento de Datos Introducción: 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. Tipos: Método de la Burbuja (intercambio). Método de Inserción.   Método de Selección Método QuickSort.

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

194 Ordenamiento de Datos por Burbuja
ARREGLOS – MANEJO DE DATOS Ordenamiento de Datos por Burbuja Dado los datos siguientes: nombres Danae 1 Angella 2 Camilla 3 . . numAlu = 3 9999 (int) (String) 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?

195 PROBLEMA 56: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 56: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

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

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

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

199 Algoritmo y Estructura de Datos I
Semana 08 Objetivos: 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 Algoritmo y Estructura de Datos I
Método de las 6’D – Soluciones OO en una clase Algoritmos para el manejo de datos en arreglos Diseño Solución Desarrollo Depuración Pruebas Ingeniería reversa n veces Codificación Modelamiento Algoritmo Modificación de datos. Eliminación de datos. Uso de estructuras lógicas para el manejo de datos en arreglos en paralelo de gran tamaño.

201 Arreglos en Paralelo Definición:
ARREGLOS – MANEJO DE DATOS Arreglos en Paralelo 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.

202 Arreglos en Paralelo Ejemplo:
ARREGLOS – MANEJO DE DATOS Arreglos en Paralelo Ejemplo: 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 Modificación de Datos Definición: Gráfica de
ARREGLOS – MANEJO DE DATOS Modificación de Datos Definición: 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. Gráfica de Estructuras (del ejemplo anterior) codigos nombres promedios 1 2 3 . . . . numAlu = 0 9999 (int) (long) (String) (double)

204 Modificación de Datos Dado los datos siguientes:
ARREGLOS – MANEJO DE DATOS Modificación de Datos Dado los datos siguientes: codigos nombres promedios 10 Danae 18 1 20 Angella 12 2 30 Camilla 15 3 . . . . numAlu = 3 9999 (int) (long) (String) (double) 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 PROBLEMA 59: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 59: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

206 Eliminación de Datos Definición: Gráfica de
ARREGLOS – MANEJO DE DATOS Eliminación de Datos Definición: 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 . Gráfica de Estructuras (del ejemplo anterior) codigos nombres promedios 1 2 3 . . . . numAlu = 0 9999 (int) (long) (String) (double)

207 Eliminación de Datos Dado los datos siguientes:
ARREGLOS – MANEJO DE DATOS Eliminación de Datos Dado los datos siguientes: codigos nombres promedios 10 Danae 18 1 20 Angella 12 2 30 Camilla 15 3 . . . . numAlu = 3 9999 (int) (long) (String) (double) 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 PROBLEMA 60: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES OO EN UNA CLASE PROBLEMA 60: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema. Desarrollar la codificación.

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

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

211 Método de las 6’D – Soluciones OO en una clase
TEMAS TRATADOS SEMANA 08 Método de las 6’D – Soluciones OO en una clase Algoritmos para el manejo de datos en arreglos Diseño Solución Desarrollo Depuración Pruebas Ingeniería reversa n veces Codificación Modelamiento Algoritmo 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 Desarrollo de soluciones básicas Usando Interfaz Grafica de Usuario
Algoritmo y Estructura de Datos I Unidad IV: Desarrollo de soluciones básicas Usando Interfaz Grafica de Usuario Semana 10

213 Algoritmo y Estructura de Datos I
Semana 10 – sesión 01 Objetivos: 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 PROGRAMACION EN ENTORNO VISUAL
INTERFAZ GRÁFICA DE USUARIO PROGRAMACION EN ENTORNO VISUAL INTERFAZ DE USUARIO 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

215 PROGRAMACION EN ENTORNO VISUAL DESARROLLO DEL DIAGRAMA DE CLASE
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. Contenedor Label TextField Button DESARROLLO DEL DIAGRAMA DE CLASE

216 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).

217 PAQUETE AWT. Componentes (Component) AWT Contenedor(Conteiner)
INTERFAZ GRÁFICA DE USUARIO PAQUETE AWT. 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. Componentes (Component) AWT Contenedor(Conteiner)

218 COMPONENTES El AWT proporciona varias clases de Componentes:
INTERFAZ GRÁFICA DE USUARIO COMPONENTES El AWT proporciona varias clases de Componentes: Button Canvas Checkbox Choice Container Label List Scrollbar TextComponent TextArea TextField Componentes 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.

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

220 CARACTERÍSTICAS DE LA TOO Y UML – Herencia
DEFINICIÓN 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. Rectangulo CLASE BASE, PADRE, SUPERCLASE O GENERAL. Cuadrado 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).

221 HERENCIA EJEMPLOS CARACTERÍSTICAS DE LA TOO Y UML – Herencia Persona
Factura Vendedor Cliente FacturaContado FacturaCredito EN CLASE: Proponga otros ejemplos donde se puede apreciar el concepto de herencia.

222 INTERFACES INTRODUCCIÓN Interfaz: Clase abstracta a nivel superior.
CARACTERÍSTICAS DE LA TOO Y UML – Interfaces INTERFACES INTRODUCCIÓN 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. 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 CARACTERÍSTICAS DE LA TOO Y UML – 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. INTERFAZ COMÚN Animal Persona Pajaro Hombre

224 CONCLUSIONES Las interfaces son utilices para:
CARACTERÍSTICAS DE LA TOO Y UML – Interfaces CONCLUSIONES Las interfaces son utilices para: 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).

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

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

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

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

229 Algoritmo y Estructura de Datos II
Semana 11 – sesión 01 Objetivos : 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.

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

231 (en memoria principal)
Algoritmo y Estructura de Datos II Estructuras de Datos (en memoria principal) LINEALES NO LINEALES Estáticas Dinámicas Jerárquicas No jerárquicas Variables Arreglos Listas Pilas Colas Árboles Grafos Forma de organización de los datos en la memoria principal del computador

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

233 (en memoria principal)
Algoritmo y Estructura de Datos II Estructuras de Datos (en memoria principal) LINEALES CLASE: Vector INTERFAZ: Estáticas Dinámicas Enumeration Variables Arreglos Listas Pilas Colas

234 VECTORES DEFINICIÓN Representación índices
ESTRUCTURA DE DATOS ARREGLO - Arreglos VECTORES DEFINICIÓN 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. Representación índices 1 2 3 vector vector[0] vector[1] vector[2] vector[3]

235 ARREGLO DE OBJETOS DEFINICIÓN Arreglos simples Arreglos de objetos
ESTRUCTURA DE DATOS ARREGLO – Arreglo de objetos ARREGLO DE OBJETOS DEFINICIÓN Arreglo de objetos: Almacenamiento de datos compuestos del mismo tipo. Estos permiten almacenar objetos en lugar de datos simples. Arreglos simples Arreglos de objetos codigo 10 ( int ) datos 10 “Danae” 1000.0 nombre “Danae” ( String ) sueldo 1 2 ( double ) ( Empleado ) 1 2

236 ARREGLO DE OBJETOS ESTRUCTURA DE DATOS ARREGLO – Arreglo de objetos
“Danae” 1000.0 10 - setNombre() - getNombre() - setSueldo() - getSueldo() - setCodigo() - getCodigo() datos 10 “Danae” 1000.0 1 2 ( Empleado )

237 Uso de la clase Vector Definición:
CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Vector Definición: 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.

238 Uso de la clase Vector Métodos:
CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Vector 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. Métodos: Crear objetos Vector: Vector () Vector (Collection c).   Vector (int initialCapacity). Vector (int initialCapacity, int capacityIncrement )

239 Uso de la clase Vector Métodos: Agregar elementos: Eliminar elementos:
CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Vector Métodos: Agregar elementos: Eliminar elementos: add (int index, Object element) : void add (Object o) : boolean   addAll (Collection c) : boolean addAll (int index, Collection c) : boolean addElement (Object o) : void clear () : void remove (int index) : Object   remove (Object o) : boolean removeAll (Collection c) : boolean removeAllElement () : void removeElement (Object obj) : boolean removeElementAt(int index) : void retainAll (Collection c) : bolean Insertar elementos: insertElementAt (Object o, int index) : void

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

241 Uso de la clase Vector Métodos: Copiar elementos:
CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Vector Métodos: Copiar elementos: clone () : Object copyInto (Object [ ] array) : boolean   elements () : Enumeration toArray () : Object [ ] toString () : String subList (int fromIndex, toIndex) : List

242 PROBLEMA 63: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES ORIENTADAS A OBJETOS PROBLEMA 63: ETAPA 1 ENUNCIADO CLARO Y PRECISO DEL 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

243 Uso de la interfaz Enumeration
INTERFASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la interfaz Enumeration Definición: 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 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 PROBLEMA 64: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES ORIENTADAS A OBJETOS PROBLEMA 64: ETAPA 1 ENUNCIADO CLARO Y PRECISO DEL 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

245 PROBLEMA 65: ETAPA 1 Identificación del problema.
MÉTODO 6’D – SOLUCIONES ORIENTADAS A OBJETOS PROBLEMA 65: ETAPA 1 ENUNCIADO CLARO Y PRECISO DEL 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

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

247 Algoritmo y Estructura de Datos I
Semana 11 – sesión 02 Objetivos: 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 INTÉNTALO !! INTÉNTALO!! SEMANA 11
El profesor del curso explicará los problemas que se han incluido en el PLACE sobre el tema tratado.

249 PROBLEMA : 66 ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES DE PROBLEMAS PROBLEMA : 66 ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Enunciado claro y preciso del problema.

250 Uso de la clase Arrays Definición: Métodos: sort( ) binarySearch ( )
CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase Arrays Definición: 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. Métodos: sort( ) binarySearch ( ) equals ( ) fill ( )

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

252 Algoritmo y Estructura de Datos I
Semana 12 – sesión 01 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

253 LISTAS DEFINICIÓN Lista: Colección de datos.
ESTRUCTURA DE DATOS – Listas LISTAS DEFINICIÓN 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. Relación de alumnos 17C 2005-I Alvarez Valderrama, Maritza Margot. Anicama Canales, Pedro David. Aranibar Dìaz, Aldo Arnaldo.

254 LISTAS VENTAJAS Lista: Colección de datos.
ESTRUCTURA DE DATOS – Listas LISTAS VENTAJAS Lista: Colección de datos. 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 LISTAS CLASIFICACIÓN LINEALES Estáticas Dinámicas Listas Pilas Colas
ESTRUCTURA DE DATOS – Listas LISTAS CLASIFICACIÓN LINEALES Estáticas Dinámicas Listas Pilas Colas Variables Arreglos LISTAS SIMPLES Nodos que contienen objetos y un enlace al siguiente nodo. LISTAS DOBLES Nodos que contienen objetos y dos enlaces, uno al siguiente nodo y otro al anterior. LISTAS CIRCULARES Nodos que contienen objetos y el último elemento contiene una referencia al primer nodo.

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

257 LISTAS SIMPLES sig info DEFINICIÓN ESTRUCTURA DE UN NODO
ESTRUCTURA DE DATOS – Listas simples LISTAS SIMPLES DEFINICIÓN ESTRUCTURA DE UN NODO 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. sig info

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

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

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

262 Uso de la clase LinkedList
CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIÓN Uso de la clase LinkedList Definición: 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.

263 PROBLEMA 67: ETAPA 1 ENUNCIADO Identificación del problema.
MÉTODO 6’D – SOLUCIONES DE PROBLEMAS PROBLEMA 67: ETAPA 1 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. Descripción Problema Identificación del problema. Descripción general del problema. Descripción de la estructura de datos a utilizar

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

265 Algoritmo y Estructura de Datos I
Semana 12 – sesión 02 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

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

267 PILAS DEFINICIÓN Pila: Colección de datos.
ESTRUCTURA DE DATOS – Pilas PILAS DEFINICIÓN 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).

268 PILAS CARACTERISTICAS
ESTRUCTURA DE DATOS – Pilas PILAS CARACTERISTICAS 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

269 PILAS OPERACIONES Agregar (apilar) Empujar (push).
ESTRUCTURA DE DATOS – Pilas PILAS OPERACIONES 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 LIFO (primero en entrar, último en salir).
ESTRUCTURA DE DATOS – Pilas PILAS REPRESENTACIÓN D D Apilar Desapilar A B C Cima Elemento LIFO (primero en entrar, último en salir).

271 REPRESENTACIÓN DE UNA PILA
ESTRUCTURA DE DATOS – Pilas REPRESENTACIÓN DE UNA PILA

272 EJEMPLOS DEL USO DE UNA PILA
ESTRUCTURA DE DATOS – Pilas EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

273 EJEMPLOS DEL USO DE UNA PILA
ESTRUCTURA DE DATOS – Pilas EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

274 EJEMPLOS DEL USO DE UNA PILA
ESTRUCTURA DE DATOS – Pilas EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

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

276 Índice último elemento ingresado
ESTRUCTURA DE DATOS – Pilas PILAS IMPLEMENTACIÓN UTILIZANDO LISTAS A B C CIMA PILA Índice último elemento ingresado x [-1] PILA VACÍA índice -1 C B A 1 2 3 fin

277 COLAS DEFINICIÓN Cola: Colección de datos.
ESTRUCTURA DE DATOS – Colas COLAS DEFINICIÓN 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

278 COLAS CARACTERISTICAS
ESTRUCTURA DE DATOS – Colas COLAS CARACTERISTICAS 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

279 ESTRUCTURA DE DATOS – 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) primero último

280 FIFO (primero en entrar, primero en salir).
ESTRUCTURA DE DATOS – Colas COLAS REPRESENTACIÓN Acolar Decolar D A A B C primero ultimo FIFO (primero en entrar, primero en salir).

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

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

283 Algoritmo y Estructura de Datos I
Semana 13 – sesión 01 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

284 Se define un método recursivo cuando puede llamarse a si mismos
ESTRUCTURA DE DATOS – Recursividad METODOS RECURSIVOS 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

285 RECURSIVIDAD EN LA PROGRAMACION
ESTRUCTURA DE DATOS – Recursividad RECURSIVIDAD EN LA PROGRAMACION 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.

286 EJEMPLOS DE RECURSIVIDAD
ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE RECURSIVIDAD 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

287 EJEMPLOS DE METODOS RECURSIVOS
ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE METODOS RECURSIVOS 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:

288 EJEMPLOS DE RECURSIVIDAD
ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE RECURSIVIDAD 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 */ }

289 EJEMPLOS DE METODOS RECURSIVOS
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 32=3*3 32=3*31=3*3*30 =3*3*1

290 EJEMPLOS DE RECURSIVIDAD
ESTRUCTURA DE DATOS – Recursividad EJEMPLOS DE RECURSIVIDAD 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 */ }

291 Jerárquica porque los componentes estan a distinto nivel.
ESTRUCTURA DE DATOS – Árboles DEFINICION DE ARBOL 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

292 REPRESENTACION DE UN ARBOL
ESTRUCTURA DE DATOS – Árboles REPRESENTACION DE UN ARBOL a b e f c d RAIZ A C D B E F Representation Textual Representación Nodal

293 Todo árbol tiene un único nodo raíz.
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 Padre es el antecesor inmediato de un nodo
ESTRUCTURA DE DATOS – Árboles CARACTERISTICAS 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.

295 CARACTERISTICAS DE LOS ÁRBOLES
ESTRUCTURA DE DATOS – Árboles CARACTERISTICAS DE LOS ÁRBOLES A raiz Grado 2 B C D hijos E F G H I hojas Grado del Arbol 3 Nivel 3

296 APLICACIONES DE ÁRBOLES
ESTRUCTURA DE DATOS – Árboles APLICACIONES DE ÁRBOLES 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.

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

298 RECORRIDO DE UN ARBOL BINARIO
ESTRUCTURA DE DATOS – Árboles RECORRIDO DE UN ARBOL BINARIO 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 - Visitar la raiz. Post-Orden (Postfijo)  IDR

299 PreOrden (RID): _____________ InOrden (IRD): PostOrden (IDR): A C B D
ESTRUCTURA DE DATOS – Árboles PreOrden (RID): _____________ InOrden (IRD): PostOrden (IDR): A C B D E F PreOrden (RID): ABDGCEHIF InOrden (IRD): DGBAHEICF PostOrden (IDR): GDBHIEFCA H I G

300 PreOrden (RID): _____________ InOrden (IRD): PostOrden (IDR): A B C D
ESTRUCTURA DE DATOS – Árboles PreOrden (RID): _____________ InOrden (IRD): PostOrden (IDR): A B C D E F G H J K L M I

301 ÁRBOLES BINARIOS DE BÚSQUEDA
ESTRUCTURA DE DATOS – Árboles ÁRBOLES BINARIOS DE BÚSQUEDA Definición: 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.

302 REPRESENTACIÓN DE UN ARBOL ORDENADO
ESTRUCTURA DE DATOS – Árboles REPRESENTACIÓN DE UN ARBOL ORDENADO 6 6 4 4 9 9 1 5 1 5 3 3 8

303 INSERCION DE UN ELEMENTO A UN ARBOL (AGREGAR)
ESTRUCTURA DE DATOS – Árboles INSERCION DE UN ELEMENTO A UN ARBOL (AGREGAR) 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 (d) 6 raiz 4 nuevo nuevo null raiz (b) raiz 9 raiz 6 nuevo (a) 6 6 raiz 4 9 (c) 4 (e)

304 IMPLEMENTACION DE LA CLASE ARBOL: RECORRER (PROFUNDIDAD)
ESTRUCTURA DE DATOS – Árboles IMPLEMENTACION DE LA CLASE ARBOL: RECORRER (PROFUNDIDAD) EJEMPLO: 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){ return p.info + "\n"+preOrden(p.izq) + " " + preOrden(p.der); public String postOrden( Elemento p){ return postOrden(p.izq) + postOrden(p.der)+ p.info + “\n " +;

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

306 (en memoria principal)
Algoritmo y Estructura de Datos I Estructuras de Datos (en memoria principal) LINEALES NO LINEALES Estáticas Dinámicas Jerárquicas No jerárquicas Variables Arreglos Listas Pilas Colas Arboles Grafos Forma de organización de los datos en la memoria principal del computador

307 Lima La Libertad Tacna Arequipa Ica GRAFOS DEFINICIÓN
ESTRUCTURA DE DATOS – Gráfos 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 Lima Ica Tacna Arequipa La Libertad

308 G A B C D E F J I H K L GRAFOS DEFINICIÓN
ESTRUCTURA DE DATOS – Gráfos 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 G A B C D E F J I H K L V= A,B,C,D,E,F,G,H,I,J,K,L ARCOS : JK,EG,GE,etc NO ARCOS : AC, BG, BF, etc

309 ESTRUCTURA DE DATOS – Gráfos
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

310 ESTRUCTURA DE DATOS – Gráfos
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.

311 GRAFOS Conceptos: Aristas:
ESTRUCTURA DE DATOS – Gráfos 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

312 GRAFOS Conceptos: Vértices:
ESTRUCTURA DE DATOS – Gráfos 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.

313 GRAFOS Conceptos: Caminos:
ESTRUCTURA DE DATOS – Gráfos 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.

314 GRAFOS Clasificación:
ESTRUCTURA DE DATOS – Gráfos 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.

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

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

317 GRAFOS Ejemplo 3: 1 2 3 G3 = ( V3 , A3 )
ESTRUCTURA DE DATOS – Gráfos GRAFOS Ejemplo 3: G3 = ( V3 , A3 ) V3 = { 1, 2 , 3 } A2 = { < 1, 2 >, < 2 , 1 >, < 2, 3 > } 1 2 3

318 GRAFOS Algoritmo de PRIM: Ejemplo:
ESTRUCTURA DE DATOS – Gráfos 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:

319 GRAFOS Pseudocódigo del algoritmo PRIM: ESTRUCTURA DE DATOS – Gráfos
   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

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

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

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

323 Estructura de Datos Archivo
ESTRUCTURA DE DATOS – Archivos Semana 14 Sesión 01 Estructura de Datos Archivo Definición: 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: - Apertura del archivo. - Escritura de datos en el archivo. - Lectura de datos del archivo. - Cierre del archivo. 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.

324 Estructura de Datos Archivo
ESTRUCTURA DE DATOS – Archivos Semana 14 Sesión 01 Estructura de Datos Archivo Tipos: Archivos de TEXTO: Archivos BINARIOS: 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. 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.

325 ARCHIVOS TEXTOS O PLANOS
ESTRUCTURA DE DATOS – Archivos Semana 14 Sesión 01 ARCHIVOS TEXTOS O PLANOS Estructura: Archivo: Esta conformado por un conjunto de registros. Registro: Esta conformado por un conjunto de campos. Campo: Esta conformado por un conjunto de datos todos del mismo tipo. Archivo: Empleado.dat Nombre del Campo Tipo de Dato Longitud codigo TEXTO 10 nombre 40 sueldo NUMERO 12 2

326 ARCHIVOS TEXTOS O PLANOS
ESTRUCTURA DE DATOS – Archivos Semana 14 Sesión 01 ARCHIVOS TEXTOS O PLANOS Clase 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. 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. 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.

327 PROBLEMA : ETAPA 1 ENUNCIADO Enunciado
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) Semana 14 Sesión 01 PROBLEMA : ETAPA 1 ENUNCIADO 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. Descripción Problema Enunciado

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

329 PROBLEMA : ETAPA 4 Codificación
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) Semana 14 Sesión 01 PROBLEMA : ETAPA 4 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<usuarios.totalRegistros(); i++) { datos = usuarios.leerDatos(i); System.out.println ("Usuario: " + datos[0] + ", Clave: " + datos[1]); } usuarios.cerrarArchivo(); System.exit(0); Desarrollo Solución Codificación Explique detalladamente

330 ARCHIVOS TEXTOS O PLANOS
ESTRUCTURA DE DATOS – Archivos Semana 14 Sesión 02 ARCHIVOS TEXTOS O PLANOS Clasificación por función: 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.

331 ARCHIVOS TEXTOS O PLANOS
ESTRUCTURA DE DATOS – Archivos Semana 14 Sesión 02 ARCHIVOS TEXTOS O PLANOS Clasificación por acceso: 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. a b c a b c a = codigo b = nombre c = sexo ordenado por el campo a

332 ARCHIVOS TEXTOS O PLANOS
ESTRUCTURA DE DATOS – Archivos Semana 14 Sesión 02 ARCHIVOS TEXTOS O PLANOS Diagrama de bloque: 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. Alumno.dat PrgCalculo Proceso de Calculo becas.dat reporte

333 PROBLEMA : ETAPA 1 ENUNCIADO Enunciado
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) Semana 14 Sesión 02 PROBLEMA : ETAPA 1 ENUNCIADO 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. Descripción Problema Enunciado

334 PROPUESTO 14-01 ENUNCIADO DEL PROBLEMA
PROPUESTOS!! SEMANA 14 Semana 14 Laboratorio PROPUESTO 14-01 ENUNCIADO DEL 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. 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 PROPUESTO 14-02 ENUNCIADO DEL PROBLEMA
PROPUESTOS!! SEMANA 14 Semana 14 Laboratorio PROPUESTO 14-02 ENUNCIADO DEL PROBLEMA 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 PROPUESTO 14-03 ENUNCIADO DEL PROBLEMA
PROPUESTOS!! SEMANA 14 Semana 14 Laboratorio PROPUESTO 14-03 ENUNCIADO DEL PROBLEMA 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.

337 PROPUESTO 14-04 ENUNCIADO DEL PROBLEMA
PROPUESTOS!! SEMANA 14 Semana 14 Laboratorio PROPUESTO 14-04 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. ADICIONAR MOSTRAR El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

338 INTENTALO 14-01 !! ENUNCIADO DEL PROBLEMA
INTENTALO!! SEMANA 14 INTENTALO !! ENUNCIADO DEL PROBLEMA 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. El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesión de clase.

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

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

341 Algoritmo y Estructura de Datos I
PROGRAMACION GRAFICA 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.

342 ESTRUCTURA DE DATOS – Programación Gráfica
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:

343 ESTRUCTURA DE DATOS – Programación Gráfica
PROGRAMACION GRAFICA 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++.

344 import java.awt.Graphics;
ESTRUCTURA DE DATOS – Programación Gráfica PROGRAMACION GRAFICA 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;

345 Métodos para hacer gráficos:
ESTRUCTURA DE DATOS – Programación Gráfica 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 )

346 Métodos para hacer gráficos:
ESTRUCTURA DE DATOS – Programación Gráfica 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 )

347 EJEMPLOS ESTRUCTURA DE DATOS – Programación Gráfica
// 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));

348 Dibujar lo siguiente: EJEMPLO 1: import java.awt.Graphics;
ESTRUCTURA DE DATOS – Programación Gráfica 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

349 Dibujar lo siguiente: EJEMPLO 2: import java.awt.Graphics;
ESTRUCTURA DE DATOS – Programación Gráfica 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); }

350 Dibujar lo siguiente: EJEMPLO 3: import java.awt.Graphics;
ESTRUCTURA DE DATOS – Programación Gráfica 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); }

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


Descargar ppt "Algoritmo y Estructura de Datos I (AEDI)"

Presentaciones similares


Anuncios Google