Anda di halaman 1dari 351

Versin 6.

Facultad de Ingeniera y Arquitectura

Algoritmo y Estructura de Datos I (AEDI) 2006 - II


Gua Terica desarrollada por los profesores del curso:
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 Zuiga. Ing. Pablo Ivn Casma Angulo. Bach. Jessica Paulino Torre.

Algoritmo y Estructura de Datos I

Versin 6.5

INTRODUCCIN

Algoritmo y Estructura de Datos I

Versin 6.5

Plan de Estudios

IC

AEDI
FDWeb

AEDII

BD

SWI
Prog I

SWII
Prog II

DI

II

Electivos

Prcticas en FIA-DATA

Prcticas en EMPRESA I II III IV V VI VII VIII 4 Aos

Algoritmo y Estructura de Datos I Slabo Objetivos generales:


HOY

Versin 6.5

Comprender la importancia de utilizar un mtodo para el desarrollo de soluciones bsicas.


AEDI
III

Entender los diagramas bsicos utilizados para el modelamiento de problemas del mundo real. Destacar el uso de los algoritmos para el manejo de datos y objetos.

Durante el desarrollo del curso, el estudiante desarrollar un programa de laboratorio, sustentado en los aspectos tericos impartidos en el saln de clase.

Algoritmo y Estructura de Datos I Slabo Unidades:


HOY

Versin 6.5

Unidad I: Desarrollo de soluciones bsicas. Uso de estructuras lgicas y variables. (semana 01 a semana 04). Unidad II: Introduccin al desarrollo de soluciones OO. Uso de objetos, mtodos y atributos (semana 05). Unidad III: Desarrollo de soluciones OO. Uso de estructuras lgicas y arreglos. (semana 06 a semana 08). AEDI
III

Unidad IV: Desarrollo de soluciones bsicas usando interfaz grfica de usuario. (semana 10). Unidad V: Estructuras dinmicas lineales de datos. (semana 11 a semana 12). Unidad VI: Estructuras dinmicas no lineales de datos. (semana 13 a semana 14). Unidad VII: Programacin grfica. (semana 15)

Durante el desarrollo del curso, el estudiante desarrollar un programa de laboratorio, sustentado en los aspectos tericos impartidos en el saln de clase.

Algoritmo y Estructura de Datos I Slabo Evaluacin:

Versin 6.5

El curso es de evaluacin permanente. El sistema de evaluacin del presente curso consta de promedio de prcticas calificadas (PP), promedio de proyectos (PT), un examen final de laboratorio (E1) y un examen final de teora (E2). El promedio final se obtiene de la siguiente manera:

P F = PP + PT + E1*2 + E2*2 6

Algoritmo y Estructura de Datos I Slabo Bibliografa:

Versin 6.5

Mtodo de las 6D. UML Pseudocdigo Java (Enfoque algortmico) 2005. Juan Jos Flores Cueto. Mtodo para la Solucin de Problemas utilizando la programacin Orientada a Objetos. Aspectos Bsicos. 2003. Juan Jos Flores Cueto. Como programar en Java. Quinta Edicin. Prentice Hall, 2004. Deitel & Deitel.

Algoritmo y Estructura de Datos I Proyecto Parcial y Final Indicaciones:


Versin 6.5

Formar equipos de trabajo de 5 alumnos. Seleccionar una empresa o un negocio en el cual pueda desarrollar una solucin. Inscriba su tema con el profesor de teora. Tiene como plazo mximo dos semanas. Solicite el formato para la elaboracin de su proyecto final al profesor.

El proyecto de mitad de curso (parcial) se entregar en la semana 10 sesin 01(en el saln de clase). El proyecto final se entregar en la semana 16 sesin 01 (en el saln de clase), fecha en la cual se iniciarn las sustentaciones de los mismos.

Algoritmo y Estructura de Datos I Proyecto Parcial y Final Monografa:


Presentacin en disquete (2 ptos).
Calidad, limpieza y orden (1.5 ptos). Copia de seguridad (0.5 ptos).

Versin 6.5

Estructura (4 ptos).
Cartula (0.5 ptos). ndice (0.5 ptos). Contenido. Conclusiones (2.0 ptos). Bibliografa (1.0 ptos).
Enunciado del problema. Definicin de la solucin. Diseo de la solucin. Modelamiento. Algoritmo. Desarrollo de la solucin Codificacin. Depuracin y pruebas.

Contenido (14 ptos).

La monografa deber ser presentada en base al modelo utilizado en la FIA. Recuerde agregar en contenido los puntos aqu establecidos.

Algoritmo y Estructura de Datos I Proyecto Final Sustentacin:

Versin 6.5

Aspectos
Presentacin. Organizacin. Exposicin. Contenido. Material adicional.

Ponderacin
1. 1. 4. 4. 1.

Escala: 1 a 5 (1 muy malo y 5 excelente).

La asistencia a las sustentaciones es obligatoria. En la primera sesin de la semana 16 sustentarn equipos en forma voluntaria y en la segunda sesin sern seleccionados por el profesor. En caso de no haber equipos voluntarios el profesor proceder a seleccionarlos.

Algoritmo y Estructura de Datos I

Versin 6.5

Anotaciones:

Algoritmo y Estructura de Datos I

Versin 6.5

Unidad I:

Desarrollo de soluciones bsicas Uso de estructuras lgicas y variables

Semana 01 a semana 05

Algoritmo y Estructura de Datos I Semana 01 sesin 01 Objetivos: Identificar las etapas de un mtodo para solucionar problemas utilizando la computadora.

Versin 6.5

Definir y ejemplificar cada uno de los conceptos bsicos de la teora de objetos.


Definir el concepto de modelamiento y la notacin a utilizar.

MTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA


Versin 6.5

Mtodo de las 6D
Etapa 01
Descripcin Problema

Etapa 02

Definicin
Solucin

Etapa 03

n veces

Diseo
Solucin

Etapa 04

Ingeniera reversa

Desarrollo
Solucin

Etapa 05

Depuracin
Pruebas

Etapa 06

Document.

MTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA


Versin 6.5

Mtodo de las 6D Ingeniera reversa

n veces

Diseo Solucin Desarrollo Solucin Depuracin Pruebas

Ingeniera reversa

La ingeniera reversa nos permite crear o actualizar el modelo preliminar realizado en la ETAPA 03 Diseo de la solucin a partir del cdigo del programa realizado en la ETAPA 04 Desarrollo de la solucin y corregido en la ETAPA 05 Depuracin y pruebas.

CONCEPTOS BSICOS DE MODELAMIENTO Y TOO


Versin 6.5

Modelamiento Definicin:
Todo problema informtico, procedente del mundo real, esta afecto, a que su solucin pueda ser planteada en trminos de un modelo que refleje la realidad observada y analizada. Un modelo es una representacin grfica o simblica de algn aspecto del mundo real, que est bajo observacin o estudio.
Modelo de clases

Vf = Vo + at a%3
Modelo matemtico

CONCEPTOS BSICOS DE MODELAMIENTO Y TOO


Versin 6.5

Modelamiento - UML Definicin:


El Lenguaje Unificado de Modelado (Unified Modeling Language, UML) es un lenguaje grfico 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, diseo, pruebas, versiones, planificacin,...). Describir el ciclo de vida completo del desarrollo OO.

CONCEPTOS BSICOS DE MODELAMIENTO Y TOO


Versin 6.5

TOO - Paquetes Definicin:


Paquete: Conjunto de clases similares.
Un paquete permite organizar las clases. Un paquete contiene clases que tienen funciones similares.

dominioDeLaAplicacin. biblioteca.

nombrePaquete

CONCEPTOS BSICOS DE MODELAMIENTO Y TOO


Versin 6.5

TOO - Clases Definicin:


Clase: Coleccin de objetos del mismo tipo. Una Clase es una implantacin de un tipo de objeto. Especifica una estructura para almacenar los atributos y los mtodos operativos permisibles que se aplican a cada uno de sus objetos (comparten datos o atributos y mtodos comunes). El mundo real se modela mediante clases. Una clase es una abstraccin y no referencia a ningn objeto en particular.

Carpeta. Perro.

NombreClase
(NombrePaquete al que pertenece)

Atributos Operaciones

CONCEPTOS BSICOS DE MODELAMIENTO Y TOO


Versin 6.5

Modelamiento - UML Ejemplo:

SeresVivos Hombre
(SeresVivos)

nombres. apellidos. edad. correr(). caminar().

nombres apellidos edad correr() caminar()

CONCEPTOS BSICOS DE MODELAMIENTO Y TOO


Versin 6.5

Modelamiento - UML Ejemplo:

SeresVivos Hombre
(SeresVivos)

Qu datos manejan los objetos?.


Expresado en:

nombres apellidos edad correr() caminar()

Estructuras de Datos.

Qu pueden hacer los objetos?.


Expresado en:

Algoritmos.

CONCEPTOS BSICOS DE MODELAMIENTO Y TOO


Versin 6.5

Modelamiento - UML Diagramas:


Use Case Use Case Diagramas de Diagrams Diagrams
State de Diagramas Diagrams Clase Diagrams Paquete State

Use Case Use Case Diagramas de Diagrams Diagrams


Secuencia

Casos de Uso

State State Diagramas de Diagrams Diagrams


Objetos

Scenario Scenario Diagramas de Diagrams Diagrams


Colaboracin

Modelo

State State Diagramas de Diagrams Diagrams


Component Component Diagrams Diagramas Diagrams de

Componentes

Scenario Scenario Diagramas de Diagrams Diagrams


Estados

Diagramas de Actividad

Distribucin

CONCEPTOS BSICOS DE MODELAMIENTO Y TOO


Versin 6.5

Modelamiento - UML Diagrama de paquetes


La dependencia es una relacin que se puede establecer entre dos o ms paquetes. La dependencia en este caso significa que todas las clases que pertenecen al paquete dominioDeLaAplicacion podrn tener acceso a todas o algunas de las clases que pertenecen al paquete biblioteca (el sentido de la flecha marca la dependencia).

Dependencia

TEMAS TRATADOS SEMANA 01 SESIN 01


Versin 6.5

Mtodo de las 6D Modelamiento


n veces

Modelamiento
Ingeniera reversa Notacin UML

Diseo Solucin

Desarrollo Solucin

Depuracin Pruebas

Algoritmo y Estructura de Datos I Semana 01 sesin 02 Objetivos: Definicin y descripcin del mtodo empleado para definir los mtodos de las clases. Algoritmos. Definicin y descripcin de la herramienta empleada para definir los mtodos de las clases. Pseudocdigo. Descripcin del lenguaje de programacin utilizado para codificar soluciones. Java.

Versin 6.5

MTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA


Versin 6.5

Mtodo de las 6D
Etapa 01
Descripcin Problema

Etapa 02

Definicin
Solucin

Etapa 03

n veces

Diseo
Solucin

Etapa 04

Ingeniera reversa

Desarrollo
Solucin

Etapa 05

Depuracin
Pruebas

Etapa 06

Document.

ALGORITMO - CONCEPTOS BSICOS


Versin 6.5

Algoritmo Definicin:
El algoritmo constituye una lista completa de pasos secuenciales y una descripcin de datos necesarios para resolver un determinado problema.

Una lista de pasos secuenciales que deben ser ejecutados. Una descripcin de los datos que son manipulados por estos pasos.

ALGORITMO - CONCEPTOS BSICOS


Versin 6.5

Algoritmo - Pseudocdigo Definicin:


Un pseudocdigo permite expresar un algoritmo con palabras en castellano que son semejantes a las instrucciones de un lenguaje de programacin. Los Algoritmos permiten expresar los mtodos de las clases.

Algoritmo PrgMensaje main() ENTRADA: sueldo SALIDA: sueldo INICIO NUMERO sueldo sueldo = 0 LEER sueldo sueldo = sueldo * 0.85 ESCRIBIR sueldo FIN

ALGORITMO - CONCEPTOS BSICOS


Versin 6.5

Algoritmo - Pseudocdigo Tipos de datos:


En Pseudocdigo 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 pseudocdigo por lo que no podrn ser usadas como nombre de variable o constante.

ALGORITMO - CONCEPTOS BSICOS


Versin 6.5

Algoritmo - Pseudocdigo Pautas - Generales y de asignacin:


Todo algoritmo debe tener un nombre el cual deber comenzar con una letra mayscula. Si es un nombre compuesto, la primera letra de cada palabra simple deber estar en mayscula. No se permiten los espacios en blanco en el nombre del algoritmo. Es necesario que se determinen los datos de entrada y la informacin 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 realizara 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 realizara de la siguiente manera x = 5.

ALGORITMO - CONCEPTOS BSICOS


Versin 6.5

Algoritmo - Pseudocdigo Pautas - Generales y de asignacin:


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 expresin (observe que no se utilizan comillas) se utiliza: ESCRIBIR x + 2

ALGORITMO - CONCEPTOS BSICOS


Versin 6.5

Algoritmo - Pseudocdigo Pautas - Operadores aritmticos:

+
* / **
DIVIDIR

Suma.
Resta. Multiplicacin Divisin. Exponenciacin. Divisin Entera. Mdulo o resto. Raz de un nmero. Potencia de nmero.

Los operadores que estn encerrados entre parntesis se evalan primero. Si existen parntesis anidados las expresiones mas internas se evalan primero. Orden de prioridad: 1. ** 2. * , / 3. DIVIDIR , RESTO 4. + , -

RESTO
RAIZ POTENCIA

En caso de coincidencia de operadores de igual prioridad en una expresin, el orden de prioridad ser de izquierda a derecha.

ALGORITMO - CONCEPTOS BSICOS


Versin 6.5

Algoritmo - Pseudocdigo Pautas - Operadores relacionales y lgicos:

<
> =

Menor que.
Mayor que. Igual que.

NO (Not)
Y (And) O (Or)

Negacin.
Conjuncin. Disyuncin.

<=
>= <>

Menor o igual que.


Mayor o igual que. Distinto de.

CONCEPTOS BSICOS DEL LENGUAJE DE PROGRAMACIN


Versin 6.5

Codificacin - Java Definicin:


Java es un lenguaje de Programacin Orientado a Objetos desarrollado por Sun Microsystems. Es un lenguaje de propsito general que puede ser utilizado para el desarrollar cualquier tipo de aplicaciones. Sirve para confeccionar APPLETS. Permite convertir un WebSite en dinmico e interactivo.

CONCEPTOS BSICOS DEL LENGUAJE DE PROGRAMACIN


Versin 6.5

Codificacin - Java Identificadores:


Los identificadores como su nombre lo indica, sirven para identificar variables, mtodos o clases. Java es sensible a las maysculas y minsculas.

Variables.
Mtodos. Clases.

Almacenamiento de datos. Para especificar funciones. Para especificar objetos.

Interfaces.
Paquetes.

Para especificacin de protocolos.


Para agrupar clases.

CONCEPTOS BSICOS DEL LENGUAJE DE PROGRAMACIN


Versin 6.5

Codificacin - Java Identificadores reservados:


Los identificadores reservados conocidos tambin como palabras reservadas son de uso exclusivo del lenguaje de programacin Java. Entre las palabras reservadas podemos mencionar:
boolean. break. case. class else. false. float. for. if. int. new. private. static. return. super.

CONCEPTOS BSICOS DEL LENGUAJE DE PROGRAMACIN


Versin 6.5

Codificacin - Java Definicin 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.

CONCEPTOS BSICOS DEL LENGUAJE DE PROGRAMACIN


Versin 6.5

Codificacin - Java Definicin de una clase: package nombrePaquete ; class NombreClase { // Atributos // Mtodos }
NombreClase
(NombrePaquete al que pertenece)

Atributos Operaciones

Una clase es una implantacin de un tipo de objeto. Especifica una estructura de datos y los mtodos operativos permisibles que se aplican a cada uno de sus objetos. El mundo real se modela mediante clases. Una clase es una abstraccin y no refencia a ningn objeto en particular.

CONCEPTOS BSICOS DEL LENGUAJE DE PROGRAMACIN


Versin 6.5

Codificacin - Java Diagrama de paquetes: package dominioDeLaAplicacion ; import biblioteca.Lectura ;


DEPENDENCIA

class NombreClase { .. }

CONCEPTOS BSICOS DEL LENGUAJE DE PROGRAMACIN


Versin 6.5

Codificacin - Java Estructura bsica de una aplicacin:


Mtodo principal en Java.
Existen clases que tienen un mtodo especial conocido en Java como el mtodo main(). Las clases que tienen implementado el mtodo main() son clases que pueden ejecutarse.

package dominioDeLaAplicacion ; class PrgBienvenida {

public static void main (String arg [ ] ) { System.out.println (Bienvenidos a JAVA) ; } }

CONCEPTOS BSICOS DEL LENGUAJE DE PROGRAMACIN


Versin 6.5

Codificacin - 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 podrn ser usadas como nombre de variable o constante.

TEMAS TRATADOS SEMANA 01 SESIN 02


Versin 6.5

Mtodo de las 6D Algoritmo y Codificacin

Algoritmo
n veces

Diseado en
Diseo Solucin

Ingeniera reversa
Desarrollo Solucin

PSEUDOCODIGO

Codificacin
Depuracin Pruebas

Lenguaje de programacin JAVA

Algoritmo y Estructura de Datos I Semana 02 sesin 01 Objetivos:

Versin 6.5

Describir el Mtodo de las 6D en soluciones con uno y dos paquete (sin objeto).

Desarrollar soluciones bsicas utilizando el mtodo propuesto. Ingreso de datos utilizando el teclado. Uso de la clase LE.

Algoritmo y Estructura de Datos I Mtodo de las 6D Soluciones con uno y dos paquetes (sin objeto)

Versin 6.5

n veces

Estructuras de datos
Variables y constantes.
Ingeniera reversa

Diseo Solucin

Desarrollo Solucin

Depuracin Pruebas

Estructuras lgicas de asignacin


Ingreso, proceso y visualizacin de datos.

ESTRUCTURAS DE DATOS
Versin 6.5

Variables y constantes Definicin:


Una variable es una estructura de datos que permite reservar un espacio con la finalidad de almacenar temporalmente los datos. Una variable slo puede almacenar un solo dato a la vez y del mismo tipo. Declaracin
En Pseudocdigo tipoDato identificador En Java final tipoDato identificador ;

Almacenamiento de datos
En Pseudocdigo identificador = valor En Java identificador = valor ;

ESTRUCTURAS DE DATOS
Versin 6.5

Variables y constantes Ejemplos:


Anote los ejemplos planteados por el profesor.

MTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA


Versin 6.5

Mtodo de las 6D Soluciones con un paquete (sin objeto)


ENUNCIADO

Definicin
Solucin

Diseo
Solucin

Desarrollo
Solucin

Determinar la informacin deseada (salida). Determinar los datos de entrada (entrada). Establecer como se va ha solucionar el problema (proceso).

Determinar el nombre del proyecto. Definir el paquete y las clases que formarn parte de la solucin del problema. Utilice UML.

Codificar el diseo de la solucin del problema utilizando el lenguaje de programacin Java.

Disear el algoritmo para los diferentes mtodos. Utilice pseudocdigo o diagrama de flujo.

MTODO 6D SOLUCIONES CON UN PAQUETE (sin objeto)


Versin 6.5

PROBLEMA 01: ETAPA 1

3.

ENUNCIADO CLARO Y PRECISO DEL PROBLEMA:


Desarrollar una solucin que permita mostrar el nombre Pedro con el mensaje hola por la pantalla de la computadora.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

MTODO 6D SOLUCIONES CON UN PAQUETE (sin objeto)


Versin 6.5

PROBLEMA 01: ETAPA 2

1.

RESULTADO DESEADO:
Mostrar el mensaje de bienvenida Hola junto con el nombre Pedro.

Definicin Solucin

2.

DATOS NECESARIOS: Ninguno.

1. Resultado deseado. 2. Datos necesarios. 3. Procesamiento.

3.

PROCESAMIENTO: El mensaje Hola ser almacenada junto con el nombre Pedro en una variable (nombre) y luego se mostrar la variable.

MTODO 6D SOLUCIONES CON UN PAQUETE (sin objeto)


Versin 6.5

PROBLEMA 01: ETAPA 3

1.

NOMBRE DEL PROYECTO:


ProyMensaje.

Diseo Solucin

2.

DEFINICIN DE PAQUETE Y CLASE:


Paquete y clase

dominioDeLaAplicacion

PrgMensaje main()

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones.

Desarrollar el algoritmo y la codificacin.

MTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA


Versin 6.5

Mtodo de las 6D Soluciones con dos paquetes (sin objeto)


ENUNCIADO

Definicin
Solucin

Diseo
Solucin

Desarrollo
Solucin

Determinar la informacin deseada (salida). Determinar los datos de entrada (entrada). Establecer como se va ha solucionar el problema (proceso).

Determinar el nombre del proyecto. Definir los paquetes y el diagrama de paquetes. Definir las clases que formarn parte de cada paquete (atributos y mtodos).

Codificar el diseo de la solucin del problema utilizando el lenguaje de programacin Java.

Disear el algoritmo para los diferentes mtodos.

ESTRUCTURAS LGICAS
Versin 6.5

Ingreso de datos Definicin:


El ingreso de datos nos permite ingresar datos desde un dispositivo de entrada y asignarlo a una variable para su posterior procesamiento.
En Pseudocdigo En Java Clase LE nombreVariable = LE.leerInt(Ingrese Edad:) ;
Analice el uso de los diferentes mtodos de la clase LE.
leerString (String ). leerChar (String). leerInt (String ). leerLong (String ). leerFloat (String ) leerDouble (String ). leerShort (String ).

LEER nombreVariable

ESTRUCTURAS LGICAS
Versin 6.5

Visualizacin de datos Definicin:


La visualizacin de datos nos permite mostrar los datos a travs de la pantalla de la computadora.
En Pseudocdigo En Java Clase LE LE.mostrarInformacion (nombreVariable) ; LE.mostrarInformacion (x + 2); LE.mostrarInformacion ( Hola ) ; Para el ingreso de datos tambin puede utilizar la clase System de Java.

ESCRIBIR nombreVariable
ESCRIBIR x + 2 ESCRIBIR Hola

System.out.print ( Hola ) ;
Analice los modificadores \n y \t.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 02: ETAPA 1

3.

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 cafetera. Se deber visualizar por pantalla el total de descuento y el sueldo a cobrar.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Utilice la clase LE de Java para el ingreso de datos y visualizacin de la informacin.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 02: ETAPA 2

1.

RESULTADO DESEADO:

Mostrar el total de descuento y el sueldo a cobrar de un obrero de la empresa


Definicin Solucin

2.

DATOS NECESARIOS: El sueldo total del obrero.

3.

PROCESAMIENTO: El sueldo total ser ingresado por teclado y almacenado en la variable sueldo. Luego se realizan los clculos del descuento y del sueldo a cobrar del obrero. descuento = sueldo *0.2 pago = sueldo - descuento Los resultados se almacenan en las variables descuento y pago para luego ser mostradas por pantalla.

1. Resultado deseado. 2. Datos necesarios. 3. Procesamiento.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 02: ETAPA 3

1. 2.

NOMBRE DEL PROYECTO: ProySueldoObrero DIAGRAMA DE PAQUETES:


Diagrama de paquetes

Diseo Solucin

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.

3.

DEFINICIN DE PAQUETES Y CLASES:

Desarrollar el algoritmo y la codificacin.

TEMAS TRATADOS SEMANA 02 SESIN 01


Versin 6.5

Mtodo de las 6D Soluciones con uno y dos paquetes (sin objeto)

n veces

Estructuras de datos
Variables y constantes..
Ingeniera reversa

Diseo Solucin

Desarrollo Solucin

Depuracin Pruebas

Estructuras lgicas de asignacin


Ingreso, proceso y visualizacin de datos.

Algoritmo y Estructura de Datos I Semana 02 sesin 02 Objetivos :

Versin 6.5

Describir la conversin bsica de datos, el uso de funciones matemticas y el manejo de cadenas en el lenguaje de programacin. Desarrollar soluciones bsicas utilizando el mtodo propuesto. Uso de funciones matemticas. Manejo de cadenas.

Algoritmo y Estructura de Datos I Mtodo de las 6D Soluciones con dos paquetes (sin objeto)

Versin 6.5

n veces

Diseo Solucin

Uso de clases incorporadas en el lenguaje de programacin


Ingeniera reversa

Conversin de datos.
Funciones matemticas.

Desarrollo Solucin

Depuracin Pruebas

Manejo de cadenas.

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Conversin de datos Definicin:


La conversin 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 = ( int ) ( num1 / num2 ) ; System.out.println ( div ) ;

double num1 = 20, num2 = 3 ; int div ;


div = num1 / num2 ; System.out.println ( div ) ;

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 03: ETAPA 1

3.

ENUNCIADO CLARO Y PRECISO DEL PROBLEMA:


Ingrese dos nmeros enteros (num1 y num2 respectivamente) a travs del teclado. Calcule la suma (sum), resta (res), multiplicacin (mul) y divisin (div) de los dichos nmeros. Muestre los resultados obtenidos.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 03: ETAPA 3

1. 2.

NOMBRE DEL PROYECTO: ProyOperaciones DIAGRAMA DE PAQUETES:


Diagrama de paquetes

Diseo Solucin

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.

3.

DEFINICIN DE PAQUETES Y CLASES:

Desarrollar el algoritmo y la codificacin.

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Funciones matemticas Definicin:


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 matemticas.

Mtodos:
1. 2. 3. 4. 5. 6. abs( ). acos( ). asin( ). cos( ). log( ). max( ). 7. min( ).

8.
9.

pow( ).
random( ).

10. round( ). 11. sqrt( ). 12. floor( ).

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 04: ETAPA 1

3.

ENUNCIADO CLARO Y PRECISO DEL PROBLEMA:


Desarrollar una solucin 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 clculo de la nota final se ha considerado duplicar la nota mayor. Muestre la nota final redondeada.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 04: ETAPA 3

1. 2.

NOMBRE DEL PROYECTO: ProyNotaFinal DIAGRAMA DE PAQUETES:


Diagrama de paquetes

Diseo Solucin

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.

3.

DEFINICIN DE PAQUETES Y CLASES:

Desarrollar el algoritmo y la codificacin.

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Manejo de cadenas Definicin:


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.

Mtodos:
1. charAt( ). 7. lastIndexOf( ). 13. toLowerCase( ).

2.
3. 4. 5.

compareTo( ).
endsWith( ). equals( ). equalsIgnoreCase( ).

8.
9.

length( ).
replace( ).

14. trim( ).
15. toUpperCase( ). 16. concat( ).

10. startsWith( ). 11. substring( ). 12. toCharArray( ).

6.

indexOf( ).

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 05: ETAPA 1

3.

ENUNCIADO CLARO Y PRECISO DEL PROBLEMA:


Desarrollar una solucin que permita ingresar el nombre de dos productos de la librera El Boligrafito (nomProd1 y nomProd2), de tal forma que muestre el nombre de ambos productos con la primera letra en mayscula y el resto de letras en minscula.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 05: ETAPA 3

1. 2.

NOMBRE DEL PROYECTO: ProyNotaFinal2 DIAGRAMA DE PAQUETES:


Diagrama de paquetes

Diseo Solucin

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.

3.

DEFINICIN DE PAQUETES Y CLASES:

Desarrollar el algoritmo y la codificacin.

INTNTALO!! SEMANA 02 SESIN 02


Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 06 Desarrollar una solucin que permita ingresar dos nmero en variables tipo cadena (texto1 y texto2 respectivamente), y convierta dichas cadenas en nmeros para finalmente poder sumarlos (suma).

Sugerencia: - Utilice el mtodo 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 sesin de clase.

INTNTALO!! SEMANA 02 SESIN 02


Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 07 Desarrollar una solucin 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 mtodo random( ) de la clase Math de Java para obtener un nmero aleatorio.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 02 SESIN 02


Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 08 Desarrollar una solucin que permita ingresar el nombre de dos alumnos de un saln de clase. Mostrar el primer nombre en letra mayscula y el segundo nombre en letra minscula. Asegrese 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 mtodos 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 sesin de clase.

TEMAS TRATADOS SEMANA 02 SESIN 02


Versin 6.5

Mtodo de las 6D Soluciones con uno y dos paquetes (sin objeto)

n veces

Diseo Solucin

Uso de clases incorporadas en el lenguaje de programacin


Ingeniera reversa

Conversin de datos.
Funciones matemticas.

Desarrollo Solucin

Depuracin Pruebas

Manejo de cadenas.

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 03
Objetivos :

Conocer las diferentes estructuras lgicas de decisin.


Describir la Estructura Lgica de Decisin Simple SI (if), la Estructura Lgica de Decisin Doble SI / SINO (if - else) y las Estructuras de Decisin Mltiples CUANDO (switch) y SI ANIDADOS. Desarrollar soluciones bsicas utilizando el mtodo propuesto y las Estructuras Lgicas de Decisin.

Algoritmo y Estructura de Datos I Mtodo de las 6D Soluciones con dos paquetes (sin objeto)

Versin 6.5

n veces

Diseo Solucin

Estructuras Lgicas de Decisin


Ingeniera reversa

Simple (SI).

Desarrollo Solucin

Doble (SI/SINO).
Depuracin Pruebas

Mltiple (CUANDO). (SI Anidados).

ESTRUCTURAS LGICAS
Versin 6.5

Estructura Lgica de Decisin Simple (SI) Definicin:


Una estructura de decisin simple SI... FINSI permite alterar el flujo secuencial (o pasos secuenciales) de una solucin ejecutando un conjunto de pasos adicionales si el resultado de una condicin lgica es verdadera.

FORMATOS:

PSEUDOCODIGO
SI (condicin) ENTONCES instrucciones... FINSI

JAVA

if (condicin) { sentencias... }

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 09: ETAPA 1

ENUNCIADO

Descripcin Problema

Determinar el sueldo neto de un trabajador (sueldo), ingresando la tarifa (tarifa) y el nmero (numHoras) de horas trabajadas. Si el trabajador supera las 45 horas trabajadas se le deber dar un aumento del 15% del sueldo.

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 09: ETAPA 3

ProySueldoTrabajador
Diagrama de paquetes

Diseo Solucin

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.
Desarrollar el algoritmo y la codificacin.

ESTRUCTURAS LGICAS
Versin 6.5

Estructura Lgica de Decisin Doble (SI/SINO) Definicin:


Una estructura de decisin doble SI... SINO... FINSI permite alterar el flujo secuencial (o pasos secuenciales) de una solucin, ejecutando un conjunto de pasos dependiendo del resultado de una condicin lgica.

FORMATOS:

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

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

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 10: ETAPA 1

ENUNCIADO

Descripcin Problema

Calcular y mostrar la nota final (nf) de un alumno en base a 3 notas (n1, n2 y n3).

Si la nota final (nf) es menor a 14 se deber mostrar el mensaje Desaprobado, caso contrario se mostrar el mensaje Aprobado.

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Frmula: nf = (n1+n2+n3) / 3.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 10: ETAPA 3

ProyNotaFinal
Diagrama de paquetes

Diseo Solucin

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.
Desarrollar el algoritmo y la codificacin.

ESTRUCTURAS LGICAS
Versin 6.5

Estructura Lgica de Decisin Mltiple (CUANDO) Definicin:


Una estructura de decisin mltiple CUANDO... FINCUANDO permite alterar el flujo secuencial de una solucin ejecutando un conjunto de pasos dependiendo del valor de una variable.

FORMATOS:

PSEUDOCODIGO CUANDO variable SEA CASO valor 1 : instrucciones... CASO valor 2 : instrucciones... CASO valor n : sentencias... OTROS : instrucciones... FINCUANDO

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

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 11: ETAPA 1

ENUNCIADO

Descripcin Problema

Ingresar la categora (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).

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Categora 1

Aumento 38 %

2
3 4

21 %
12 % 08 %

Desarrollar el algoritmo y la codificacin.

ESTRUCTURAS LGICAS
Versin 6.5

Estructura Lgica de Decisin Mltiple (SI Anidados) Definicin:


Una estructura de decisin mltiple SI Anidados permite alterar el flujo secuencial de una solucin ejecutando un conjunto de pasos que dependen del resultado de evaluar diferentes condiciones lgicas dentro de estructuras de decisin simple o doble.
PSEUDOCODIGO
FORMATOS:
SI (condicin1) ENTONCES instrucciones1 SINO SI (condicin2) ENTONCES instrucciones2 SINO SI (condicin3) ENTONCES instrucciones3 FINSI FINSI FINSI

JAVA if (condicin1) { sentencias1... } else { if (condicin2) { sentencias2... } else { if (condicin3) { sentencias3 } } }

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 12: ETAPA 1

ENUNCIADO
Un curso se evala de la siguiente forma: se toma cinco prcticas calificadas (n1, n2, n3, n4, n5), se determina el promedio de las cuatro notas ms altas (prom) y se le da al estudiante una categora (A, B, C), en base a la tabla mostrada. Determinar la categora del alumno.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Rango Desde 16 a 20 Desde 11 a 15 Desde 00 a 10

Categoria A B C

Desarrollar el algoritmo y la codificacin.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 13

Ingresar un nmero (num) y determine si el nmero ingresado es un nmero par o impar. Muestre un mensaje (mensaje) indicando si el nmero es par o si el nmero impar.
Sugerencia:

- Utilice el resto de la divisin (para obtener el resto de una divisin en Java se utiliza el %).

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

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 mtodos trim(), length() y charAt() de la clase String. - Para obtener el carcter final de una cadena utilice el mtodo charAt() de la clase String y como argumento de este mtodo utilice length() -1.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 15

Calcular y mostrar el promedio final (prom) de un alumno redondeado a un decimal. El clculo 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 mtodo min() de la clase Math. - Utilice la siguiente frmula: prom = (n1 + n2 + n3 + nMa nMe) / 3

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 16

Desarrollar una solucin 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 alfabticamente en forma ascendente.

Sugerencia: - Utilice el mtodo compareTo() o compareToIgnoreCase() de la clase Math.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 17 Desarrollar la codificacin en Java de una solucin que permita ingresar el nombre, la categora y el sueldo de un trabajador, y calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Muestre el nombre (la primera letra en mayscula y el resto en minscula), la categora en Mayscula y el sueldo redondeado a dos decimales.
Categora A B C Aumento 30% 10% 05%

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 18 Calcular y mostrar el costo total que representa un paciente para un hospital de acuerdo al tipo de enfermedad, segn los datos de la tabla. Adicionalmente debe considerar que las mujeres tienen un incremento del 15% para el segundo tipo de enfermedad.
Tipo Enfermedad A B C Costo / Paciente / Dia 30% 10% 05%

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 19

Desarrollar una solucin que permita determinar la suma de las cifras de un nmero de cuatro cifras ingresado por teclado. Adicionalmente determine si el nmero es capica o no.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 20 Desarrolle un programa que permita ingresar un nmero 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 sesin de clase.

INTNTALO!! SEMANA 03
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 21 Desarrolle un programa que permita ingresar el da, el mes y el ao de una determinada fecha (da, mes y ao respectivamente). Determinar si la fecha ingresada es correcta y si el ao es bisiesto o no.

Dato: Un ao es bisiesto si es mltiplo de 4, por ejemplo 1984, pero los aos mltiplos de 100 solo son bisiestos cuando a su vez son mltiplos de 400, por ejemplo 1800 no es bisiesto, mientras que 2000 si lo es. (ao%4==0 && ao%100!=0 || ao%400==0). El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

TEMAS TRATADOS SEMANA 03


Versin 6.5

Mtodo de las 6D Soluciones con dos paquetes (sin objeto)

n veces

Diseo Solucin

Estructuras Lgicas de Decisin


Ingeniera reversa

Simple (SI). Doble (SI/SINO).

Desarrollo Solucin

Depuracin Pruebas

Mltiple (CUANDO). (SI Anidados).

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 04
Objetivos : Conocer las diferentes estructuras de repeticin. Describir las Estructura Lgicas de Repeticin 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 bifurcacin. Solucionar problemas aplicando el mtodo planteado y las Estructuras Lgicas de Repeticin.

Algoritmo y Estructura de Datos I Mtodo de las 6D Soluciones con dos paquetes (sin objeto)

Versin 6.5

n veces

Estructuras Lgicas de Repeticin y manejo de errores


Ingeniera reversa

Diseo Solucin

HACER PROBAR.

MIENTRAS

DESDE

Desarrollo Solucin

Depuracin Pruebas

Uso de contadores, acumuladores e interruptores en Estructuras Lgicas de Repeticin. Uso de instrucciones de bifurcacin.

ESTRUCTURAS LGICAS
Versin 6.5

Estructura Lgica de Repeticin (HACER) Definicin:


Una estructura lgica de repeticin HACER... MIENTRAS, permite repetir una instruccin o un bloque de instrucciones mientras que una condicin se cumpla o sea verdadera. Esta estructura de repeticin permite que se ejecuten al menos una vez las instrucciones o instruccin antes de probar la condicin. Esta estructura es utilizada para el desarrollo de men y para la consistencia de los datos.
FORMATOS:

PSEUDOCODIGO HACER instruccin 1 . . . instruccin n MIENTRAS (condicin) do {

JAVA sentencia 1 . . . sentencia n } while (condicin) ;

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 22: ETAPA 1

ENUNCIADO
Desarrolle una solucin que permita calcular el promedio de 10 alumnos utilizando la siguiente frmula:
prom = (n1 + n2+ n3*2) / 5

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Ingrese las notas a travs del teclado (n1, n2 y n3). Valide el ingreso de datos y muestre el promedio redondeado a dos decimales.

Desarrollar el algoritmo y la codificacin.

ESTRUCTURAS DE DATOS
Versin 6.5

Variables Uso de contadores Definicin:


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 repeticin. Un contador puede ser creciente o decreciente.

contador = contador + cantidadConstante


Ejemplos: - Incremento de 1 en 1 - Incremento de 2 en 2 En Pseudocdigo c=c+1 contar = contar + 2 En Java C++ contar += 2 ;

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

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 vlido FINSI MIENTRAS ( numAlu < 1 ) HACER LEER nota1, nota2, nota3 prom = (nota1 + nota2 + nota3) / 3 prom = prom REDONDEAR 2 ESCRIBIR prom i=i+1 MIENTRAS ( i <= numAlu ) FIN

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Plantear el enunciado del problema y desarrollar la codificacin.

ESTRUCTURAS LGICAS
Versin 6.5

Estructura Lgica de Repeticin (MIENTRAS) Definicin:


Una estructura lgica de repeticin MIENTRAS FINMIENTRAS, permite repetir una instruccin o un bloque de instrucciones mientras que una condicin se cumpla o sea verdadera. Esta estructura de repeticin prueba la condicin antes de ejecutar la instruccin o instruccin.

FORMATOS:

PSEUDOCODIGO MIENTRAS (condicin) instruccin 1 . . . instruccin n FINMIENTRAS

JAVA while (condicin) { sentencia 1 . . . sentencia n }

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 24: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar un nmero entero (validar el ingreso de datos) y muestre los nmeros mltiplos de 3 menores al nmero ingresado. Utilice la estructura MIENTRAS.
Observe el uso de la variable contador.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Desarrollar el algoritmo y la codificacin.

ESTRUCTURAS DE DATOS
Versin 6.5

Variables Uso de acumuladores Definicin:


Un acumulador es una variable numrica 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 repeticin.

acumulador = acumulador + cantidadVariable

Ejemplo:

En Pseudocdigo suma = suma + num

En Java suma += num ;

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

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 nmero entero FINSI MIENTRAS ( num < 1 ) MIENTRAS ( i < num ) SI ( i RESTO 5 = 0 ) ENTONCES suma = suma + i FINSI i=i+1 FINMIENTRAS ESCRIBIR suma FIN

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Plantear el enunciado del problema y desarrollar la codificacin.

ESTRUCTURAS LGICAS
Versin 6.5

Estructura Lgica de Repeticin (DESDE) Definicin:


Una estructura de repeticin DESDE... FINDESDE permite repetir una instruccin, o un bloque de instrucciones, un nmero determinado de veces o hasta que una condicin se cumpla. Con frecuencia se utiliza para iteraciones sencillas en donde se repite un bloque de instrucciones un cierto nmero de veces y despus se detiene.

FORMATOS:

PSEUDOCODIGO DESDE i = valorInicial HASTA valorFinal instruccin 1 . . . instruccin n FINDESDE

JAVA for ( i = valorInicial ; i < valorFinal ; i++ ) { sentencia 1 . . . sentencia n }

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 26: ETAPA 1

ENUNCIADO
Mostrar la serie aritmtica que se muestra a continuacin. Debe tener presente que el nmero de trminos (numTer) se ingresar por teclado. serie: 1 4 + 9 16 +

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Ejemplo: Si numTer = 6 La serie es: 1 4 + 9 16 + 25 36

Desarrollar la codificacin.

ESTRUCTURAS DE DATOS
Versin 6.5

Variables Uso de interruptores Definicin:


Un interruptor o conmutador (denominado tambin centinela, bandera o flag) es una variable lgica o numrica que puede tomar dos posibles valores (1/0, verdadero/falso, si/no, encendido/apagado) dentro de una determinada solucin

Ejemplo:

En Pseudocdigo sw = FALSO

En Java sw = false ;

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 27: ETAPA 1

Analice el cuerpo del siguiente algoritmo:

Descripcin Problema

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 Nmero primo SINO ESCRIBIR Nmero no es primo FINSI FIN

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Plantear el enunciado del problema y desarrollar la codificacin.

ESTRUCTURAS LGICAS
Versin 6.5

Estructura Lgica para el manejo de errores (PROBAR) Definicin:


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 excepcin, permitiendo capturar y manejar dichos problemas.

FORMATOS:
PSEUDOCODIGO PROBAR instruccin 1 . . . instruccin n ERROR FINPROBAR try { sentencia 1 . . . sentencia n } catch (Excepcin) { } JAVA

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

PROBLEMA 28: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar dos nmeros enteros. Mostrar el resultado de dividir ambos nmeros. Considerar que existe la posibilidad que el divisor sea igual a cero. Maneje excepciones.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Sugerencia;

Utilice la excepcin ArithmeticException.

Desarrollar la codificacin.

INSTRUCCIONES
Versin 6.5

Instrucciones de bifurcacin.
TIPOS
TERMINAR CONTINUAR
1.

En Java, la instruccin de bifurcacin TERMINAR es conocida como la sentencia break y tiene tres usos:
Permite finalizar una secuencia de sentencias en un switch (especficamente en el case). Se utiliza para salir de un bucle, sin analizar la condicin y sin ejecutar el resto de cdigo del cuerpo del bucle. Se emplea para proporcionar un mecanismo que permita cambiar el flujo de ejecucin a otra parte de la solucin (equivalente a un goto en otros lenguajes de programacin).

RETORNAR
2.

3.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

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 = Nmero primo SINO msg = Nmero no es primo FINSI ESCRIBIR msg FIN Plantear el enunciado del problema y desarrollar la codificacin.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

INTNTALO!! SEMANA 04
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 30

Desarrollar un programa que permita calcular y visualizar la cantidad de nmeros pares comprendidos entre los nmeros 20 y 400. Utilice la estructura HACER.

Modifique el programa de tal forma que permita calcular y visualizar la cantidad de nmeros pares comprendidos entre dos nmeros cualesquiera ingresados por el teclado.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 04
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 31

Desarrolle un programa que implemente un men con las siguientes opciones:


[1] Ingrese el radio de un crculo. (validar el ingreso de datos). [2] Calcular y mostrar el permetro del crculo. [3] Calcular y mostrar el rea del crculo.

[4] Finalizar.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 04
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 32

Desarrolle un programa que permita ingresar 20 nmeros a travs del teclado, y determine y muestre la suma de todos los nmeros pares ingresados. Utilice la estructura MIENTRAS.

Modifique el programa de tal forma que la cantidad de nmeros se ingrese por teclado (validar el ingreso de datos). Adicionalmente, determinar y mostrar la cantidad de nmeros primos ingresados.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 04
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 33

Desarrollar un programa que permita obtener la siguiente informacin:


Cuntos alumnos estn matriculado en el curso?. Cuntas alumnas son mayores de 18 aos?.

No ingrese la cantidad de alumnos que hay en el saln de clase.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 04
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 34

Desarrolle un programa que permita mostrar la siguiente figura:

* ** *** ****
En la figura mostrada el nmero de filas=4. Asuma que el nmero de filas tiene un rango entre 2 y 20.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 04
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 35

Desarrolle un programa que implemente un men con las siguientes opciones:


[1] Ingrese un nmero. (validar el ingreso de datos). [2] Calcular la cantidad de nmeros mltiplos de 3 menores al nmero ingresado. [3] Determinar si el nmero ingresado es capica o no.

[4] Determinar si el nmero ingresado es primo o no.


[5] Finalizar.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 04
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 36

Desarrollar una solucin 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 excepcin NumberFormatException.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 04
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 37

Desarrollar una solucin 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 aos y meses). Manejar excepciones.

Sugerencia; Utilice la excepcin NumberFormatException.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

TEMAS TRATADOS SEMANA 04


Versin 6.5

Mtodo de las 6D Soluciones con dos paquetes (sin objeto)

n veces

Estructuras Lgicas de Repeticin y manejo de errores


Ingeniera reversa

Diseo Solucin

HACER PROBAR.

MIENTRAS

DESDE

Desarrollo Solucin

Depuracin Pruebas

Uso de contadores, acumuladores e interruptores en Estructuras Lgicas de Repeticin. Uso de instrucciones de bifurcacin.

Algoritmo y Estructura de Datos I

Versin 6.5

Unidad II:

Introduccin al desarrollo de soluciones OO Uso de objetos, mtodos y atributos

Semana 05

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 5 Objetivos: Definir y ejemplificar conceptos adicionales de la teora de objetos y su representacin en UML. Conocer el diagrama de secuencia. Definir pautas adicionales en pseudocdigo para disear soluciones utilizando mtodos. Especificar las sentencias necesarias para codificar soluciones utilizando mtodos. Desarrollar soluciones OO en una clase. Uso de estructuras lgicas y variables. (operaciones de ingreso de datos, proceso y visualizacin de informacin).

MTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA


Versin 6.5

Mtodo de las 6D
Etapa 01
Descripcin Problema

Etapa 02

Definicin
Solucin

Etapa 03

n veces

Diseo
Solucin

Etapa 04

Ingeniera reversa

Desarrollo
Solucin

Etapa 05

Depuracin
Pruebas

Etapa 06

Document.

CONCEPTOS ADICIONALES DE LA TEORA DE OBJETOS Y UML


Versin 6.5

CLASES Atributos.

NombreClase
(NombrePaquete al que pertenece)

Qu datos manejan los objetos?


Expresado en:

Atributos Mtodos

Estructuras de Datos.

DEFINICIN:
Un atributo es una caractersticas que tienen un conjunto de objetos que pertenecen a una misma clase. Dichas caractersticas pueden ser almacenadas en variables, arreglos o cualquier estructura de datos existente.

CONCEPTOS ADICIONALES DE LA TEORA DE OBJETOS Y UML


Versin 6.5

Qu datos manejan los objetos?


Expresado en:

Estructuras de Datos.

CLASIFICACIN: Atributo de clase. Atributo de instancia.

TIPOS: Variables globales. Variables locales.

CONCEPTOS ADICIONALES DE LA TEORA DE OBJETOS Y UML


Versin 6.5

CLASES Mtodos.

NombreClase
(NombrePaquete al que pertenece)

Qu pueden hacer los objetos?.


Expresado en:

Atributos Mtodos

Algoritmos.

DEFINICIN:
Los mtodos representan pequeos subprogramas encapsulados dentro de las clases y contribuyen a definir el comportamiento tpico de los objetos. Los mtodos especifican la forma en que se controlan los datos de un objeto. Los mtodos definen el comportamiento de un objeto.

CONCEPTOS ADICIONALES DE LA TEORA DE OBJETOS Y UML


Versin 6.5

Qu pueden hacer los objetos?.


Expresado en:

Algoritmos.

CLASIFICACION: Mtodo de clase. Mtodo de objeto o instancia. Mtodos especiales Mtodo principal. Mtodo constructor.

TIPOS: void que no reciben parmetros.

void que reciben parmetros.


tipeados que no reciben parmetros. tipeados que reciben parmetros.

CONCEPTOS ADICIONALES DE LA TEORA DE OBJETOS Y UML


Versin 6.5

OBJETOS / INSTANCIA.

DEFINICIN
Objetos: Modelos de entes del mundo.

Un objeto del mundo real es cualquier cosa acerca del cual conocemos sus caractersticas comunes: estado y comportamiento.
Un objeto de software es cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y las mtodos que controlan dichos datos.

La 1ra carpeta. El perro Boby.

nombreObjeto : NombreClase

CONCEPTOS ADICIONALES DE LA TEORA DE OBJETOS Y UML


Versin 6.5

LENGUAJE UNIFICADO DE MODELADO UML. EJEMPLO

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML


Versin 6.5

LENGUAJE UNIFICADO DE MODELADO UML.

DIAGRAMAS
Use Case Use Case Diagramas de Diagrams Diagrams
Secuencia

Use Case Use Case Diagramas de Diagrams Diagrams

Casos de Uso

State de Diagramas Diagrams Clase Diagrams Paquete

State

State State Diagramas de Diagrams Diagrams


Objetos

Scenario Scenario Diagramas de Diagrams Diagrams


Colaboracin

Modelo

State State Diagramas de Diagrams Diagrams


Component Component Diagrams Diagramas Diagrams de

Componentes

Scenario Scenario Diagramas de Diagrams Diagrams


Estados

Diagramas de Actividad

Distribucin

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML


Versin 6.5

LENGUAJE UNIFICADO DE MODELADO UML. DIAGRAMA DE SECUENCIA


Un diagrama de secuencia es una vista grfica de un escenario que muestra la interaccin 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. - Lnea de vida. - Enfoques de control fuente/destino. - Puede incluir un actor.

ALGORITMO PAUTAS ADICIONALES EN PSEUDOCDIGO


Versin 6.5

PAUTAS ADICIONALES

CREAR

Permite crear un arreglo o un objeto de una clase.


Permite ejecutar un algoritmo desde otro algoritmo.

EJECUTAR
PARAMETRO RETORNO CLASE

Permite especificar los datos que recibe un algoritmo.


Permite especificar si un algoritmo retorna un resultado. Permite referenciar a una clase determinada.

CODIFICACIN - LENGUAJE DE PROGRAMACIN JAVA


Versin 6.5

DEFINICION DE OBJETOS

Declaracin NombreClase nombreObjeto = new NombreMetodoConstructor() ; Creacin

El mtodo constructor es un mtodo especial que se ejecuta en forma automtica cuando se crea un objeto. La definicin del mtodo constructor es opcional siendo su finalidad principal inicializar variables y crear arreglos y objetos de otra clases.

CODIFICACIN - LENGUAJE DE PROGRAMACIN JAVA


Versin 6.5

ATRIBUTOS DE CLASE
Los atributos de clase estn 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 . }

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

CODIFICACIN - LENGUAJE DE PROGRAMACIN JAVA


Versin 6.5

ATRIBUTOS DE INSTANCIA
Los atributos de instancia estn 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; . }

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

CODIFICACIN - LENGUAJE DE PROGRAMACIN JAVA


Versin 6.5

METODOS DE CLASE
package dominioDeLaAplicacion ; import biblioteca.* ; class NombreClase { ... static tipoRetorno nombreMetodo (args) { } } Para poder ejecutar un mtodo de clase deber colocar el nombre del objeto o el nombre de la clase en la que fue definido el mtodo, luego el operador punto (.) y finalmente el nombre del mtodo que desea ejecutar. (Para ejecutar un mtodo hay que considerar el modo de acceso con el que fue definido el mtodo en su clase) .

CODIFICACIN - LENGUAJE DE PROGRAMACIN JAVA


Versin 6.5

METODOS DE INSTANCIA
package dominioDeLaAplicacion ; import biblioteca.* ;
class NombreClase { ... tipoRetorno nombreMetodo (args) { ... } } Para poder ejecutar un mtodo de instancia deber colocar el nombre del objeto en la que fue definido el mtodo, luego el operador punto (.) y finalmente el nombre del mtodo que desea ejecutar. (Para ejecutar un mtodo hay que considerar el modo de acceso con el que fue definido el mtodo en su clase) .

CODIFICACIN - LENGUAJE DE PROGRAMACIN JAVA


Versin 6.5

METODOS DE INSTANCIA
void nombreMetodo ( ) { ... } void nombreMetodo (parametros) { ... }

tipoDato nombreMetodo ( ) { ... return valor ; }

tipoDato nombreMetodo (parametros) { ... return valor ; }

Durante el desarrollo de nuestras soluciones utilizaremos mtodos de instancia. Es importante comprender que los mtodos de instancia pueden ser de 4 tipos. (Para ejecutar un mtodo hay que considerar el modo de acceso con el que fue definido el mtodo en su clase).

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 38: ETAPA 1

ENUNCIADO
Desarrollar una solucin 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, ms la nota mayor entre ambas dividido entre tres.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

En la solucin utilice mtodos.

Desarrollar el modelamiento, algoritmo y la codificacin.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 39: ETAPA 1

ENUNCIADO
Desarrollar una solucin 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, ms la nota mayor entre ambas dividido entre tres.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

En la solucin utilice mtodos y considere como atributos solo datos de entrada.

Desarrollar el modelamiento, algoritmo y la codificacin.

DESARROLLO DE SOLUCIONES OO
Versin 6.5

PROBLEMA 38: ETAPA 3

1.

NOMBRE DEL PROYECTO:

ProyNotas.
2. DEFINICIN DE DIAGRAMAS Y RELACIONES: 2.1 Diagrama de paquetes y especificacin de clase.

Diseo Solucin

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones.

DESARROLLO DE SOLUCIONES OO
Versin 6.5

PROBLEMA 38: ETAPA 3

2.

DEFINICIN DE DIAGRAMAS Y RELACIONES: 2.1 Diagrama de secuencia.

Diseo Solucin

1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones.

DESARROLLO DE SOLUCIONES OO
Versin 6.5

PROBLEMA 38: ETAPA 3


3.
Diseo Solucin

DESARROLLO DE ALGORITMO EN PSEUDOCODIGO

3. Desarrollo de Algoritmos.

DESARROLLO DE SOLUCIONES OO
Versin 6.5

PROBLEMA 38: ETAPA 4


1.
Desarrollo Solucin

CODIFICAR EL PROYECTO:

1. Codificar el proyecto. 2. Comentarios internos. 3. Copias de seguridad.

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 6 Objetivos: Definir pautas adicionales en pseudocdigo para disear soluciones utilizando mtodos. Especificar las sentencias necesarias para codificar soluciones utilizando mtodos. Desarrollar soluciones OO en una clase. Uso de estructuras lgicas y variables. (operaciones de ingreso de datos, proceso y visualizacin de informacin).

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 39: ETAPA 1

ENUNCIADO
Desarrollar una solucin 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, ms la nota mayor entre ambas dividido entre tres.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

En la solucin utilice mtodos y considere como atributos solo datos de entrada.

Desarrollar el modelamiento, algoritmo y la codificacin.

INTNTALO!! SEMANA 05
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 40

Sugerencia;

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 05
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 41

Sugerencia;

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 05
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 42

Sugerencia;

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

TEMAS TRATADOS SEMANA 05


Versin 6.5

Mtodo de las 6D Modelamiento


n veces

Modelamiento
Ingeniera reversa Notacin UML

Diseo Solucin

Desarrollo Solucin

Algoritmo
Depuracin Pruebas

Diseado en PSEUDOCODIGO

Codificacin
Lenguaje de programacin
JAVA

Algoritmo y Estructura de Datos I

Versin 6.5

Unidad III:

Desarrollo de soluciones OO Uso de estructuras lgicas y arreglos

Semana 06 a semana 08

Algoritmo y Estructura de Datos I

Versin 6.5

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 lgicas y arreglos. (operaciones de ingreso de datos, proceso y visualizacin de informacin).

Algoritmo y Estructura de Datos I Soluciones OO, usando una Clase

Versin 6.5

Estructuras de datos
Arreglos: Unidimensional : Vectores. Bidimensional : Matrices.

Uso de estructuras lgicas para el manejo de arreglos.

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglos Definicin:
Los arreglos son estructuras de datos que almacenan datos del mismo tipo. Los arreglos son entidades estticas en cuanto a que su tamao 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.

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Unidimensional - Vector


Arreglos unidimensionales o vectores simples
Representacin grfica: numeros[ ] 0 1 2 tamao=4 3

32

-2

174

nombres[ ] 0 1 2 3 4

tamao=6 5

Juan

Jose

Cindy

Ivette

Jessica

Wilbe

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Tipo Vector Simple Declaracin:


En Pseudocdigo 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 [ ] ;

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Tipo Vector Simple Creacin:


En Pseudocdigo CREAR nombre_del_vector [tamao] En Java nombre_del_vector = new tipoDato [tamao] ;

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()] ;

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Tipo Vector Simple Inicializacin:


En Pseudocdigo
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};

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Tipo Vector Simple Ingreso de datos:


En Pseudocdigo 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] = 100.5 ; letras [x] = J ;

Cuando empleamos vectores podemos utilizar las estructuras lgicas de repeticin para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE.

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Tipo Vector Simple Tamao:


En Pseudocdigo variable = LONGITUD nombre_del_vector [ ] En Java

variable = nombre_del_vector.length ;

Ejemplos:

Ejemplos:

tamao = LONGITUD nombres [ ] tamao = LONGITUD sueldos [ ] tamao = LONGITUD letras [ ]

tamao = nombres.length ; tamao = sueldos.length ; tamao = letras.length ;

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Tipo Vector Simple

Declaracin y creacin:
En Java tipoDato nombre_del_vector [ ] = new tipoDato [tamao] ;

Declaracin, creacin e inicializacin:


En Java tipoDato nombre_del_vector[ ] = { valor1, valor2, valor3, valor4, , valorN } ;

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Tipo Vector Simple Ingreso de datos - Usando estructura de repeticin for

String nombre[];
nombre= new String[10];

for(int i=0;i<nombre.length;i++){ nombre[i]=LE.leerString("Ingrese nombre"); }

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglo Tipo Vector Simple Mostrar datos - Usando estructura de repeticin 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.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 43: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar y almacenar la nota (notas[]) de 10 alumnos de un saln de clase y determinar el promedio final (prom). Mostrar el promedio. Consistenciar el ingreso de datos.

Descripcin Problema

Utilice vectores simples.

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Desarrollar el modelamiento, el algoritmo y la codificacin.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 44: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar y almacenar la nota (notas[]) de todos los alumnos de un saln de clase y determinar el promedio final (prom) redondeado a dos decimales. Mostrar el promedio. Consistenciar el ingreso de datos.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Utilice vectores simples.

Desarrollar la codificacin.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 45: ETAPA 1

ENUNCIADO
Desarrollar una solucin 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.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Utilice vectores simples.

Desarrollar la codificacin.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 46: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar y almacenar el nombre de todos los artculos (nombres[]) de una bodega. Mostrar la cantidad de vocales que tiene cada nombre. Consistenciar el ingreso de datos.

Descripcin Problema

Utilice vectores simples.

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Desarrollar la codificacin.

Algoritmo y Estructura de Datos I

Versin 6.5

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 lgicas y arreglos. (operaciones de ingreso de datos, proceso y visualizacin de informacin).

Algoritmo y Estructura de Datos I Soluciones OO, usando una Clase

Versin 6.5

Estructuras de datos
Arreglos: Vectores. Matrices.

Uso de estructuras lgicas para el manejo de arreglos.

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglos - Matrices

Arreglos bidimensionales o matrices


Representacin:
numeros[][]
0 1 2 3

columnas = 4

Preguntar por tamao y orden

filas = 2

0 1

32 14

-2 12

0 -5

174 129 Orden = 2 x 4

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglos tipo matriz Declaracin:


En Pseudocdigo En Java tipoDato identificador [ ][ ] ;

tipoDato identificador [ ][ ]

tipoDato [ ][ ] identificador ;
Ejemplos;

Ejemplos;

- TEXTO nombres [ ][ ] - NUMERO sueldos [ ][ ] - CARACTER letras [ ][ ]

- String nombres [ ][ ] ; - double sueldos [ ][ ] ; - char letras [ ][ ] ;

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglos tipo matriz Creacin:


En Pseudocdigo 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] ;

ESTRUCTURAS DE DATOS
Versin 6.5

Arreglos tipo matriz Ingreso de datos:


En Pseudocdigo 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] = 100.5 ; - letras [y][x] = J ;

Cuando utilizamos matrices podemos utilizar las estructuras lgicas de repeticin para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE dos veces.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 47: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar y almacenar nmeros enteros en una matriz de 3 por 3 (a[][]) y permita calcular la suma (suma) de los nmeros ubicados en la diagonal principal. Consistenciar la entrada de datos.

Descripcin Problema

Utilice matrices.

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Desarrollar el modelamiento, el algoritmo y la codificacin.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 48: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar y almacenar el precio de compra y el precio de venta de todos los artculos de una bodega (precios[][]). Calcular y mostrar la utilidad que se obtiene por la venta de cada artculo redondeado a dos decimales. Adicionalmente determine cual es la mayor utilidad.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Utilice matrices.

Desarrollar la codificacin.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 49: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar y almacenar el cdigo y el nombre de los empleados de una compaa (empleados[][]). Calcular y mostrar las dos primeras letras del cdigo de cada empleado en letra mayscula. Adicionalmente determine cual es el cdigo alfabticamente menor.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

Utilice matrices.

Desarrollar la codificacin.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 50: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita ingresar y almacenar el promedio de prcticas, 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.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
Utilice matrices.

Desarrollar la codificacin.

INTNTALO!! SEMANA 06
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 51

Desarrollar una solucin que permita ingresar y almacenar la nota (notas[]) de todos los alumnos de un saln 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 sesin de clase.

INTNTALO!! SEMANA 06
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 52

Desarrollar una solucin que permita ingresar y almacenar 20 nmeros (numeros[]) enteros mayores que cero. Determinar y mostrar la cantidad de nmeros mltiplos de 5 y la suma de todos los nmeros pares. Consistenciar el ingreso de datos.

Utilice vectores.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 06
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 53

Desarrollar una solucin que permita ingresar y almacenar el promedio de prcticas, 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 saln de clase y el nmero de alumnos que obtuvieron la mayor nota.

Utilice matrices.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 06
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 54

Desarrollar una solucin 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 saln de clase y el nmero de alumnos que obtuvieron la menor nota.

Utilice matrices.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

TEMAS TRATADOS SEMANA 06


Versin 6.5

Mtodo de las 6D Soluciones OO en una clase

n veces

Estructuras de datos
Arreglos:
Ingeniera reversa

Diseo Solucin

Desarrollo Solucin

Vectores. Matrices.
Depuracin Pruebas

Uso de estructuras lgicas para el manejo de arreglos.

Versin 6.5

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 07 Objetivos: Creacin de arreglos de gran tamao para el almacenamiento y manejo de datos. Entender y desarrollar algoritmo de bsqueda secuencial y ordenamiento de datos por intercambio en arreglos de gran tamao. Desarrollo de soluciones OO en una clase. Uso de estructuras lgicas y arreglos. (operaciones de ingreso de datos, proceso, visualizacin de informacin, ordenamiento y bsqueda. Uso de men).

Algoritmo y Estructura de Datos I Mtodo de las 6D Soluciones OO en una clase

Versin 6.5

n veces

Algoritmos para el manejo de datos en arreglos


Ingeniera reversa

Diseo Solucin

Bsqueda de datos. Ordenamiento de datos.

Desarrollo Solucin

Depuracin Pruebas

Uso de estructuras lgicas para el manejo de datos en arreglos de gran tamao.

ARREGLOS MANEJO DE DATOS


Versin 6.5

Arreglos de gran tamao Definicin:


Un arreglo de gran tamao es aquel que se crea con una capacidad mayor a la cantidad de datos que va almacenar. Los arreglos de gran tamao se utilizan cuando no se puede determinar desde un inicio cual debe ser el tamao de un arreglo.
codigos
0 1 2 3 . . . 9999
. . .

numAlu = 0
(int) (long)

Observe el vector codigos[ ]. Dicho vector ha sido creado con un tamao de 10000. Tamao suficiente para almacenar todos los cdigos de los alumnos de un saln de clase. Para manejar los datos almacenados en un arreglo de gran tamao se necesita una variable que indica el tamao lgico del arreglo. Observe el valor de la variable numAlu. Qu significa?

ARREGLOS MANEJO DE DATOS


Versin 6.5

Bsqueda de Datos Introduccin:


La bsqueda de datos consiste en ubicar un determinado elemento, su posicin o ambos entre un conjunto de elementos almacenados en una estructura de datos especfica. Se dice que la bsqueda es exitosa cuando el elemento buscado es encontrado, caso contrario, la bsqueda es no exitosa o fallida.

Tipos:
1. 2. 3. Bsqueda secuencial. Bsqueda binaria. Bsqueda de hashing.

ARREGLOS MANEJO DE DATOS


Versin 6.5

Mtodo de Bsqueda Secuencial Definicin:


Este es el mtodo ms sencillo de bsqueda de datos y se basa en recorrer el arreglo en forma secuencial desde el principio hasta el final.
codigos
INICIO
0 1 2

3
. . .
. . . . . .

FIN

numAlu = X
(int)
9999

Cundo se finaliza la bsqueda?


(long)

ARREGLOS MANEJO DE DATOS


Versin 6.5

Bsqueda Secuencial de Datos


Dado los datos siguientes:
0 1 2 3 . . . 9999
. . .

codigos 10

20
30

numAlu = 3
(int) (long)

Supongamos que se desea buscar un determinado cdigo. Qu operaciones se deberan realizar? Qu restricciones deberan existir?
Desarrolle un algoritmo en pseudocdigo para la bsqueda de un nombre. Qu consideraciones debera tener si el vector fuera de tipo TEXTO?

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 55: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita almacenar los cdigos de todos los alumnos de un saln de clase. Utilice un men con las opciones siguientes:
1. Ingreso de cdigos. 2. Bsqueda de cdigo. 3. Mostrar cdigos.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

4. Finalizar

Utilice vectores de almacenar los datos.

gran

tamao

para

Desarrollar la codificacin.

ARREGLOS MANEJO DE DATOS


Versin 6.5

Ordenamiento de Datos Introduccin:


La ordenacin o clasificacin de datos es la operacin de organizar un conjunto de datos en algn orden dado, tal como creciente o decreciente en datos numricos, o bien en orden alfabtico directo o inverso. Estructuras de datos tpicas que suelen requerir ordenacin son: lista de nmeros, archivos de clientes de banco, nombres de una agenda telefnica, etc.

Tipos:
1. 2. 3. 4. Mtodo de la Burbuja (intercambio). Mtodo de Insercin. Mtodo de Seleccin Mtodo QuickSort.

ARREGLOS MANEJO DE DATOS


Versin 6.5

Mtodo de la Burbuja Definicin:


Este mtodo de ordenacin se fundamenta en el principio de comparar e intercambiar pares de elementos contiguos hasta ordenar todos los elementos.
nombres
0 1 2 3 . . . 9999
. . . . . . . . .

nombres Angella Camila


VECTOR ORDENADO

nombres Danae Camila Angella

Danae Angella Camilla

Danae

numAlu = 3
(int) (String) (String) (String)

ARREGLOS MANEJO DE DATOS


Versin 6.5

Ordenamiento de Datos por Burbuja


Dado los datos siguientes:
0 1 2 3 . . . 9999
. . .

nombres Danae

Angella
Camilla

numAlu = 3
(int) (String)

Supongamos que se desea ordenar los nombres alfabticamente. Qu operaciones se deberan realizar? Qu restricciones deberan existir?
Desarrolle un algoritmo en pseudocdigo para ordenar los datos. Qu consideraciones debera tener si el vector fuera de tipo NUMERO?

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 56: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita almacenar los nombres de todos los alumnos de un saln de clase. Utilice un men con las opciones siguientes:
1. Ingreso de nombres. 2. Ordenar nombres. 3. Mostrar nombres.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

4. Finalizar

Utilice vectores de almacenar los datos.

gran

tamao

para

Desarrollar la codificacin.

INTNTALO!! SEMANA 07
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 57

Sugerencia;

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 07
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 58

Sugerencia;

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

TEMAS TRATADOS SEMANA 07


Versin 6.5

Mtodo de las 6D Soluciones OO en una clase

n veces

Algoritmos para el manejo de datos en arreglos


Ingeniera reversa

Diseo Solucin

Bsqueda de datos. Ordenamiento de datos.

Desarrollo Solucin

Depuracin Pruebas

Uso de estructuras lgicas para el manejo de datos en arreglos de gran tamao.

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 08 Objetivos: Introduccin al uso de arreglos en paralelo.

Entender y desarrollar algoritmo para la modificacin y eliminacin de datos en arreglos paralelos de gran tamao.
Desarrollo de soluciones OO en una clase. Uso de estructuras lgicas y arreglos. (operaciones de ingreso de datos,
proceso, visualizacin de informacin, ordenamiento, bsqueda, modificacin y eliminacin. Uso de men)

Algoritmo y Estructura de Datos I Mtodo de las 6D Soluciones OO en una clase

Versin 6.5

n veces

Algoritmos para el manejo de datos en arreglos


Ingeniera reversa

Diseo Solucin

Modificacin de datos. Eliminacin de datos.

Desarrollo Solucin

Depuracin Pruebas

Uso de estructuras lgicas para el manejo de datos en arreglos en paralelo de gran tamao.

ARREGLOS MANEJO DE DATOS


Versin 6.5

Arreglos en Paralelo Definicin:


Cuando en una solucin se utiliza ms de un arreglo y el orden en que se disponen los datos entre los arreglos tiene un significado se les denomina arreglos paralelos.
nombres 0 1 2 0 1 2 sueldos

Datos del mismo trabajador.

: :
numTrab - 1

: : :
nombre de los trabajadores

: :
numTrab - 1

: : :
sueldo de los trabajadores

ARREGLOS MANEJO DE DATOS


Versin 6.5

Arreglos en Paralelo Ejemplo:


Desarrolle la Grfica de Estructura de una solucin que utilice vectores en paralelo. De tal forma, que permita almacenar el cdigo, el nombre y el promedio final de todos los alumnos de un saln de clase. Extienda la grfica de tal forma que en lugar de almacenar el promedio final se almacenen las 4 notas de todos los alumnos de un saln de clase.
Anote sus conclusiones.

ARREGLOS MANEJO DE DATOS


Versin 6.5

Modificacin de Datos Definicin:


La modificacin 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 modificacin de datos es necesaria para mantener actualizados los datos almacenados.

Grfica de Estructuras
(del ejemplo anterior)

codigos
0 1 2 3 . . . 9999
. . .

nombres

promedios

. . .

. . .

numAlu = 0
(int)

(long)

(String)

(double)

ARREGLOS MANEJO DE DATOS


Versin 6.5

Modificacin de Datos
Dado los datos siguientes:
0 1 2

codigos 10 20 30

nombres Danae Angella Camilla

promedios 18 12 15

3
. . . 9999
. . . . . . . . .

numAlu = 3
(int)

(long)

(String)

(double)

Supongamos que se desea modificar los datos del alumno con cdigo = 20. Qu operaciones se deberan realizar? Qu restricciones deberan existir?
Desarrolle un algoritmo en pseudocdigo para la modificacin de datos de un alumno.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 59: ETAPA 1

ENUNCIADO
Desarrollar una solucin que permita almacenar los cdigos, nombres y promedios de todos los alumnos de un saln de clase. Utilice un men con las opciones siguientes:
1. Ingreso de datos. 2. Bsqueda de datos por cdigo. 3. Modificacin de datos por cdigo.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

4. Mostrar datos. 5. Finalizar

Utilice vectores paralelos para almacenar los datos.

Desarrollar la codificacin.

ARREGLOS MANEJO DE DATOS


Versin 6.5

Eliminacin de Datos Definicin:


La eliminacin 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 eliminacin de datos es necesaria para mantener actualizados los datos almacenados .

Grfica de Estructuras
(del ejemplo anterior)

codigos
0 1 2 3 . . . 9999
. . .

nombres

promedios

. . .

. . .

numAlu = 0
(int)

(long)

(String)

(double)

ARREGLOS MANEJO DE DATOS


Versin 6.5

Eliminacin de Datos
Dado los datos siguientes:
0 1 2

codigos 10 20 30

nombres Danae Angella Camilla

promedios 18 12 15

3
. . . 9999
. . . . . . . . .

numAlu = 3
(int)

(long)

(String)

(double)

Supongamos que se desea eliminar los datos del alumno con cdigo = 20. Qu operaciones se deberan realizar? Qu restricciones deberan existir?
Desarrolle un algoritmo en pseudocdigo para la eliminacin de datos de un alumno.

MTODO 6D SOLUCIONES OO EN UNA CLASE


Versin 6.5

PROBLEMA 60: ETAPA 1

ENUNCIADO
Modifique la solucin 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. Bsqueda de datos por cdigo. 3. Ordenacin de datos por cdigo.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

4. Modificacin de datos por cdigo. 5. Eliminacin de datos or cdigo. 6. Mostrar datos. 7. Finalizar.

Utilice vectores paralelos para almacenar los datos.

Desarrollar la codificacin.

INTNTALO!! SEMANA 08
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 61

Sugerencia;

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTNTALO!! SEMANA 08
Versin 6.5

INTNTALO !!

ENUNCIADO DEL PROBLEMA 62

Sugerencia;

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

TEMAS TRATADOS SEMANA 08


Versin 6.5

Mtodo de las 6D Soluciones OO en una clase

n veces

Algoritmos para el manejo de datos en arreglos


Ingeniera reversa

Diseo Solucin

Modificacin de datos. Eliminacin de datos.

Desarrollo Solucin

Depuracin Pruebas

Uso de estructuras lgicas para el manejo de datos en arreglos en paralelo de ran tamao.

Algoritmo y Estructura de Datos I

Versin 6.5

Unidad IV:

Desarrollo de soluciones bsicas Usando Interfaz Grafica de Usuario

Semana 10

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 10 sesin 01 Objetivos: Comprender el empleo de herencia y el uso de interfaces dentro de la Programacin Visual. Describir los diferentes componentes integran la programacin visual. que

INTERFAZ GRFICA DE USUARIO


Versin 6.5

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 lnea de comandos hasta las interfaces grficas que proporcionan las aplicaciones ms modernas. Java proporciona los elementos bsicos para construir decentes interfaces de usuario a travs del AWT, y opciones para mejorarlas mediante Swing

CARACTERSTICAS DE LA TOO Y UML GUI


Versin 6.5

PROGRAMACION EN ENTORNO VISUAL

Descripcin de componentes bsicos


En la interfaz grfica que se muestra, los componentes son representados por objetos de las clases TextField, Label y Button.
Contenedor

Label

TextField

Button

INTERFAZ GRFICA DE USUARIO


Versin 6.5

Interfaz grfica de usuario


DISEO: Etapa en la cual se colocan los componentes grficos sobre la ventana. En Java, podemos utilizar componentes awt (paquete awt) o swing (paquete swing). PROGRAMACIN: Etapa en la cual se asocia mtodos a los componentes grficos. En Java, se utiliza la interfaz ActionListener (paquete event en Java).

INTERFAZ GRFICA DE USUARIO


Versin 6.5

PAQUETE AWT.
Es el paquete de Java que contienen los elementos necesarios para la creacin de Interfaces Graficas de Usuario.
La estructura bsica del AWT se basa en Componentes y Contenedores.

Componentes (Component) Contenedor(Conteiner) AWT

INTERFAZ GRFICA DE USUARIO


Versin 6.5

COMPONENTES
El AWT proporciona varias clases de Componentes:
Button Canvas Checkbox Choice

Componentes

Container
Label List Scrollbar TextComponent TextArea TextField

La clase Component es una clase abstracta que representa todo lo que tiene una posicin, un tamao, puede ser pintado en pantalla y puede recibir eventos.

INTERFAZ GRFICA DE USUARIO


Versin 6.5

Componentes mas utilizados


En Java, algunos de los componentes mas utilizados son: Button, Label, TextField,etc

Label: LblUsuario Button: BtnAceptar

TextField:TxtClave

CARACTERSTICAS DE LA TOO Y UML Herencia


Versin 6.5

HERENCIA

DEFINICIN
Herencia: Creacin de clase a partir de clases existentes. Es una de las caractersticas mas importantes de la programacin 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 ESPECFICA.

* El trmino herencia es utilizado en biologa para referirse a ciertas caractersticas fsicas y de comportamiento que son comunes entre familiares (padres e hijos).

CARACTERSTICAS DE LA TOO Y UML Herencia


Versin 6.5

HERENCIA

EJEMPLOS

Persona

Factura

Vendedor

Cliente

FacturaContado

FacturaCredito

EN CLASE: Proponga otros ejemplos donde se puede apreciar el concepto de herencia.

CARACTERSTICAS DE LA TOO Y UML Interfaces


Versin 6.5

INTERFACES

INTRODUCCIN
Interfaz: Clase abstracta a nivel superior. Es una de las caractersticas mas importantes de la programacin orientada a objetos. Este mecanismo permite abstraer los mtodos a un nivel superior, lo que permite simular la herencia mltiple y obtener ms polimorfismo que el que se puede obtener de una simple jerarqua de clases.

Una interfaz es un conjunto de mtodos que indican que una clase tiene un comportamiento particular adems del que hereda de su superclase.

CARACTERSTICAS DE LA TOO Y UML Interfaces


Versin 6.5

INTERFACES
Una interfaz es como un molde, solamente permite declarar nombres de mtodos (pueden ser public, static y final), listas de argumentos, tipos de retorno y adicionalmente miembros dato. (los cuales solo pueden ser constantes de tipos bsicos de datos).
Jerarquas de clases distintas pueden utilizar la misma interfaz.
INTERFAZ COMN

Animal

Persona

Pajaro Hombre

CARACTERSTICAS DE LA TOO Y UML Interfaces


Versin 6.5

CONCLUSIONES

Las interfaces son utilices para:

Recoger similitudes entre clases no relacionadas forzando una relacin entre ellas. Declarar mtodos que forzosamente una o mas clases tienen que implementar.

Tener acceso a un objeto, para permitir el uso de objetos annimos (til cuando se vende un paquete de clases a otros desarrolladores).

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 10 sesin 02 Objetivos: Solucionar problemas Programacin Visual. bsicos empleando

Comprender los fundamentos de la solucin de problemas con Programacin Visual.

CARACTERSTICAS DE LA TOO Y UML Herencia


Versin 6.5

EJEMPLO PRCTICO
En base a los conceptos tratados en la clase anterior desarrolle la siguiente Jerarqua de Clases.

Figura

JERARQUA DE CLASES [clases entidad]

Circulo

Rectangulo

Cuadrado

CARACTERSTICAS DE LA TOO Y UML Interfaz grfica


Versin 6.5

EJEMPLO PRCTICO Diseo de la Ventana

Algoritmo y Estructura de Datos I

Versin 6.5

Unidad VI:

Estructura Dinmicas Lineales de Datos

Semana 11 a Semana 12

Algoritmo y Estructura de Datos II Semana 11 sesin 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.

Versin 6.5

Algoritmo y Estructura de Datos II Mtodo de las 6D Soluciones Orientadas a Objetos

Versin 6.5

n veces

Diseo Solucin

Clases e Interfases incorporadas en el lenguaje de programacin


Ingeniera reversa

Clase Vector

Desarrollo Solucin

Interfaz Enumeration
Depuracin Pruebas

Algoritmo y Estructura de Datos II

Versin 6.5

Estructuras de Datos
(en memoria principal)

LINEALES

NO LINEALES

Estticas

Dinmicas

Jerrquicas

No jerrquicas

Variables
Arreglos

Listas
Pilas Colas

rboles

Grafos

Forma de organizacin de los datos en la memoria principal del computador

Algoritmo y Estructura de Datos I

Versin 6.5

Estructuras de Datos
(en memoria secundaria)

Archivos
Maana

BD
V

Forma de organizacin de los datos en la memoria secundaria del computador

Algoritmo y Estructura de Datos II

Versin 6.5

Estructuras de Datos
(en memoria principal)

LINEALES

CLASE:

Vector
INTERFAZ:

Estticas

Dinmicas

Enumeration

Variables
Arreglos

Listas
Pilas Colas

ESTRUCTURA DE DATOS ARREGLO - Arreglos


Versin 6.5

VECTORES

DEFINICIN
Vectores: Almacenamiento de datos del mismo tipo. Los vectores son estructuras de datos que consisten en elementos del mismo tipo. Los arreglos son entidades estticas en cuanto a que su tamao 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.

Representacin

ndices vector

vector[0]

vector[1]

vector[2] vector[3]

ESTRUCTURA DE DATOS ARREGLO Arreglo de objetos


Versin 6.5

ARREGLO DE OBJETOS

DEFINICIN
Arreglo de objetos: Almacenamiento de datos compuestos del mismo tipo. Estos permiten almacenar objetos en lugar de datos simples.

Arreglos simples
codigo 10 nombre Danae sueldo 1000.10
0 1 2

Arreglos de objetos
datos
10 Danae 1000.0
0 1 2

( int )
( String ) ( double )

( Empleado )

ESTRUCTURA DE DATOS ARREGLO Arreglo de objetos


Versin 6.5

ARREGLO DE OBJETOS

Danae 1000.0 10
- setNombre() - getNombre() - setSueldo() - getSueldo() - setCodigo() - getCodigo()

datos
10 Danae 1000.0
0 1 2

( Empleado )

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Uso de la clase Vector

Definicin:
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 tamao en forma dinmica a medida que cambian los requerimientos de datos de una aplicacin.

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Uso de la clase Vector


Los objetos de la clase Vector permiten almacenar referencias a objetos de la clase Object. Esto significa, que a travs 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.

Mtodos:
Crear objetos Vector:
1. 2. Vector () Vector (Collection c).

3.
4.

Vector (int initialCapacity).


Vector (int initialCapacity, int capacityIncrement )

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Uso de la clase Vector Mtodos:


Agregar elementos:
1. 2. 3. 4. 5. add (int index, Object element) : void add (Object o) : boolean addAll (Collection c) : boolean addAll (int index, Collection c) : boolean addElement (Object o) : void

Eliminar elementos:
1. 2. 3. 4. 5. 6. 7. 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:
1. insertElementAt (Object o, int index) : void

8.

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Uso de la clase Vector Mtodos:


Buscar elementos:
1. 2. 3. 4. 5. 6. 7. 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

Tamao y capacidad:
1. 2. 3. 4. 5. capacity () : int isEmpty () : boolean setSize (int newSize) : void size () : int trimToSize () : void

Recorrer elementos:
1. 2. 3. 4. elementAt (int index) : Object firstElement () : Object lastElement () : Object get (int index) : Object

Modificar elementos:
1. 2. set (int index, Object o) : Object setElementAt (Object o, int index) : void

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Uso de la clase Vector Mtodos:


Copiar elementos:
1. 2. 3. 4. 5. 6. clone () : Object copyInto (Object [ ] array) : boolean elements () : Enumeration toArray () : Object [ ] toString () : String subList (int fromIndex, toIndex) : List

MTODO 6D SOLUCIONES ORIENTADAS A OBJETOS


Versin 6.5

PROBLEMA 63: ETAPA 1

3.

ENUNCIADO CLARO Y PRECISO DEL PROBLEMA:


Desarrollar una solucin que permita ingresar la nota final (prom) de todos los alumnos de un saln de clase. Muestre el tamao y la capacidad del vector, as como el primer y ultimo elemento almacenado.
Utilice la clase Vector del paquete java.util.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

INTERFASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Uso de la interfaz Enumeration

Definicin:
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 travs de los elementos almacenados en un contenedor tal como un objeto de tipo Vector

El mtodo hasMoreElements() devuelve true si hay mas elementos en el objeto Vector El mtodo nextElement() devuelve una referencia al siguiente objeto en el objeto Vector

MTODO 6D SOLUCIONES ORIENTADAS A OBJETOS


Versin 6.5

PROBLEMA 64: ETAPA 1

3.

ENUNCIADO CLARO Y PRECISO DEL PROBLEMA:


Desarrollar una solucin que permita ingresar los nombres de todos los alumnos de un saln 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.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

MTODO 6D SOLUCIONES ORIENTADAS A OBJETOS


Versin 6.5

PROBLEMA 65: ETAPA 1

3.

ENUNCIADO CLARO Y PRECISO DEL PROBLEMA:


Disear una solucin utilizando una interfaz grfica de usuario que permita manejar los nombres de todos los alumnos de un saln de clase.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
Utilice la clase Vector y la interfaz Enumeration del paquete java.util.

Algoritmo y Estructura de Datos II Mtodo de las 6D Soluciones Orientadas a Objetos

Versin 6.5

n veces

Diseo Solucin

Clases e Interfases incorporadas en el lenguaje de programacin


Ingeniera reversa

Clase Vector

Desarrollo Solucin

Interfaz Enumeration
Depuracin Pruebas

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 11 sesin 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

INTNTALO!! SEMANA 11
Versin 6.5

INTNTALO !!

El profesor del curso explicar los problemas que se han incluido en el PLACE sobre el tema tratado.

MTODO 6D SOLUCIONES DE PROBLEMAS


Versin 6.5

PROBLEMA : 66 ETAPA 1
ENUNCIADO
Desarrollar una solucin que permita ingresar y almacenar el nombre, sueldo y cdigo de los trabajadores de una empresa. Considerar los procesos de registro y control de los datos.

Descripcin Problema

1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Uso de la clase Arrays

Definicin:
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 mtodos estticos.

Mtodos:
sort( ) binarySearch ( ) equals ( ) fill ( )

INTNTALO!! SEMANA 11
Versin 6.5

INTNTALO !!

El profesor del curso explicar los problemas que se han incluido en el PLACE sobre el tema tratado.

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 12 sesin 01

Objetivos : Introduccin a las estructuras de datos tipo : Listas Definicin de listas Representacin de listas: en memoria y en forma de nodos Describir el uso de la clase LinkedList de Java para el manejo de listas

ESTRUCTURA DE DATOS Listas


Versin 6.5

LISTAS

DEFINICIN
Lista: Coleccin 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 tamao a medida que van incorporndose nuevos elementos o eliminando elementos. El orden de la lista se establece mediante referencia a objetos.

Relacin de alumnos 17C 2005-I


1. 2. 3. Alvarez Valderrama, Maritza Margot. Anicama Canales, Pedro David. Aranibar Daz, Aldo Arnaldo.

ESTRUCTURA DE DATOS Listas


Versin 6.5

LISTAS

VENTAJAS
Lista: Coleccin 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 informacin almacenada en la misma.

ESTRUCTURA DE DATOS Listas


Versin 6.5

LISTAS

CLASIFICACIN
LINEALES
LISTAS SIMPLES Nodos que contienen objetos y un enlace al siguiente nodo. LISTAS DOBLES

Estticas

Dinmicas

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.

Variables Arreglos

Listas Pilas

Colas

ESTRUCTURA DE DATOS Listas simples


Versin 6.5

LISTAS SIMPLES

DEFINICIN
Son listas unidireccionales que solo se pueden recorrer del inicio de la lista hasta el final de la lista en un solo sentido.

Operaciones:

Adicin. Recorrido. Bsqueda. Modificacin. Eliminacin. Ordenamiento.

ESTRUCTURA DE DATOS Listas simples


Versin 6.5

LISTAS SIMPLES
DEFINICIN Llamadas tambin unidireccionales: slo se pueden recorrer del principio hacia el final. info: contiene informacin asociada al elemento sig : Campo de enlace, contiene la direccin de memoria donde se encuentra ubicado el siguiente elemento de la lista. Adicionalmente se utiliza una variable llamada cabecera, la cual contiene la direccin del primer nodo de la Lista. Asimismo, el campo de enlace del ltimo nodo contiene una direccin nula. ESTRUCTURA DE UN NODO

sig info

ESTRUCTURA DE DATOS Listas simples


Versin 6.5

LISTAS SIMPLES
REPRESENTACIN GRFICA
cabecera

null

Ejemplo: selecciones que han obtenido el campeonato mundial de ftbol: Brasil, Italia, Argentina, Francia. Ordenar alfabticamente los elementos de la Lista Cuando se ordenan los elementos, slo se intercambia el contenido del campo info; no se cambian las direcciones de memoria.

ESTRUCTURA DE DATOS Listas simples


Versin 6.5

LISTAS SIMPLES

REPRESENTACIN
EN MEMORIA: VISUALMENTE:

nombre
1

siguiente
3
5 0 2 1 fin

Almond
Agero Alva Acua Alarcn

Relacin de alumnos 21D 2005-I


1. 2. 3. 4. 5. Acua Azarte, Maritza Haydee. Agero Herrera, Jorge Alberto. Alarcn Suarez, Juan Jos. Almond Ruiz, George William. Alva Pimentel, Csar Eduardo.

inicio

2
3 4 5

A travs del uso de listas simples podemos acceder a los datos recorrindolos hacia delante hasta el final.

ESTRUCTURA DE DATOS Listas simples


Versin 6.5

LISTAS SIMPLES

REPRESENTACIN
EN NODOS: VISUALMENTE:

cabecera
Acua

Relacin de alumnos 21D 2005-I


sig
Agero

sig

Alarcn

null
1

1. 2. 3.

Acua Azarte, Maritza Haydee. Agero Herrera, Jorge Alberto. Alarcn Suarez, Juan Jos.

A travs del uso de listas simples podemos acceder a los datos recorrindolos hacia delante hasta el final.

ESTRUCTURA DE DATOS Listas simples


Versin 6.5

LISTAS SIMPLES

EJEMPLO
Inicio (cabecera)

Lista

Relacin de alumnos 21D 2005-I


1. 2. 3. 4. 5. Acua Azarte, Maritza Haydee. Agero Herrera, Jorge Alberto. Alarcn Suarez, Juan Jos.
(siguiente)

Elemento o nodo
(datos simples)

Almond Ruiz, George William. Alva Pimentel, Csar Eduardo. Fin (null)

CLASES INCORPORADAS EN EL LENGUAJE DE PROGRAMACIN


Versin 6.5

Uso de la clase LinkedList

Definicin:
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.

MTODO 6D SOLUCIONES DE PROBLEMAS


Versin 6.5

PROBLEMA 67: ETAPA 1

ENUNCIADO
Disee una aplicacin para almacenar y administrar los datos de empleados de una empresa, considere lo siguientes datos: cdigo y nombre.

Descripcin Problema

1. Identificacin del problema.


2. Descripcin general del problema. 3. Descripcin de la estructura de datos a utilizar

Utilice la clase LinkedList.

MTODO 6D SOLUCIONES DE PROBLEMAS


Versin 6.5

PROBLEMA 67: ETAPA 2

Diseo de la Solucin

1. Diseo de ventana

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 12 sesin 02

Objetivos : Introduccin a las estructuras de datos tipo : pilas y colas. Definicin y clasificacin de las pilas. Descripcin de la implementacin de pilas con vectores y listas. Definicin de las colas. Representacin de las colas

ESTRUCTURA DE DATOS Pilas


Versin 6.5

PILAS

CLASIFICACIN
LINEALES
PILAS Estructura de datos lineales, dinmicas.

Estticas

Dinmicas
C B Cima

Variables Arreglos

Listas Pilas

Elemento

Colas

ESTRUCTURA DE DATOS Pilas


Versin 6.5

PILAS

DEFINICIN
Pila: Coleccin 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).

ESTRUCTURA DE DATOS Pilas


Versin 6.5

PILAS

CARACTERISTICAS
Utiliza una Estructura lineal para implementarla esta puede ser: Lista

Arreglo
El acceso a la pila se hace a travs de sus operaciones apilar (push) y desapilar (pop) No se puede recorrer

ESTRUCTURA DE DATOS Pilas


Versin 6.5

PILAS

OPERACIONES
Agregar (apilar)
Agrega un elemento a la pila. Pila empujada hacia abajo.

Empujar (push).

Eliminar (desapilar)
Retira un elemento de la pila. Validacin de la pila vaca.

Retirar (pop).

ESTRUCTURA DE DATOS Pilas


Versin 6.5

PILAS

REPRESENTACIN

Apilar

Desapilar

C B A

Cima

Elemento

LIFO (primero en entrar, ltimo en salir).

ESTRUCTURA DE DATOS Pilas


Versin 6.5

REPRESENTACIN DE UNA PILA

ESTRUCTURA DE DATOS Pilas


Versin 6.5

EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

ESTRUCTURA DE DATOS Pilas


Versin 6.5

EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

ESTRUCTURA DE DATOS Pilas


Versin 6.5

EJEMPLOS DEL USO DE UNA PILA COMPROBAR PARENTESIS

ESTRUCTURA DE DATOS Pilas


Versin 6.5

PILAS

IMPLEMENTACIN
UTILIZANDO VECTORES

C B A x [-1]
PILA VACA ndice -1 CIMA PILA ndice ltimo elemento ingresado

A x [0]

B x [1]

C x [2]
i=7

ESTRUCTURA DE DATOS Pilas


Versin 6.5

PILAS

IMPLEMENTACIN
UTILIZANDO LISTAS

C B A x [-1]
PILA VACA ndice -1 CIMA PILA ndice ltimo elemento ingresado

C
1

B
2

A
3

fin

ESTRUCTURA DE DATOS Colas


Versin 6.5

COLAS

DEFINICIN
Cola: Coleccin 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 slo en el otro extremo, llamado ltimo. Las colas abundan en la vida diaria. Ejemplo La cola del autobs La cola de la impresora

ESTRUCTURA DE DATOS Colas


Versin 6.5

COLAS

CARACTERISTICAS
Utiliza una Estructura lineal para implementarla esta puede ser: Lista

Arreglo
El acceso a la cola se hace a travs de sus operaciones por un extremo se inserta y por el otro se retira. No se puede recorrer

ESTRUCTURA DE DATOS Colas


Versin 6.5

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

ESTRUCTURA DE DATOS Colas


Versin 6.5

COLAS

REPRESENTACIN
Decolar
D A

Acolar

A B C

primero

ultimo

FIFO (primero en entrar, primero en salir).

ESTRUCTURA DE DATOS Colas


Versin 6.5

COLAS

IMPLEMENTACIN
UTILIZANDO VECTORES

cola [ ]

B C max primero ultimo

FIFO (primero en entrar, primero en salir).

Algoritmo y Estructura de Datos I

Versin 6.5

Unidad VI:

Estructuras Dinmicas No Lineales De Datos

Semana 13 a Semana 14

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 13 sesin 01

Objetivos : Introduccin a la recursividad Recursividad en la programacin y ejemplos de recursividad Metodos Recursivos Definicin de rboles Caractersticas de los rboles rboles binarios

ESTRUCTURA DE DATOS Recursividad


Versin 6.5

METODOS RECURSIVOS Se define un mtodo recursivo cuando puede llamarse a si mismos Se debe consideran dentro de los mtodos recursivos lo siguiente:

Parmetros
Condicin antes de invocarse Debe tener un fin

ESTRUCTURA DE DATOS Recursividad


Versin 6.5

RECURSIVIDAD EN LA PROGRAMACION

Se puede utilizar la recursividad como una alternativa a la iteracin.


La recursividad la encontramos en variables recursivas y mtodos recursivos Eficiente en trminos de tiempo de computadora que una solucin iterativa debido a las operaciones auxiliares que llevan consigo las llamadas suplementarias a las funciones. La solucin recursiva muchas veces permite a los programadores especificar soluciones naturales, que en otros casos sera difcil de resolver.

ESTRUCTURA DE DATOS Recursividad


Versin 6.5

EJEMPLOS DE RECURSIVIDAD

Algunas ejemplos de recursin:


Factorial -- n! = n (n-1)! Sucesin de Fibonacci -- f(n) = f(n-1) + f(n-2)

Nmeros de Catalan -- C(2n, n)/(n+1)


Las Torres de Hanoi Funcin de Ackermann

ESTRUCTURA DE DATOS Recursividad


Versin 6.5

EJEMPLOS DE METODOS RECURSIVOS Funcin recursiva para calcular el factorial de un nmero entero. n! = n * (n-1) * (n-2) * ... * 1 No se puede calcular el factorial de nmeros negativos, y el factorial de cero es 1, de modo que una funcin bien hecha para clculo de factoriales debera incluir un control para esos casos:

ESTRUCTURA DE DATOS Recursividad


Versin 6.5

EJEMPLOS DE RECURSIVIDAD Llamada al mtodo recursivo int x=factorial(5); /* Funcin recursiva para clculo de factoriales */ public int factorial(int n) {

if(n ==1)
return 1; else

return n*factorial(n-1); /* Recursividad */


}

ESTRUCTURA DE DATOS Recursividad


Versin 6.5

EJEMPLOS DE METODOS RECURSIVOS Disee un mtodo recursivo que permita la potencia de un numero A elevado a B Anlisis 32=3*3

32=3*31=3*3*30 =3*3*1

ESTRUCTURA DE DATOS Recursividad


Versin 6.5

EJEMPLOS DE RECURSIVIDAD Llamada al mtodo recursivo int x=potencia(3,2); /* Funcin recursiva para clculo de potencia */ public int potencia(int a,int b) {

if(b ==0)
return 1; else

return a*potencia(a,b-1); /* Recursividad


*/ }

ESTRUCTURA DE DATOS rboles


Versin 6.5

DEFINICION DE ARBOL
Los rboles son estructuras de datos jerarquizadas, organizadas y dinmicas: formada por un conjunto de nodos y un conjunto de aristas que conectan pares de nodos. Jerrquica porque los componentes estan a distinto nivel. Organizada porque importa la forma en que este dispuesto el contenido. Dinmica porque su forma, tamao y contenido pueden variar durante la ejecucin. El primer nodo se le conoce con el nombre de RAIZ

ESTRUCTURA DE DATOS rboles


Versin 6.5

REPRESENTACION DE UN ARBOL

a b e f c d
E

RAIZ

Representation Textual

Representacin Nodal

ESTRUCTURA DE DATOS rboles


Versin 6.5

CARACTERISTICAS Todo rbol tiene un nico nodo raz. Todo nodo, excepto la raz 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 raz a cada nodo. Todo nodo que no tiene mas ramificaciones se le conoce como nodo terminal u hoja.

ESTRUCTURA DE DATOS rboles


Versin 6.5

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 mximo grado de todos los nodos. Nivel, es el nmero de aristas o arcos que deben ser recorridos para llegar a un determinado nodo. Altura, es el mximo nmero de niveles de todos los nodos del rbol.

ESTRUCTURA DE DATOS rboles


Versin 6.5

CARACTERISTICAS DE LOS RBOLES

A
Grado 2 E H Grado del Arbol 3 B F I C D

raiz hijos

G
hojas Nivel 3

ESTRUCTURA DE DATOS rboles


Versin 6.5

APLICACIONES DE RBOLES

Representacin de un rbol genealgico. Representacin de operaciones algebraicas. Para realizar la administracin de directorios como para UNIX, DOS, Windows. Crear directorio de ficheros, etc.

ESTRUCTURA DE DATOS rboles


Versin 6.5

RBOLES BINARIOS Son los rboles cuyo grado es 2 como mximo.

Se dice que es un rbol binario si tiene 0, 1 o 2 hijos

ESTRUCTURA DE DATOS rboles


Versin 6.5

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 - Recorrer el sub-arbol izquierdo. - Visitar la raiz. - Recorrer el sub-arbol derecho.

Post-Orden (Postfijo) IDR - Recorrer el sub-arbol izquierdo. - Recorrer el sub-arbol derecho. - Visitar la raiz.

ESTRUCTURA DE DATOS rboles


Versin 6.5

A B D E

C
F

PreOrden (RID): _____________ InOrden (IRD): _____________ PostOrden (IDR): _____________

PreOrden (RID): ABDGCEHIF InOrden (IRD): DGBAHEICF PostOrden (IDR): GDBHIEFCA

ESTRUCTURA DE DATOS rboles


Versin 6.5

A
B C E F G D

PreOrden (RID): _____________ InOrden (IRD): _____________

PostOrden (IDR): _____________


H

ESTRUCTURA DE DATOS rboles


Versin 6.5

RBOLES BINARIOS DE BSQUEDA


Definicin: Un rbol binario de bsqueda tambin llamado rbol ordenado es aquel donde se cumple que nodos menores que la raz van a la izquierda y los que son mayores que la raz van a la derecha. Los nodos insertados en rboles de bsqueda binarios se insertan como hojas.

ESTRUCTURA DE DATOS rboles


Versin 6.5

REPRESENTACIN DE UN ARBOL ORDENADO

6 4 1 5 9 1 4 5

6 9

ESTRUCTURA DE DATOS rboles


Versin 6.5

INSERCION DE UN ELEMENTO A UN ARBOL (AGREGAR)


Se crea un nuevo elemento Si la raz esta vaca entonces raz ser el nuevo elemento Si la raz tiene datos, comparamos si es menor se va a la izquierda y si es mayor a la derecha siempre y cuando sea una hoja
nuevo raiz null

(d)
9

nuevo raiz

(b)
nuevo raiz

raiz

raiz

6 6 (c)
4 4

(a)

9
(e)

ESTRUCTURA DE DATOS rboles


Versin 6.5

IMPLEMENTACION DE LA CLASE ARBOL: RECORRER (PROFUNDIDAD)


public class Arbol { Elemento raiz ;

EJEMPLO:

public String inOrden( Elemento p){ if(p != null) return inOrden(p.izq) + " " + p.info + "\n" + inOrden(p.der); return ""; } public String preOrden( Elemento p){ if(p != null) return p.info + "\n"+preOrden(p.izq) + " " + preOrden(p.der); return ""; } public String postOrden( Elemento p){ if(p != null) return postOrden(p.izq) + postOrden(p.der)+ p.info + \n " +; return ""; }

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 13 sesin 02

Objetivos : Definicin de Grafos. Ejemplos aplicativos

Algoritmo y Estructura de Datos I

Versin 6.5

Estructuras de Datos
(en memoria principal)

LINEALES

NO LINEALES

Estticas

Dinmicas

Jerrquicas

No jerrquicas

Variables
Arreglos

Listas
Pilas Colas

Arboles

Grafos

Forma de organizacin de los datos en la memoria principal del computador

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS DEFINICIN
Un grafo es una estructura de datos compuesta por vrtices y arcos. Es la representacin grfica de los datos de una situacin particular. Los grafos representan conjuntos de objetos que no tienen restriccin de relacin entre ellos. Un grafo puede representar varias cosas de la realidad cotidiana, tales como mapas de carreteras, vas frreas, circuitos elctricos, etc

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS

DEFINICIN
Un grafo, G, es un par ordenado de V y A, donde V es el conjunto de vrtices o nodos del grafo.Un vrtice puede tener 2 o ms aristas, pero toda arista debe unir exactamente a dos vrtices. V= A,B,C,D,E,F,G,H,I,J,K,L

ARCOS : JK,EG,GE,etc NO ARCOS : AC, BG, BF, etc

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS

APLICACIONES
Gracias a la teora de Grafos se pueden resolver diversos problemas como por ejemplo la sntesis de circuitos secuenciales, contadores o sistemas de apertura. Los grafos se utilizan tambin para modelar trayectos como el de una lnea de autobs a travs 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 administracin de proyectos, utilizamos tcnicas como PERT en las que se modelan los mismos utilizando grafos y optimizando los tiempos para concretar los mismos.

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS

La notacin G = A ( V, A ) se utiliza comnmente para identificar


un grafo. Los grafos se constituyen principalmente de : aristas, vrtices y los caminos que pueda contener el mismo grafo.

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS Conceptos:
Aristas: Son las lneas con las que se unen los vrtices de un grafo y con las que se construyen tambin caminos. Si la arista carece de direccin se denota indistintamente {a,b} o {b,a}, siendo a y b los vrtices que une. S {a,b} es una arista, a los vrtices a y b se les llama extremos

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS Conceptos:
Vrtices: Son los puntos o nodos con los que est conformado un grafo. Llamaremos grado de un vrtice al nmero de aristas de las que es un extremo. Se dice que un vrtice es par o impar segn sea su grado.

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS Conceptos:
Caminos: Sean x, y V, se dice que hay un camino en G de x a y si existe una sucesin finita no vaca de aristas {x,V1}, {V1,V2},.....{Vn,Y}. En este caso x e y se llaman los extremos del camino. El nmero de aristas del camino se llama la longitud del camino.

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS Clasificacin:
Podemos clasificar los grafos en dos grupos : dirigidos y no dirigidos. En un grafo no dirigido.- el par de vrtices 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 dgrafo.- es aquel en el que sus arcos tienen una orientacin. Cada arco est representado por un par ordenado de vrtices, de forma que representen dos arcos diferentes.

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS Ejemplo 1:
G1 = ( V1, A1 )
V1 = {1, 2, 3, 4} A1 = { (1,2), (1,3), (1,4), (2,3), (2,4), (3,4) }

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS Ejemplo 2:
G2 = ( V2, A2 )
V2 = {1, 2, 3, 4, 5, 6} A2 = { (1, 2), (1, 3), (2, 4), (2, 5), (3, 6) }

2
1 3

6
5

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS Ejemplo 3:
G3 = ( V3 , A3 )
V3 = { 1, 2 , 3 } A2 = { < 1, 2 >, < 2 , 1 >, < 2, 3 > }

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS Algoritmo de PRIM:


Es un algoritmo de la teora de grafos para encontrar un subconjunto de aristas que forman un grafo con todos los vrtices, en donde el peso total de todas las aristas en el grafo es el mnimo camino posible.

Ejemplo:

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS
Pseudocdigo del algoritmo PRIM:
Entrada: Un grafo ponderado conexo con todos sus pesos diferentes. Salida: Las aristas de un rbol generador minimal. i : = 1; N := tamao del grafo de Entrada en nmero de vrtices; mientras (i < N) hacer escoger la arista de peso mnimo A de entre todas las que an no han sido escogidas si la Salida an est vaca, es decir, que estamos en la primera iteracin 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 aadir A a la Salida; i := i + 1; Fin_si Fin_mientras

ESTRUCTURA DE DATOS Grfos


Versin 6.5

GRAFOS EJEMPLO:Ejecucin de un grafo usando Applet

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 14

Objetivos : Definicin de Archivos Tipos de archivos Archivos textos Clasificacin Diagrama de Bloques Clase Archivo. Introduccin

Algoritmo y Estructura de Datos I Mtodo de las 6D Soluciones con dos paquetes (sin objeto)

Versin 6.5

n veces

Estructuras de Datos
Ingeniera reversa

Diseo Solucin

Archivos texto.

Desarrollo Solucin

Depuracin Pruebas

ESTRUCTURA DE DATOS Archivos


Versin 6.5

Semana 14 Sesin 01

Estructura de Datos Archivo Definicin:


Una estructura de Datos Archivo es una coleccin de datos que se almacenan en un almacenamiento secundario (dispositivos tales como discos, diskettes, cds, etc). Los datos de un archivo pueden ser ledos y utilizados por otros medios.
Operaciones bsicas:

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.

ESTRUCTURA DE DATOS Archivos


Versin 6.5

Semana 14 Sesin 01

Estructura de Datos Archivo Tipos:


Archivos de TEXTO: Archivos BINARIOS: 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.

Su contenido es totalmente textual, es decir solo se guardan caracteres ASCII. Dichos archivos por lo general tienen extensin 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 tambin como archivos planos.

ESTRUCTURA DE DATOS Archivos


Versin 6.5

Semana 14 Sesin 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 codigo nombre sueldo Tipo de Dato TEXTO TEXTO NUMERO 10 40 12 2 Longitud

ESTRUCTURA DE DATOS Archivos


Versin 6.5

Semana 14 Sesin 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 bsicas con un archivo texto.

Mtodos:
abrirArchivo(): cerrarArchivo(): eof(): grabarDatos(): leerDatos(): totalRegistros(): Permite abrir un archivo de texto. Si el archivo de texto no existe automticamente crea el archivo. Permite cerrar un archivo de texto. Permite indicar que se ha llegado al fin del archivo. Permite grabar los datos en un archivo de texto. Permite leer datos de un archivo de texto. Indica la cantidad total de registros que contiene el archivo.

La clase Archivo tiene tambin atributos y otros mtodos. Dichos atributos y mtodos son privados por lo que son utilizados internamente por los mtodos que aqu se detallan.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

Semana 14 Sesin 01

PROBLEMA : ETAPA 1

ENUNCIADO

Descripcin Problema

Desarrolle una solucin que permita almacenar el nombre y la clave de todos los usuarios de una aplicacin 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 bsicas con un archivo texto.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

Semana 14 Sesin 01

PROBLEMA : ETAPA 3

1. NOMBRE DEL PROYECTO: ProyArchivoUsuarios 2. DIAGRAMA DE PAQUETES:


Diagrama de paquetes

Diseo Solucin

3. DEFINICIN DE CLASES:

4. DEFINICIN DE LA ESTRUCTURA DEL ARCHIVO:

Desarrollar la definicin de clases y la estructura del archivo.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

Semana 14 Sesin 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 Solucin

Explique detalladamente

ESTRUCTURA DE DATOS Archivos


Versin 6.5

Semana 14 Sesin 02

ARCHIVOS TEXTOS O PLANOS Clasificacin por funcin:


Maestro : Son aquellos que poseen datos permanentes, no cambian fcilmente su contenido. Ejemplo: Maestro de alumnos, profesores, artculos, clientes, proveedores.
Son archivos que se actualizan constantemente. Ejemplo: archivo de notas, cuenta corriente, entradas y salidas de materiales. Son archivos con informacin que no tiene vigencia a la fecha y se referencia cuando se necesita cualquier informacin histrica.

Transacciones :

Histricos :

Back-up :
Temporales :

Son archivos de respaldo.


Son archivos que se crean de forma momentnea y luego se eliminan.

ESTRUCTURA DE DATOS Archivos


Versin 6.5

Semana 14 Sesin 02

ARCHIVOS TEXTOS O PLANOS Clasificacin por acceso:


SECUENCIAL : Los registros estn organizados de la forma que fueron grabados.

INDEXADO :

Los registros estn ordenados por un campo o conjunto de campos determinado.

a = codigo b = nombre c = sexo

ordenado por el campo a

ESTRUCTURA DE DATOS Archivos


Versin 6.5

Semana 14 Sesin 02

ARCHIVOS TEXTOS O PLANOS Diagrama de bloque:


Es mediante el cual se muestran todas las entradas y salidas de un programa determinado. Extindase por entrada informacin necesaria para producir la salida en base a un proceso determinado.

Alumno.dat
PrgCalculo

Proceso de Calculo

becas.dat

reporte

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)


Versin 6.5

Semana 14 Sesin 02

PROBLEMA : ETAPA 1

ENUNCIADO

Descripcin Problema

Desarrolle una solucin que permita almacenar el cdigo, nombre, apellido y promedio final de los alumnos de un saln 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 bsicas con un archivo texto.

PROPUESTOS!! SEMANA 14
Versin 6.5

Semana 14 Laboratorio

PROPUESTO 14-01

ENUNCIADO DEL PROBLEMA Desarrolle una solucin que permita almacenar el nombre y la clave de todos los usuarios de una aplicacin 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 bsicas con un archivo texto.

PROPUESTOS!! SEMANA 14
Versin 6.5

Semana 14 Laboratorio

PROPUESTO 14-02

ENUNCIADO DEL PROBLEMA Desarrolle una solucin que permita almacenar el cdigo, nombre y la clave de todos los usuarios de una aplicacin 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 bsicas con un archivo texto.

PROPUESTOS!! SEMANA 14
Versin 6.5

Semana 14 Laboratorio

PROPUESTO 14-03

ENUNCIADO DEL PROBLEMA Desarrolle una solucin que permita almacenar el cdigo, nombre, apellido y las 2 notas de los alumnos de un saln 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 bsicas con un archivo texto.

PROPUESTOS!! SEMANA 14
Versin 6.5

Semana 14 Laboratorio

PROPUESTO 14-04

ENUNCIADO DEL PROBLEMA

Desarrollar una solucin que permita almacenar los cdigos y nombres de todos los empleados de una empresa en un archivo de texto denominado empleados.dat.
Utilice la interfaz grfica mostrada y la clase Archivo para el manejo de operaciones bsicas con un archivo texto.

ADICIONAR MOSTRAR

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

INTENTALO!! SEMANA 14
Versin 6.5

INTENTALO 14-01 !!

ENUNCIADO DEL PROBLEMA

Desarrollar una solucin que permita implementar la interfaz grfica mostrada.


Utilice la clase Archivo para el manejo de operaciones bsicas con un archivo texto.

El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.

Algoritmo y Estructura de Datos I

Versin 6.5

Unidad VII:

Programacin Grfica

Semana 15

Algoritmo y Estructura de Datos I

Versin 6.5

Semana 15 sesin 1 y 2

Objetivos :

Introduccin a la Programacin Grfica

Algoritmo y Estructura de Datos I

Versin 6.5

PROGRAMACION GRAFICA Estas funciones permiten dibujar grficos en la pantalla. El API de Java nos permite fcilmente:

Dibujar lneas de cualquier anchura


Rellenar formas con gradientes y texturas Mover, rotar, escalar y recortar texto y grficos. Componer texto y grficos solapados.

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

PROGRAMACION GRAFICA Por ejemplo, podramos usar el API de Java para mostrar grficos y charts complejos que usan varios estilos de lnea y de relleno para distinguir conjuntos de datos, como se muestra en la siguiente figura:

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

PROGRAMACION GRAFICA Esto comprende aprender conocimientos bsicos sobre herramientas, libreras y APIs y desarrollar aplicaciones grficas con un lenguaje de programacin. Introducir el manejo de algunas libreras conocidas y explicar no solo su uso, tambin su integracin en Java o C++.

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

PROGRAMACION GRAFICA Para el caso de Java, por ejemplo, para comenzar a trabajar con grficos se debe de importar un paquete que permite realizar este tipo de funciones, llamado Graphics.

import java.awt.Graphics;

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

Mtodos para hacer grficos:


drawLine( x1,y1,x2,y2 ) drawRect( x,y,ancho,alto ) fillRect( x,y,ancho,alto )

clearRect( x,y,ancho.alto )
drawRoundRect( x,y,ancho,alto,anchoArco,altoArco ) fillRoundRect( x,y,ancho,alto,anchoArco,altoArco )

draw3DRect( x,y,ancho,alto,boolean elevado )


fill3DRect( x,y,ancho,alto,boolean elevado )

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

Mtodos para hacer grficos:


drawOval( x,y,ancho,alto ) fillOval( x,y,ancho,alto ) drawArc( x,y,ancho,alto,anguloInicio,anguloArco )

fillArc( x,y,ancho,alto,anguloInicio,anguloArco )
drawPolygon( int[] puntosX,int[] puntosY[],numPuntos ) fillPolygon( int[] puntosX,int[] puntosY[],numPuntos )

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

EJEMPLOS
// 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));

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

EJEMPLO 1:

Dibujar lo siguiente:

import java.awt.Graphics; public void paint(Graphics g) { g.drawLine(25,25,300,150); } }

importando el paquete Graphics

public class Linea extends java.applet.Applet {

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

EJEMPLO 2:

Dibujar lo siguiente:

import java.awt.Graphics;
public class Ejemplo2 extends java.applet.Applet { public void paint(Graphics g) {g.drawRoundRect(40,40,120,120,20,20); } }

ESTRUCTURA DE DATOS Programacin Grfica

Versin 6.5

EJEMPLO 3:

Dibujar lo siguiente:

import java.awt.Graphics;
public class Ejemplo3 extends java.applet.Applet { public void paint(Graphics g) { g.fillArc(120,20,60,60,90,180); } }

Versin 6.5

Algoritmo y Estructura de Datos I


2006 - I

GUA TERICA DEL DOCENTE.


Todos los derechos reservados.

Anda mungkin juga menyukai