You are on page 1of 269

UNIVERSIDAD DE SAN MARTN DE PORRES.

FACULTAD DE INGENIERIAS Y ARQUITECTURA FIA

Algoritmo y Estructura de Datos I 2004 - I

Gua desarrollada por los profesores del curso.

Algoritmo y Estructura de Datos I

Semana 01 sesin 01

Algoritmo y Estructura de Datos I

Semana 01 sesin 01 Objetivos: Identificar las etapas de un mtodo para solucionar problemas utilizando la computadora. Describir cada una de las etapas del mtodo. Enumerar los pasos y resultados de cada una de las etapas del mtodo. Resumen del mtodo.

Algoritmo y Estructura de Datos I

Semana 01 sesin 01
Descripcin Problema

Definicin
Solucin

n veces

Diseo
Solucin

Ingeniera reversa

Desarrollo
Solucin

METODO 6D.

Depuracin
Pruebas

Document.

Algoritmo y Estructura de Datos I

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA.

ETAPAS Etapa 1 Descripcin del problema. Etapa 2 Definicin de la solucin. Etapa 3 Diseo de la solucin. Etapa 4 Desarrollo de la solucin. Etapa 5 Depuracin y pruebas. Etapa 6 Documentacin.

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA

ETAPA 1 Descripcin del problema

Descripcin Problema

Identificacin del problema. Descripcin general del problema. Enunciado claro y preciso del problema.

ENUNCIADO ENUNCIADO

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA

ETAPA 2 Definicin de la solucin.

Definicin Solucin

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

ESPECIFICACIONES ESPECIFICACIONES

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA

ETAPA 3 Diseo de la solucin.

Diseo Solucin

Definir un nombre para el proyecto. Definicin de diagramas y relaciones. Desarrollo de Algoritmos.

DIAGRAMASY Y DIAGRAMAS ALGORITMOS ALGORITMOS

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA

ETAPA 4 Desarrollo de la solucin. Codificar el proyecto. Desarrollar comentarios internos en los programas de computadora. Desarrollar copias de seguridad de los programas de computadora.

Desarrollo Solucin

PROGRAMAS PROGRAMAS

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA

ETAPA 5 Depuracin y pruebas.

Depuracin Pruebas

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

RESULTADOS RESULTADOS

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA

ETAPA 6 Documentacin.

Document.

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

Manuales

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA

METODO 6D.
Descripcin Problema

Definicin
Solucin

n veces

Diseo
Solucin

Ingeniera reversa

Desarrollo
Solucin

Depuracin
Pruebas

Document.

METODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA

Ingeniera reversa.
n veces

Diseo Solucin Desarrollo Solucin Depuracin Pruebas

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. Pasos: Exportar proyecto a disco desde un IDE, si trabaja en l (*.class o *.java). Importar proyecto a herramienta CASE para realizar la ingeniera reversa. Organizar el modelo obtenido en al CASE.

RESUMEN SEMANA 01 SESIN 01

Temas Tratados

Descripcin Problema

Definicin
Solucin

n veces

Diseo
Solucin

Ingeniera reversa

Desarrollo
Solucin

METODO 6D.

Depuracin
Pruebas

Document.

Algoritmo y Estructura de Datos I

Semana 01 sesin 01 Objetivos: Definir cada uno de los conceptos bsicos de la teora de objetos. Ejemplificar cada uno de los conceptos bsicos de la teora de objetos. Definir el concepto de modelamiento. Definir la notacin a utilizar para el modelamiento.

Algoritmo y Estructura de Datos I

Semana 01 sesin 01

n veces

MODELAMIENTO
Ingeniera reversa

Diseo Solucin

Desarrollo Solucin

Herramienta:
Depuracin Pruebas

RATIONAL ROSE

Notacin: UML

Algoritmo y Estructura de Datos I

CONCEPTOS BASICO DE LA TEORIA DE OBJETOS.

Conceptos bsicos Objeto / Instancia.


- Datos.

Clases.
- Mtodos. - Atributos.

Paquetes.

CONCEPTOS BSICOS DE LA TEORA DE OBJETOS

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.

CONCEPTOS BSICOS DE LA TEORA DE OBJETOS

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 refencia a ningn objeto en particular.

Carpeta. Perro.

CONCEPTOS BSICOS DE LA TEORA DE OBJETOS

PAQUETES. DEFINICIN
Paquete: Conjunto de clases similares. Un paquete permiten organizar las clases. Un paquete contiene clases que tienen funciones similares.

DominioDeLProblema. DominioDeLaAplicacin. Biblioteca.

Algoritmo y Estructura de Datos I CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML. Modelamiento Definicin. Notacin. Ejemplo. Diagramas.
UML

Definicin. Notacin. Diagramas generales. Diagrama de Paquetes y dependencia. Diagrama de Clases y asociacin.

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML

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 UTILIZANDO UML

LENGUAJE UNIFICADO DE MODELADO 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 UTILIZANDO UML

LENGUAJE UNIFICADO DE MODELADO UML. NOTACIN


Todo modelo se construye en base a una notacin. As los modelos matemticos usan una notacin matemtica, los modelos de clases usan la notacin UML (Unified Modeling Languaje), que es hoy un estndar informtico.

Objetos

nombreObjeto : NombreClase

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML

LENGUAJE UNIFICADO DE MODELADO UML. NOTACIN


NombreClase

Clases

(NombrePaquete al que pertenece)

Atributos Mtodos

Paquetes

NombrePaquete

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML

LENGUAJE UNIFICADO DE MODELADO UML. NOTACIN


NombreClase

Clases

(NombrePaquete al que pertenece)

Atributos Mtodos

Paquetes

NombrePaquete

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML

LENGUAJE UNIFICADO DE MODELADO UML. EJEMPLO


Pedro Luis Carbajal. 30 aos. nombres. apeelidos. edad. correr(). caminar(). saltar(). objHombre1 : Hombre Hombre
(SeresVivos)

nombres apellidos edad correr() caminar()

SeresVivos

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML

LENGUAJE UNIFICADO DE MODELADO UML. EJEMPLO


Hombre
(SeresVivos)

nombres apellidos edad

Qu datos manejan los objetos?.


Expresado en:

Estructuras de Datos.

correr() caminar()

Qu pueden hacer los objetos?.


Expresado en:

Algoritmos.

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML

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 Componentes


Component Component Diagrams Diagramas Diagrams de

Scenario Scenario Diagramas de Diagrams Diagrams Estados

Diagramas de Actividad

Distribucin

CONCEPTOS BSICOS DE MODELAMIENTO UTILIZANDO UML

LENGUAJE UNIFICADO DE MODELADO UML. DIAGRAMA DE PAQUETE


La dependencia es una relacin que se puede establecer entre dos o mas 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 DominioDelProblema (el sentido de la flecha marca la dependencia).

DEPENDENCIA

RESUMEN SEMANA 01 SESIN 01

Temas Tratados
n veces

Diseo Solucin

Ingeniera reversa
Desarrollo Solucin

MODELAMIENTO

Depuracin Pruebas

Herramienta:
RATIONAL ROSE

Notacin: UML

Algoritmo y Estructura de Datos I

Semana 01 sesin 02

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 las herramientas empleadas para definir los mtodos de las clases. Pseudocdigo. Diagrama de Flujo.

Algoritmo y Estructura de Datos I

Semana 01 sesin 02

n veces

ALGORITMO
Ingeniera reversa

Diseo Solucin

Desarrollo Solucin

Herramientas:
Depuracin Pruebas

Pseudocdigo Diagrama de flujo

Algoritmo y Estructura de Datos I ALGORITMOS CONCEPTOS BSICOS.

ALGORITMO Generalidades. Introduccin. Definicin. Caractersticas. Herramientas.

ALGORITMO - CONCEPTOS BASICOS

GENERALIDADES En Informtica el trmino algoritmo se utiliza para describir un mtodo empleado para definir (expresar) los mtodos de las clases. Qu pueden hacer los objetos?.
Expresado en:
correr() caminar()

Ejemplo
Hombre
(SeresVivos)

nombres apellidos edad

Algoritmo

ALGORITMO - CONCEPTOS BASICOS

GENERALIDADES Se disean a travs de los algoritmos Datos PROCESOS Informacin

Almacenamiento

ALGORITMO - CONCEPTOS BASICOS

INTRODUCCIN Ejemplo
Hombre
(SeresVivos)

Un Algoritmo es un mtodo de solucin de problemas para definir los mtodos de una clase.

nombres apellidos edad

Como caminar los hombres?.


Desarrollar un algoritmo para el mtodo correr()

correr() caminar()

Solucin ?

Por lo tanto es el mtodo y no el programa el que debe estudiarse para comprender como est siendo abordado un determinado problema.

ALGORITMO - CONCEPTOS BASICOS

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 BASICOS

CARACTERSTICAS

Una descripcin de acciones que deben ser ejecutadas (Pasos Secuenciales). Una descripcin de los datos que son manipulados por estas acciones (Estructuras de Datos). Un algoritmo debe ser preciso indicando el orden de realizacin de cada paso. Todo algoritmo debe ser finito. Si se sigue un algoritmo este debe terminar en algn momento. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces se debe obtener el mismo resultado.

ALGORITMO - CONCEPTOS BASICOS

CARACTERSTICAS

Un algoritmo puede tener o no datos de entrada. Un algoritmo producir uno o mas datos de salida. Los datos de entrada y salida deben almacenarse en variables. El resultado que se obtenga debe satisfacer los requerimientos de la persona interesada (efectividad). Debe ser estructurado. Es decir, debe ser fcil de leer, entender, usar y cambiar si es preciso.

ALGORITMO - CONCEPTOS BASICOS

HERRAMIENTAS Ejemplo
Hombre
(SeresVivos)

Se dispone de diversas herramientas para ayudar a los programadores a desarrollar los algoritmos para los mtodos de las clases.

nombres apellidos edad

Algoritmos
Herramientas: Pseudocdigo Diagrama de flujo

correr() caminar()

Algoritmo y Estructura de Datos I HERRAMIENTA PARA DISEAR ALGORITMOS PSEUDOCODIGO


ALGORITMO

Pseudocdigo

Definicin. Tipos de datos. Pautas Generales y de asignacin. Pautas Operadores Aritmticos. Pautas Operadores relacionales y lgicos.

HERRAMIENTA PARA DISEAR ALGORITMOS - PSEUDOCODIGOS

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.

Algoritmo Mensaje ENTRADA: sueldo SALIDA: sueldo INICIO TEXTO sueldo sueldo = 0 LEER sueldo sueldo = sueldo * 0.85 ESCRIBIR sueldo FIN

HERRAMIENTA PARA DISEAR ALGORITMOS - PSEUDOCODIGOS

TIPOS DE DATOS

En Pseudocdigo se reconocen tres tipos de datos : NUMERO. TEXTO. LOGICO.

Tenga presente que las palabras NUMERO, TEXTO y LOGICO son reglas o pautas utilizadas en el pseudocdigo por lo que no podrn ser usadas como nombre de variable o constante.

HERRAMIENTA PARA DISEAR ALGORITMOS - PSEUDOCODIGOS

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.

HERRAMIENTA PARA DISEAR ALGORITMOS - PSEUDOCODIGOS

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

HERRAMIENTA PARA DISEAR ALGORITMOS - PSEUDOCODIGOS

PAUTAS OPERADORES ARITMTICOS

+ * / ** , ^ \ , DIV MOD RAIZn

Suma. Resta. Multiplicacin Divisin. Exponenciacin. Divisin Entera. Mdulo o resto Raiz nmero n

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. DIV , MOD 4. + , -

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

HERRAMIENTA PARA DISEAR ALGORITMOS - PSEUDOCODIGOS

PAUTAS - OPERADORES RELACIONALES Y LGICOS

< > = <= >= <>

Menor que. Mayor que. Igual que. Menor o igual que. Mayor o igual que. Distinto de.

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

Negacin. Conjuncin. Disyuncin.

Algoritmo y Estructura de Datos I HERRAMIENTA PARA DISEAR ALGORITMOS DIAGRAMA DE FLUJO


ALGORITMO

Diagrama de Flujo

Definicin. Tipos de datos. Ejemplo. Smbolos.

HERRAMIENTA PARA DISEAR ALGORITMOS DIAGRAMA DE FLUJO

DEFINICIN

Un diagrama de flujo nos permite ilustrar el flujo de datos, informacin y trabajo por medio de interconexiones de smbolos especializados y lneas de flujo. La combinacin de smbolos especializados y lneas de flujo describen la lgica del programa o sistema. Un diagrama de flujo es la representacin grfica de la secuencia lgica de la solucin de un problema.

HERRAMIENTA PARA DISEAR ALGORITMOS DIAGRAMA DE FLUJO

TIPOS DE DATOS

Al igual que en Pseudocdigo, en diagrama de flujo se reconocen tres tipos de datos : NUMERO. TEXTO. LOGICO.

Tenga presente que las palabras NUMERO, TEXTO y LOGICO son reglas o pautas utilizadas tambin en los diagramas de flujos por lo que no podrn ser usadas como nombre de variable o constante.

HERRAMIENTA PARA DISEAR ALGORITMOS DIAGRAMA DE FLUJO

EJEMPLO

INICIO sueldo = 0 LEER sueldo sueldo = sueldo * 0.85 ESCRIBIR sueldo FIN

DIAGRAMA: Es por el hecho de ser un dibujo que no requiere estar a escala.

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

HERRAMIENTA PARA DISEAR ALGORITMOS DIAGRAMA DE FLUJO

SIMBOLOS
PROCESO PROCESO ALTERNATIVO DECISION DATOS PROCESO PREDEFINIDO DOCUMENTO OPERACIN MANUAL CONECTOR CONECTOR DE PAGINA PANTALLA TERMINADOR PREPARACION ENTRADA MANUAL

MULTI DOCUMENTO

HERRAMIENTA PARA DISEAR ALGORITMOS DIAGRAMA DE FLUJO

SIMBOLOS
PROCESO

DECISION INICIO / FIN CONECTOR LINEAS DE FLUJO REPETICIN

RESUMEN SEMANA 01 SESIN 02

Temas Tratados
n veces

ALGORITMO
Ingeniera reversa

Diseo Solucin

Desarrollo Solucin

Herramientas:
Depuracin Pruebas

Pseudocdigo Diagrama de flujo

Algoritmo y Estructura de Datos I

Semana 01 sesin 02

Objetivos : Descripcin del lenguaje de programacin utilizado para codificar soluciones.


JAVA Modelamiento de soluciones para el desarrollo de aplicaciones (prctica).

Modelamiento con un paquete. Modelamiento con dos paquetes.

Algoritmo y Estructura de Datos I

Semana 01 sesin 02

n veces

CODIFICACION
Ingeniera reversa

Diseo Solucin

Desarrollo Solucin

Herramientas:
Depuracin Pruebas

Visual Age For Java Forte for Java Lenguaje de Programacin: JAVA

Algoritmo y Estructura de Datos I LENGUAJE DE PROGRAMACIN JAVA

JAVA Introduccin. Definicin. Caractersticas. Arquitectura. Estructura bsica de un programa. Identificadores y operadores. Clases, Paquetes y objetos. Mtodos y atributos (variables).

LENGUAJE DE PROGRAMACIN JAVA

INTRODUCCIN Actualmente las personas estn apostando por JAVA por los siguientes motivos: Es un lenguaje de Programacin Orientado a Objetos. Es independiente de la Plataforma. Permite desarrollar aplicaciones para Internet.

LENGUAJE DE PROGRAMACIN 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.

LENGUAJE DE PROGRAMACIN JAVA

CARACTERISTICAS
Simple y poderoso. Seguro. Robusto. Interactivo. Entorno con muchas facilidades. Arquitectura neutral. Interpretado Optimo para Internet

LENGUAJE DE PROGRAMACIN JAVA

ARQUITECTURA NEUTRAL DE JAVA *.java


Cdigo fuente Compilador El mismo para cada plataforma

*.class

Uno para cada plataforma El mismo para cada plataforma Uno para cada plataforma

Java Byte Code Intrprete

Windows 95 Windows NT

Mac OS

Unix

OS/2

LENGUAJE DE PROGRAMACIN 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. Interfaces. Paquetes.
Almacenamiento de datos Para especificar funciones. Para especificar objetos. Para especificacin de protocolos Para agrupar clases

LENGUAJE DE PROGRAMACIN JAVA

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

LENGUAJE DE PROGRAMACIN JAVA

SEPARADORES Y COMENTARIOS
Las llaves sirven para definir bloques de cdigo para clases, mtodos y mbitos locales El punto y coma sirva para poder separar las instrucciones en las clases y mtodos. Separa identificadores consecutivos en la declaracin de variables y elementos de una lista Utilizado para definir una lnea como comentario Define mltiples lneas como comentario.

{} ; , // /* */

LENGUAJE DE PROGRAMACIN JAVA

OPERADORES Aritmticos
+ == * != / % ++ -< <= == - ~ & | << >> >>> > != >=

Comparacin Lgicos
& | && || !

Asignacin
= += -= *= /= %= &= |=

Ternario
?:

LENGUAJE DE PROGRAMACIN JAVA

DEFINICIN DE UNA CLASE

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.

LENGUAJE DE PROGRAMACIN JAVA

DEFINICIN DE UN PAQUETE

package nombrePaquete ; class NombreClase { }

nombrePaquete

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

LENGUAJE DE PROGRAMACIN JAVA

DIAGRAMA DE PAQUETE

package dominioDeLaAplicacin ; import dominioDelProblema.* ;


DEPENDENCIA

class NombreClase { .. }

LENGUAJE DE PROGRAMACIN JAVA

EXPLICAR MAIN

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

LENGUAJE DE PROGRAMACIN JAVA

ESTRUCTURA BSICA DE UN PROGRAMA

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

LENGUAJE DE PROGRAMACIN JAVA

DEFINICIN DE VARIABLES

byte short int long float double boolean char

Identificar a una variable del tipo indicado. Si desea puedes especificar varios identificadores separndolos con comas (,)

Literal o expresin que tenga como resultado un valor del mismo tipo (o compatible) que el indicado

LENGUAJE DE PROGRAMACIN JAVA

DEFINICIN DE CONSTANTES

byte short int long float double boolean char

Identificar a una variable del tipo indicado. Si desea puedes especificar varios identificadores separndolos con comas (,)

Literal o expresin que tenga como resultado un valor del mismo tipo (o compatible) que el indicado

Algoritmo y Estructura de Datos I

MODELAMIENTO DE SOLUCIONES PARA EL DESARROLLO DE APLICACIONES

MODELAMIENTO DE SOLUCIONES PARA EL DESARROLLO DE APLICACIONES

MODELAMIENTO CON UN PAQUETE


Descripcin Problema Enunciado ETAPA 01 Definicin Solucin ETAPA 02
Determinar la informacin deseada (salida). Determinar los datos de entrada (entrada). Establecer como se va ha solucionar el problema (proceso).

Definicin Solucin ETAPA 03


Determinar el nombre del proyecto. Definir el paquete y las clases que formarn parte de la solucin del problema. Utilice UML. Disear el algoritmo para los diferentes mtodos. Utilice pseudocdigo o diagrama de flujo.

Desarrollo Solucin ETAPA 04


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

MODELAMIENTO DE SOLUCIONES PARA EL DESARROLLO DE APLICACIONES

MODELAMIENTO CON DOS PAQUETES


Descripcin Problema Enunciado ETAPA 01 Definicin Solucin ETAPA 02
Determinar la informacin deseada (salida). Determinar los datos de entrada (entrada). Establecer como se va ha solucionar el problema (proceso).

Definicin Solucin ETAPA 03


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) Disear el algoritmo para los diferentes mtodos. Utilice pseudocdigo.

Desarrollo Solucin ETAPA 04


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

RESUMEN SEMANA 01 SESIN 02

Tema Tratado
n veces

CODIFICACION
Ingeniera reversa

Diseo Solucin

Desarrollo Solucin

Herramientas:
Depuracin Pruebas

Visual Age For Java Forte for Java Lenguaje de Programacin: JAVA

Algoritmo y Estructura de Datos I

Semana 02 sesin 01

Algoritmo y Estructura de Datos I

Semana 02 sesin 01

Objetivos : Desarrollar soluciones bsicas utilizando el mtodo propuesto. Uso de funciones matemticas. Clase Math de JAVA. Manejo de cadenas. Clase String de Java.

Algoritmo y Estructura de Datos I

Semana 02 sesin 01

n veces

MODELAMIENTO
Ingeniera reversa

Diseo Solucin

UML.

Desarrollo Solucin

ALGORITMO
Depuracin Pruebas

PSEUDOCODIGO. DF.

CODIFICACION
JAVA.

Algoritmo y Estructura de Datos I DESARROLLO DE SOLUCIONES BASICAS

SOLUCIONES Modelamiento de la solucin en UML.


Nombre del proyecto. Diagramas, relaciones y definiciones.

Desarrollo de Algoritmos en Pseudocodigo y/o DF. Codificacin en Lenguaje de Programacin Java.

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 01: ETAPA 1


Descripcin Problema

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.

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

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 01: ETAPA 2


Definicin Solucin

1.

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

2.

DATOS NECESARIOS: Ninguno.

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

3.

PROCESAMIENTO: El nombre sera almacenado en la variable (nombre), el mensaje en otra variable (msg) y luego se mostrarn las dos variables.

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 01: ETAPA 3


Diseo Solucin

1.

NOMBRE DEL PROYECTO: ProyMensaje.

2.

DEFINICIN DE PAQUETE Y CLASE:


Paquete y clase

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

dominioDeLaAplicacion

PrgMensaje

main()

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 01: ETAPA 3


Diseo Solucin

3.

DESARROLLO DE ALGORITMO EN PSEUDOCODIGO

Algoritmo PrgMensaje - mtodo main() ENTRADA: SALIDA: nombre INICIO


TEXTO nombre nombre = Hola Pedro ESCRIBIR nombre

3. Desarrollo de Algoritmos.

FIN

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 01: ETAPA 4


Desarrollo Solucin

1.

CODIFICAR EL PROYECTO:

Clase PrgMensaje
package dominioDeLaAplicacion; class PrgMensaje {

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


}

// la ejecucin empieza en el mtodo main. public static void main ( String arg[ ] ) { String nombre ; nombre = Hola Pedro ; System.out.print (nombre); }

Algoritmo y Estructura de Datos I DESARROLLO DE SOLUCIONES BASICAS

CLASE Math de JAVA

Definicin. Mtodos.

DESARROLLO DE SOLUCIONES BSICAS Clase Math

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. La Clase Math es un Clase propia creada en Java para el manejo de las funciones numricas bsicas tales como exponencial elementales, logartmicas, races y funciones trigonomtricas.

DESARROLLO DE SOLUCIONES BSICAS Clase Math

MTODOS
La clase String de Java presenta los siguientes mtodo:

1. abs() 2. acos() 3. asin() 4. cos() 5. log() 6. max()

7. min(). 8. pow(). 9. random(). 10. round() 11. sqrt(double)

Algoritmo y Estructura de Datos I DESARROLLO DE SOLUCIONES BASICAS

CLASE String de JAVA

Introduccin. Definicin. Mtodos.

DESARROLLO DE SOLUCIONES BSICAS Clase String

INTRODUCCIN

Una cadena es un conjunto de caracteres, nmeros y smbolos especiales almacenados en una variable de tipo TEXTO. En java las variables de tipo TEXTO se declaran utilizando la Clase String.

DESARROLLO DE SOLUCIONES BSICAS Clase String

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. La clase String de Java nos permite manipular las variables de tipo TEXTO a travs de los mtodos que tiene implementado.

DESARROLLO DE SOLUCIONES BSICAS Clase String

MTODOS
La clase String de Java presenta los siguientes mtodo: 1. charAt(). 2. compareTo(). 3. endsWith(). 4. equals(). 5. equalsIgnoreCase() 6. indexOf(). 7. lastIndexOf(). 8. length 9. replace(). 10. startsWith(). 11. substring(). 12. toCharArray(). 13. toLowerCase(). 14. Trim(). 15. toUpperCase().

RESUMEN SEMANA 01 SESIN 02

Tema Tratado

n veces

MODELAMIENTO
Ingeniera reversa

Diseo Solucin

UML.

Desarrollo Solucin

ALGORITMO
Depuracin Pruebas

PSEUDOCODIGO. DF.

CODIFICACION
JAVA.

Algoritmo y Estructura de Datos I

Semana 02 sesin 02

Algoritmo y Estructura de Datos I

Semana 02 sesin 02

Objetivos : Desarrollar soluciones bsicas utilizando el mtodo propuesto. Ingreso de datos utilizando el teclado. Uso de la clase Lectura.

Algoritmo y Estructura de Datos I

Semana 02 sesin 02

n veces

MODELAMIENTO
Ingeniera reversa

Diseo Solucin

UML.

Desarrollo Solucin

ALGORITMO
Depuracin Pruebas

PSEUDOCODIGO. DF.

CODIFICACION
JAVA.

Algoritmo y Estructura de Datos I DESARROLLO DE SOLUCIONES BASICAS

SOLUCIONES Modelamiento de la solucin en UML.


Nombre del proyecto. Diagramas, relaciones y definiciones.

Desarrollo de Algoritmos en Pseudocodigo y/o DF. Codificacin en Lenguaje de Programacin Java.

Algoritmo y Estructura de Datos I DESARROLLO DE SOLUCIONES BASICAS

CLASE Lectura Introduccin. Definicin. Mtodos. Problema.

DESARROLLO DE SOLUCIONES BSICAS Clase Lectura

INTRODUCCIN

La entrada de datos se refiere a la forma o mecanismos que utilizamos o empleamos para poder ingresar los datos para su posterior proceso a travs de los algoritmos y obtener la informacin necesaria o poder solucionar un problema. Para el ingreso de datos utilizaremos la clase Lectura. Dicha clase la colocaremos en un paquete denominado biblioteca.

DESARROLLO DE SOLUCIONES BSICAS Clase Lectura

DEFINICIN

La clase Lectura permite ingresar datos de diferente tipo a travs de un dispositivo de entrada de una computadora (el teclado). Para ingresar datos de diferente tipo utilizaremos los mtodos implementados en la clase Lectura. Dichos mtodos nos permiten ingresar datos en forma tradicional.

DESARROLLO DE SOLUCIONES BSICAS Clase Lectura

MTODOS
La clase Lectura presenta los siguientes mtodo: 1. leerString(). 2. leerChar(). 3. leerInt(). 4. leerLong(). 5. leerFloat() 6. leerDouble(). 7. leerShort().

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 04: ETAPA 1


Descripcin Problema

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 pantalle el total de descuentoy el suelo a cobrar.

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

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 04: ETAPA 2


Definicin Solucin

1.

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

2.

DATOS NECESARIOS: El sueldo total del obrero.

3.

PROCESAMIENTO: 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 alamacenan en las variables descuento y pago para luego ser mostradas por pantalla.

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

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 04: ETAPA 3


Diseo Solucin

1.

NOMBRE DEL PROYECTO: ProySueldoObrero.

2.

DIAGRAMA DE PAQUETES:

1. Definir un nombre para el proyecto.


dominioDeLaAplicacion

Diagrama de paquetes

biblioteca

2. Definicin de diagramas y relaciones.


DEPENDENCIA

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 04: ETAPA 3


2.
Diseo Solucin

DEFINICIN DE PAQUETE Y CLASE:

Clases dominioDeLaAplicacion

Clases biblioteca
Lectura

PrgSueldoObrero main()

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

leerString() leerChar() leerInt() leerLong() leerFloat() leerDouble() leerShort()

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 04: ETAPA 3


Diseo Solucin

3.

DESARROLLO DE ALGORITMO EN PSEUDOCODIGO


Algoritmo PrgSueldoObrero - mtodo main()

DIAGRAMA DE FLUJO
INICIO

NUMERO sueldo, descuento, pago

3. Desarrollo de Algoritmos.

LEER sueldo

descuento = sueldo * 0.2 pago = sueldo - descuento

ESCRIBIR descuento, pago

FIN

DESARROLLO DE SOLUCIONES BSICAS

PROBLEMA 04: ETAPA 4


Desarrollo Solucin

1.

CODIFICAR EL PROYECTO:
Clase PrgSueldoObrero

package dominioDeLaAplicacion; import biblioteca.Lectura; class PrgSueldoObrero { public static void main (String arg[]) {

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


}

double sueldo, descuento, pago; System.out.print (Ingrese el sueldo de un obrero: ); sueldo = Lectura.leerDouble(); // Calculando el descuento ( 20% ) descuento = sueldo * 0.2; // calculando el monto a pagar pago = sueldo descuento; System.out.print (El total de descuento es: ); System.out.println (descuento); System.out.println (El sueldo a pagar es: + pago ); }

RESUMEN SEMANA 01 SESIN 02

Tema Tratado

n veces

MODELAMIENTO
Ingeniera reversa

Diseo Solucin

UML.

Desarrollo Solucin

ALGORITMO
Depuracin Pruebas

PSEUDOCODIGO. DF.

CODIFICACION
JAVA.

Algoritmo y Estructura de Datos I

Semana 03 sesin 01

Algoritmo y Estructura de Datos I

Semana 03 sesin 01

Objetivos : Conocer las diferentes estructuras de decisin. Describir la estructura de decisin SI (if). Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 03 sesin 01

Estructuras de Decisin If If-else switch (Simple) (Doble) (Mltiple)

Algoritmo y Estructura de Datos I Estructuras de Decisin Son construcciones que permite determinar la solucin entre diferentes alternativas. Tambin se les conoce con el nombre de Estructuras de Seleccin. Tenemos 3 tipos: Simple Doble Mltiple

ESTRUCTURA DE DECISIN SIMPLE

1) SIMPLE Si la condicin resulta verdadera, se ejecutan las instrucciones que se encuentran entre el ENTONCES Y EL FIN_SI Pseudocdigo SIMPLE Si <condicin> entonces instrucciones fin_si condicin V Operacin } F Diagrama de Flujo Java if ( condicion) { // instrucciones

ESTRUCTURA DE DECISIN SIMPLE

Aplicando Mtodo para la solucin de problemas 1 Descripcin del Problema Determinar el sueldo final de un trabajador, ingresando la tarifa y el nmero de horas trabajadas. Se debe tener en cuenta que si el trabajador supera 45 horas trabajadas darle un aumento del 15%. 2 Diseo de la Solucin a) Modelamiento Trabajador

dominioDeAplicacion

biblioteca

Trabajador( ) main( )

PAQUETES

CLASE

ESTRUCTURA DE DECISIN SIMPLE

b) Algoritmo: Entrada: tarifa, numHoras Salida: sF INICIO LEER tarifa LEER numHoras sF=tarifa*numHoras SI <numhoras>45> ENTONCES sF=sF*1.15 FIN_SI ESCRIBIR sF FIN

ESTRUCTURA DE DECISIN SIMPLE

3 Desarrollo de la Solucin (Codificacin)


package dominioDeAplicacion; import biblioteca.Lectura; Class Trabajador{ Trabajador( ){ } public static void main(String args[]) { int tarifa; int numHoras, sF; System.out.println(ingrese tarifa del trabajador); tarifa=Lectura.leerInt( ); System.out.println(ingrese nmero de horas trabajadas); numHoras=Lectura.leerInt( ); sF=tarifa*numHoras; if(numhoras>=45) { sF=sF*1.15; } System.out.println(total a recibir + sF);} }

Algoritmo y Estructura de Datos I

Semana 03 sesin 02

Algoritmo y Estructura de Datos I

Semana 03 sesin 02

Objetivos : Conocer las diferentes estructuras de decisin. Describir la estructura de decisin SI / SINO (if / else). Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 03 sesin 02

Estructuras de Decisin If If-else switch (Simple) (Doble) (Mltiple)

ESTRUCTURA DE DECISIN DOBLE

2) DOBLE Permite escoger entre 2 opciones, altera la solucin dependiendo de la condicin lgica Pseudocdigo
DOBLE Si <condicin> entonces instrucciones....... sino instrucciones....... fin_si

Diagrama de Flujo

Java
if ( condicion) { // instrucciones } else { // instrucciones }

condicin V
operacin 1

F
operacin 2

ESTRUCTURA DE DECISIN DOBLE

Aplicando Mtodo para la solucin de problemas 1 Descripcin del Problema Ingresar la edad de un alumno y determinar si su edad es un valor par o impar. 2 Diseo de la Solucin a) Modelamiento Alumno
dominioDeAplicacion biblioteca

Alumno( )
PAQUETES

main( )
CLASE

ESTRUCTURA DE DECISIN DOBLE

b) Algoritmo: VARIABLES ENTRADA: edad INICIO LEER edad SI <edad MOD 2=0> ENTONCES ESCRIBIR Par SINO ESCRIBIR Impar FIN_SI FIN

ESTRUCTURA DE DECISIN DOBLE

3 Desarrollo de la Solucin (Codificacin) package dominioDeAplicacion; import biblioteca.Lectura; Class Alumno{ Alumno( ){ } public static void main(String args[]) { int edad; System.out.println(ingrese edad); edad =Lectura.getInt(); if(edad%2==0) System.out.println(Par:); else System.out.println(Impar:); }

Algoritmo y Estructura de Datos I

Semana 04 sesin 01

Algoritmo y Estructura de Datos I

Semana 04 sesin 01

Objetivos : Conocer las diferentes estructuras de decisin. Describir la estructura de decisin CUANDO (switch). Utilizar la estructura de decisin SI / SINO (if/else) en forma anidada. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 04 sesin 01

Estructuras de Decisin If If-else switch (Simple) (Doble) (Mltiple)

ESTRUCTURA DE DECISIN MLTIPLE

3) MULTIPLE Permite escoger entre muchas opciones, altera la secuencia de la solucin dependiendo del valor de una variable. Para cada variable se ejecuta una serie de instrucciones.

Aqu se tienen : switch if anidados

ESTRUCTURA DE DECISIN MLTIPLE

switch:
La estructura de Seleccin mltiple switch permite seleccionar una ruta entre varias rutas posible en base al valor de una variable selector que se compara con una lista de constantes enteras o de carcter, cuando se encuentra una correspondencia se ejecuta la accin.
Variable
valor1 Valor2 ::::::::::

valorN

Otros

instruccion

intruccion

intruccion

intruccion

ESTRUCTURA DE DECISIN MLTIPLE

CUANDO (variable) SEA

CASO valor1: CASO valor2: CASO valor3: :::::: CASO valorN: OTROS

instruccin; instruccin; instruccin;

switch(selector) { case c1: accion1; break; case c2: accion2; break; case c3: accion3; break;
::::::

instruccin;

case cn:

FIN_CUANDO

accionN; break; default: accionPorDefecto;

ESTRUCTURA DE DECISIN MLTIPLE

IF-ANIDADOS
IF ANIDADO: if ( condicin1 ) { instruccin 1 } else if(condicin2) { instruccin 2 } : else if(condicin3) { instruccin 3 }

V
condicin 1

operacin 1

V
condicin 2

operacin 2

condicin 3

ESTRUCTURA DE DECISIN MLTIPLE

if(condicin) { accinA1; . accinAn; } else { accionB1; accionBn; } Note que en el caso de acciones compuestas, estas deben de ser encerradas entre llaves de bloque{}.

ESTRUCTURA DE DECISIN MLTIPLE

Aplicando Mtodo para la solucin de problemas 1 Descripcin del Problema


Ingresar el estado Civil de una persona en formato carcter (c=casado, s=soltero, v=viudo, d=divorciado), y segn el carcter que ingrese mostrar el mensaje equivalente.

2 Diseo de la Solucin a) Modelamiento Civil


dominioDeAplicacion biblioteca

Civil( )
PAQUETES

main( )
CLASE

ESTRUCTURA DE DECISIN MLTIPLE

b) Algoritmo: VARIABLES ENTRADA: estado INICIO LEER estado CUANDO ( estado) SEA CASO c : ESCRIBIR Casado CASO s : ESCRIBIR Soltero CASO v : ESCRIBIR Viudo CASO d : ESCRIBIR Divorciado FIN_CUANDO FIN

ESTRUCTURA DE DECISIN MLTIPLE

3 Desarrollo de la Solucin (Codificacin)


package dominioDeAplicacion; import biblioteca.Lectura; Class Civil { Civil( ){ } public static void main(String args[]) { char estado=Lectura.leerChar(); switch(estado) { case c: System.out.println (Casado); break; case s: System.out.println (Soltero); break; case v: System.out.println(Viudo); break; case d: System.out.println (Divorciado); break; default : System.out.println(Estado no valido); } }

Algoritmo y Estructura de Datos I

Semana 05 sesin 01

Algoritmo y Estructura de Datos I

Semana 05 sesin 01

Objetivos : Conocer las diferentes estructuras de repeticin. Describir la estructura de repeticin HACER (do while). Describir el uso de la sentencia break. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 05 sesin 01

Estructuras de Repeticin HACER (do-while). MIENTRAS (while). DESDE (for). La sentencia break

ESTRUCTURAS DE REPETICIN

ESTRUCTURAS DE REPETICIN Son construcciones que realiza un proceso repetidas veces. Tambin se les conoce con el nombre de Estructuras Cclicas o bucles. Tenemos 3 bucles: do-while while for

ESTRUCTURA DE REPETICIN HACER

1) do-while La condicin esta al final del bucle (lo que hace que el bucle se ejecute al menos una vez, independientemente de que la condicin se cumpla o no). Pseudocdigo
HACER //instrucciones... MIENTRAS(condicin) v

Diagrama de Flujo
OPERACIN

Java
do { //instrucciones... } while(condicin);

CONDICIN

Aplicaciones: Validaciones de datos, menu de opciones.

ESTRUCTURA DE REPETICIN HACER

Aplicando Mtodo para la solucin de problemas 1 Descripcin del Problema Ingresar nombre, edad y sexo (F o M en mayscula o minscula) de n alumnos y a continuacin mostrar los datos de la persona con mayor edad. 2 Diseo de la Solucin a) Modelamiento

Alumno

dominioDeAplicacion

biblioteca

Alumno( ) main( )

PAQUETES

CLASE

ESTRUCTURA DE REPETICIN HACER

b) Algoritmo:
VARIABLES Entrada: numAlumnos, nombre, edad, sexo Salida: mayor, nomMayor, sexoMayor INICIO TEXTO nombre, nomMayor NUMERO i=1, numAlumnos, edad, mayor=0 CARACTER sexo, sexoMayor LEER numAlumnos HACER LEER nombre HACER LEER edad MIENTRAS (edad<=0)

ESTRUCTURA DE REPETICIN HACER

HACER LEER sexo MIENTRAS <sexo!=F AND sexo!=M> IF (edad>mayor) ENTONCES mayor=edad nomMayor=mayor sexoMayor=sexo FIN_SI i=i+1 MIENTRAS (i<=numAlumnos) ESCRIBIR nomMayor, mayor, sexoMayor FIN

ESTRUCTURA DE REPETICIN HACER

3 Desarrollo de la Solucin (Codificacin)


package dominioDeAplicacion; import biblioteca.Lectura; public class Alumno{ Alumno( ){ } public static void main(String args[]) { String nombre, nomMayor; int i=1, numAlumnos, edad, mayor=0; char sexo, sexoMayor; System.out.println(ingrese # de alumnos:); numAlumnos =Lectura.leerInt( ); do{ System.out.println(ingrese nombre); nombre=Lectura.leerString( );

ESTRUCTURA DE REPETICIN HACER

do { System.out.println(ingrese edad); edad=Lectura.leerInt( ); } while(edad<=0); do { System.out.println(ingrese sexo); sexo=Lectura.leerChar( ); sexo=Character.toUpperCase(sexo); } while(sexo!=F && sexo!=M ); If (edad>mayor) { mayor=edad; nomMayor=nombre; sexoMayor=sexo; } i++; } while(i<= numAlumnos); System.out.println(nomMayor+ +mayor+ + sexoMayor); } }

ESTRUCTURA DE REPETICIN HACER

Aplicando do while para un menu de opciones


char op; do { System.out.println("1.Preguntas"); System.out.println("2.Resultados"); System.out.println("3.Salir"); System.out.println("Opcin? "); op = Lectura.leerInt(); switch (op) { case 1 : //instrucciones break; case 2 : //instrucciones break; default: //instrucciones } } while (op != 3);

LA SENTENCIA BREAK

Permite la terminacin de los bucles, sin esperar a que se ejecuten todas las iteraciones definidas en ella. Ejemplo: Determinar si un nmero es primo o no.
public static void main(String args[ ]) { int i=1, divisores=0, n=7; while(i<n) { if(n%i==0) divisores++; if(divisores>2) break; i++; } if(divisores>0) System.out.println(El nmero no es primo); else System.out.println(El nmero es primo); }

Algoritmo y Estructura de Datos I

Semana 05 sesin 02

Algoritmo y Estructura de Datos I

Semana 05 sesin 02

Objetivos : Conocer las diferentes estructuras de repeticin. Describir la estructura de repeticin MIENTRAS (while). Describir el uso de los contadores y acumuladores. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 05 sesin 02

Contadores y Acumuladores Estructuras de Repeticin HACER (do-while). MIENTRAS (while). DESDE (for).

CONTADORES

Un contador es una variable entera que toma un valor inicial, normalmente cero (O) o uno (1) y luego va variando de acuerdo a una constante.

valor = valor + cte


Ejemplos: * Incremento de 1 en 1 c=c+1 Forma simplificada c++ * Incremento de 2 en 2 contar=contar+2 Forma simplificada contar+=2

ACUMULADORES

Un acumulador es una variable numrica que toma un valor inicial, normalmente cero (O) y luego va variando en una cantidad diferente cada vez.

valor = valor + variable


Ejemplos: * Acumulador para sumar suma=suma+num Forma simplificada suma+=num * Sea: int x = 6, y = 2; x = x + y; o

x += y;

ESTRUCTURA DE REPETICIN MIENTRAS

2) while Las instrucciones del bucle while se ejecutan mientras que la condicin sea verdadera. Pseudocdigo
MIENTRAS(condicin) //instrucciones... FIN_MIENTRAS

Diagrama de Flujo
CONDICIN

Java
while(condicin) { //instrucciones... }

v
OPERACIN

ESTRUCTURA DE REPETICIN MIENTRAS

Aplicando Mtodo para la solucin de problemas 1 Descripcin del Problema Ingresar un nmero entero y mostrar la suma de sus dgitos. 2 Diseo de la Solucin a) Modelamiento

Numero

dominioDeAplicacion

biblioteca

Numero( ) main( )

PAQUETES

CLASE

ESTRUCTURA DE REPETICIN MIENTRAS

b) Algoritmo:
VARIABLES Entrada: num Salida: suma INICIO NUMERO num, digito, temp, suma = 0 LEER num temp=num MIENTRAS (temp>0) digito = temp % 10; suma = suma + digito; temp = temp / 10 FIN_MIENTRAS ESCRIBIR suma FIN

ESTRUCTURA DE REPETICIN MIENTRAS

3 Desarrollo de la Solucin (Codificacin)


package dominioDeAplicacion; import biblioteca.Lectura; public class Numero { Numero( ){ } public static void main(String args[]) { int num, digito, temp, suma = 0; System.out.pritnln(Ingrese un nmero: ); num=Lectura.leerInt(); temp=num; while (temp > 0) { digito = temp % 10; suma = suma + digito; temp = temp / 10; } System.out.pritnln(La suma de los dgitos es: +suma); }

Algoritmo y Estructura de Datos I

Semana 06 sesin 01

Algoritmo y Estructura de Datos I

Semana 06 sesin 01

Objetivos : Conocer las diferentes estructuras de repeticin. Describir la estructura de repeticin DESDE (for). Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 06 sesin 01

Estructuras de Repeticin HACER (do-while). MIENTRAS (while). DESDE (for).

ESTRUCTURA DE REPETICIN DESDE

3) for el bucle termina cuando la expresin de la condicin toma el valor false. Cualquiera de las tres partes puede estar vaca. La inicializacin y el incremento pueden tener varias expresiones separadas por comas. Diagrama de Flujo
inicializacin/condicin incremento

V
instrucciones

ESTRUCTURA DE REPETICIN DESDE

Pseudocdigo
DESDE (inicializacin) HASTA (condicin) CON (incremento) //instrucciones... FIN_DESDE

Java
for( inicializacin ; condicin ; incremento) { //instrucciones... } Ejemplo: for( i = 2, j = 3 ; (i+j)>=5 && (i+j)<=100 ; i++, j+=2) { System.out.println(i+ +j); }

ESTRUCTURA DE REPETICIN DESDE

1 Descripcin del Problema Hallar la sumatoria de los n primeros nmeros enteros. 1 + 2 + 3 + 4 + ...... + n 2 Diseo de la Solucin a) Modelamiento Sumatoria
dominioDeAplicacion biblioteca

Sumatoria( ) main( )

PAQUETES CLASE

ESTRUCTURA DE REPETICIN DESDE

b) Algoritmo:
VARIABLES Entrada: num Salida: sumatoria INICIO NUMERO i, num, sumatoria = 0 LEER num DESDE i=1 HASTA i<=num CON i++ sumatoria = sumatoria + i; FIN_DESDE ESCRIBIR sumatoria FIN

ESTRUCTURA DE REPETICIN DESDE

3 Desarrollo de la Solucin (Codificacin)


package dominioDeAplicacion; import biblioteca.Lectura; public class Sumatoria { Sumatoria( ){ } public static void main(String args[]) { int sumatoria=0, num; System.out.pritnln(Ingrese un nmero: ); num=Lectura.leerInt(); for(int i=1;i<=num;i++) { sumatoria += i; } System.out.pritnln(La sumatoria es: +sumatoria); }

Algoritmo y Estructura de Datos I

Semana 06 sesin 02

Algoritmo y Estructura de Datos I

Semana 06 sesin 02

Objetivos : Describir las diferentes estructuras lgicas. Desarrollar soluciones utilizando las estructura de repeticin HACER, MIENTRAS y DESDE (do-while, while y for). Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 06 sesin 02

Estructuras de Repeticin HACER (do-while). MIENTRAS (while). DESDE (for - combinaciones y/o anidados).

ESTRUCTURA DE REPETICIN DESDE COMBINADAS Y/O ANIDADAS

PROBLEMA 1 1 Descripcin del Problema Mostrar la siguiente figura de acuerdo al nmero de filas ingresado. Ejemplo: Si fila = 4 1234
123 12 1

2 Diseo de la Solucin a) Modelamiento

Figura
biblioteca

dominioDeAplicacion

Figura( ) main( )
CLASE

PAQUETES

ESTRUCTURA DE REPETICIN DESDE COMBINADAS Y/O ANIDADAS

b) Algoritmo: VARIABLES
Entrada: fila Salida: figura INICIO NUMERO i, j, fila TEXTO figura= LEER fila DESDE i = fila HASTA i >= 1 CON i-DESDE j = 1 HASTA j <= i CON j++ figura = figura + j + FIN_DESDE figura = figura + \n FIN_DESDE ESCRIBIR figura FIN

ESTRUCTURA DE REPETICIN DESDE COMBINADAS Y/O ANIDADAS

3 Desarrollo de la Solucin (Codificacin)


package dominioDeAplicacion; import biblioteca.Lectura; public class Figura { Figura( ){ } public static void main(String args[]) { int fila; String figura = ""; System.out.print("Ingrese el nmero de filas: "); fila = Lectura.leerInt(); for (int i = fila; i >=1; i--) { for (int j = 1; j <= i; j++) figura += j + " "; figura += "\n"; } System.out.print("\nLa figura es:\n"+figura); } }

ESTRUCTURA DE REPETICIN DESDE COMBINADAS Y/O ANIDADAS

PROBLEMA 2 1 Descripcin del Problema Mostrar la siguiente serie hasta el trmino n. Ejemplo: Si n = 6 La serie es: 1 4 + 9 16 + 25 36 2 Diseo de la Solucin a) Modelamiento

Serie
biblioteca

dominioDeAplicacion

Serie( ) main( )
CLASE

PAQUETES

ESTRUCTURA DE REPETICIN DESDE COMBINADAS Y/O ANIDADAS

b) Algoritmo:

VARIABLES Entrada: i, n Salida: serie INICIO NUMERO i, n TEXTO serie= LEER n DESDE i = 1 HASTA i <= n CON i++ SI (i%2!=0) ENTONCES serie = serie + + + i*i SINO serie = serie + - + i*i FIN_SI FIN_DESDE ESCRIBIR serie FIN

ESTRUCTURA DE REPETICIN DESDE COMBINADAS Y/O ANIDADAS

3 Desarrollo de la Solucin (Codificacin)


package dominioDeAplicacion; import biblioteca.Lectura; public class Serie { Serie( ){ } public static void main(String args[]) { int n; String serie = ""; System.out.print("Ingrese el nmero de trminos: "); n = Lectura.leerInt(); for (int i = 1; i <=n; i++) { if(i%2!=0) serie = serie + + + i*i else serie = serie + - + i*i } System.out.print("\nLa serie es:\n"+serie); } }

Algoritmo y Estructura de Datos I

Semana 07 sesin 01

Algoritmo y Estructura de Datos I

Semana 07 sesin 01

Objetivos : Describir las diferentes estructuras de datos. Describir la estructura de datos ARREGLO. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 07 sesin 01

Arreglos Vectores Matrices Aplicaciones

ESTRUCTURA DE DATOS ARREGLO - VECTOR

DEFINICIN
Los arreglos (matrices o 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.

EN MEMORIA
ndices vector 0 32 1 -2 2 0 3 174
Para acceder a los elementos

vector[0] vector[1]

vector[2] vector[3]

ESTRUCTURA DE DATOS ARREGLO - VECTOR

SINTAXIS PARA DECLARAR UN ARREGLO

tipo_de_dato variable[]; tipo_de_dato[] variable;


Ejemplos: int [] n; double sueldo[]; String[] nombre;

SINTAXIS PARA CREAR UN ARREGLO

variable = new tipo_de_dato[dimensin];


Ejemplos: n = new int[5]; sueldo = new double[10]; nombre = new String[4];

ESTRUCTURA DE DATOS ARREGLO - VECTOR

INICIALIZAR UN ARREGLO

variable[ndice] = valor;
Ejemplos: n[0]=1; n[1]=12; n[2]=0; n[3]=-5; n[4]=25; nombre[0]=Ludwig; nombre[1]=Amadeus; nombre[2]=Eddie; nombre[3]=Jerry;

DIMENSIN DE UN ARREGLO

variable.length
Ejemplos: int x=n.length; //donde x=5 int y=sueldo.length; //donde y=10 int z=nombre.length; //donde nombre=4

ESTRUCTURA DE DATOS ARREGLO - VECTOR

Los arreglos tambin se pueden declarar y crear en una sola lnea, y adems inicializar.

DECLARACIN Y CREACIN DEL ARREGLO

tipo[] variable = new tipo[dimensin];


Ejemplos: int n[] = new int[5]; double sueldo[] = new double[10]; String[] nombre = new String[4];

DECLARACIN, CREACIN E NICIALIZACIN DEL ARREGLO

tipo variable[]= {valor1,valor2,valor3,...};


Ejemplos: int n[]={1,12,0,-5,25}; String[] nombre={Ludwig,Amadeus,Eddie,Jerry};

ESTRUCTURA DE DATOS ARREGLO - VECTOR

PROBLEMA: Ingresar las notas (0-20) de 10 alumnos y hallar el promedio. public static void main(String args[]) { int suma=0, nota[]=new int[10]; double prom; for(int i=0;i<10;i++) { do { System.out.pritnln(Ingrese nota +(i+1)+: ); nota[i]=Lectura.leerInt(); } while(nota[i]<0 || nota[i]>20); suma += nota[i]; } prom = suma/10.0; System.out.pritnln(El promedio es: +prom); }

Algoritmo y Estructura de Datos I

Semana 08 sesin 01

Algoritmo y Estructura de Datos I

Semana 08 sesin 01

Objetivos : Desarrollar soluciones utilizando arreglos. Almacenamiento de datos en arreglos. Comprender las posibilidades de aplicacin de los arreglos en el manejo de mltiples juegos de datos.

Algoritmo y Estructura de Datos I

Semana 08 sesin 01

MATRICES

ESTRUCTURA DE DATOS ARREGLO - MATRIZ

Concepto: Una matriz es un arreglos de arreglos. Todos son del mismo tipo en el que el orden est dado por 2 subndices para definir un elemento. El primer subndice indica la fila y el segundo subndice indica la columna.
Columnas ( j ) Filas ( i )

0 0 1 2

ESTRUCTURA DE DATOS ARREGLO - MATRIZ

Es un tipo de Dato. Consiste en un conjunto de elementos uno a continuacin de otro. Cada elemento tiene el mismo espacio, se van a almacenar diferentes valores pero del mismo tipo.

tipo nombreMatriz[][]

Declaracin

nombreMatriz= new tipo[filas][columnas]

Inicializar

ESTRUCTURA DE DATOS ARREGLO - MATRIZ

Declaracin

int

notas[ ][ ];
Nombre de la Matriz

Tipo de dato

Asignacin de Tamao

notas= new int [ 2] [ 3 ];


Nmero de filas Nmero de Columnas

ESTRUCTURA DE DATOS ARREGLO - MATRIZ

Ejemplo int x [ ] [ ]; // declaracin del vector de enteros x= new int [ 3] [ 3 ]; // inicializar el vector O tambin : int x [ ] [ ] = new int [ 3] [ 3 ];

ESTRUCTURA DE DATOS ARREGLO - MATRIZ

Cuando se desea referir a una posicin : Ejemplo n[0][0]=5; suma=n[1][2]+n[1][3];

ESTRUCTURA DE DATOS ARREGLO - MATRIZ

Aplicando Mtodo para la solucin de problemas 1 Descripcin del Problema Desarrollar un programa que permita ingresar una matriz de 3 x 3. 2 Diseo de la Solucin a) Modelamiento PrgMatriz
dominioDeAplicacion biblioteca

PrgMatriz( )
PAQUETES

main( )
CLASE

ESTRUCTURA DE DATOS ARREGLO - MATRIZ

b) Algoritmo:

INICIO DESDE i=0 hasta 3 hacer DESDE j=0 hasta 3 hacer LEER (A(I,J)) FIN_DESDE FIN_DESDE FIN

ESTRUCTURA DE DATOS ARREGLO - MATRIZ

3 Desarrollo de la Solucin (Codificacin) package dominioDeAplicacion; import biblioteca.* ; Class PrgMatriz{ PrgMatriz( ){ } public static void main(String args[]) { int a[][]=new int [3][3]; for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { System.out.println("ingrese elemento"); a[i][j]=Lectura.leerInt(); } } }

Algoritmo y Estructura de Datos I

Semana 12 sesin 01

Algoritmo y Estructura de Datos I

Semana 12 sesin 01

Objetivos : Desarrollar soluciones utilizando diversas clases. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 12 sesin 01

Implementacin de programas con varias clases: Creacin de objetos Diagrama de secuencias Aplicaciones

APLICACIONES CON VARIAS CLASES


POR QU?
La solucin de problemas en la programacin orientada a objetos, precisa muchas veces de varias clases para obtener no slo una mejor solucin, sino para que, ms adelante se puede realizar algn cambio sin modificar totalmente la solucin inicial. Como estndar de la FIA, la implementacin de las clases identificadas para la solucin de problemas, se harn en el paquete dominio de aplicacin; y si adems usted desea implementar clases de soporte, stas se crearn en el paquete biblioteca.
(from domAplic)

Clase1

+objClase3 Clase2

(from domAplic)

Clase3

Clase1( ) operacion1( ) operacion2( ) operacion3( )

(from domAplic)

Clase2( ) operacion1( ) operacion2( ) operacion3( )

+objClase2

Clase3( ) operacion1( ) operacion2( ) operacion3( )

(from domAplic)

Clase4

-objClase4

Clase4( ) operacion1( ) operacion2( ) operacion3( )

CREACIN DE OBJETOS
objClase1 (from domAplic) (from domAplic)

PrgClase

(from domAplic)

Clase1

Clase2

PrgClase( ) main( ) operacion1( )

objClase2

En la codificacin: Para que la clase PrgClase pueda usar los mtodos de otras clases, debe crear objetos de esas clases. Formatos:

Clase2( ) operacion1( ) operacion2( ) operacion3( )

Clase1( ) operacion1( ) operacion2( )

Clase referencia = new constructor( );


Ejemplos: Clase1 objClase1 = new Clase1(); Clase2 objClase2 = new Clase2();

Clase referencia; referencia = new constructor ( );


Ejemplo: Clase1 objClase1; objClase1 = new Clase1();

CREACIN DE OBJETOS
objClase1 (from domAplic) (from domAplic)

Clase1

PrgClase

(from domAplic)

Clase2

PrgClase( ) main(args[]:String ):void operacion1( ):void

objClase2

Clase2( ) operacion1( ):void operacion2( ):String operacion3( ):int

Clase1( ) operacion1(n:int):void operacion2( ):int operacion3(x:int):double

Para llamar a los mtodos:

referencia metodo( );
Ejemplos: Si los mtodos no retornan valor: objClase2.operacion1( ); objClase1.operacion1(23);

Si los mtodos retornan valor: int x = objClase2.operacion3( ); String a = objClase2.operacion2( ); int y = 17; double z=objCalse1.operacion3(y);

DIAGRAMA DE SECUENCIAS

: Usuario

: PrgClase

: Clase1

1. main(String) 1.1. PrgClase( ) 1.1.1. Clase1( )

1.2. ingresar( ) 1.2.1. operacionA(String, int, String)

1.3. reportes( ) 1.3.1. operacionB( ) 1.3.2. operacionC( )

APLICACIONES 1 Descripcin del Problema


Se solicita el ingreso de los datos (nombre, edad y sexo) de n personas; luego mostrar los siguientes listados: a) Listado de datos de las Mujeres mayores de edad. b) Listado de personas cuyos nombres empiezan con Me y terminan en Z.

2 Diseo de la Solucin a) Modelamiento


DIAGRAMA DE PAQUETES

dominioDeAplicacion

biblioteca

APLICACIONES
DIAGRAMA DE CLASES
(from dominioDeAplicacion)

Persona

lista1: String lista2:String Persona( ) procesarListados(nom:String, ed:int, sexo:char ): void sacarLista1( ):String sacarLista2( ):String objPersona

(from dominioDeAplicacion)

PrgPersona

PrgPersona( ) main( args[ ]: String ): void ingresarDatos( ): void mostrarListados( ):void

APLICACIONES

: Usuario

: PrgPersona

: Persona

1. main(String) 1.1. PrgPersona( ) 1.1.1. Persona( )

1.2. ingresarDatos( ) 1.2.1. procesarListados(String, int, char)

1.3. mostrarListados( ) 1.3.1. sacarLista1( ) 1.3.2. sacarLista2( )

APLICACIONES
3 Desarrollo de la Solucin (Codificacin)
package dominioDeAplicacion; public class Persona { private String lista1, lista2; public Persona() { lista1 = ""; lista2 = ""; } public void procesarListados(String nom, int ed, char sexo) { if(sexo==F && ed>=18) lista1+=nom+" "+ed+"\n"; if(nom.startsWith(ME") && (nom.endsWith(Z")) lista2+=nom+" "+ed+" "+sexo+"\n"; } public String sacarLista1() { return lista1; } public String sacarLista2() { return lista2; } }

APLICACIONES
package dominioDeAplicacion; import biblioteca.*; public class PrgPersona { Persona objPersona; public PrgPersona() { objPersona = new Persona(); } public void ingresarDatos() { String nom; int ed, n; char sexo; do { n = LE.leerInt(Cuntas personas desea ingresar? "); } while (n <= 0);

APLICACIONES
for (int i = 1; i <= n; i++) { nom = LE.leerString("Nombre: "); nom = nom.toUpperCase(); do { ed = LE.leerInt("Edad: "); } while (ed <= 0 || ed > 100); do { sexo = LE.leerChar("Sexo (F/M): "); sexo = Character.toUpperCase(sexo); } while (sexo!=F && sexo!=M); objPersona.procesarListados(nom, ed, sexo); } }//Fin del metodo ingresarDatos()

APLICACIONES

public static void main(String args[]) { PrgPersona obj=new PrgPersona(); obj.ingresarDatos(); obj.mostrarListados(); } public void mostrarListados() { String lista1,lista2; lista1 = "Listado 1:\n+objPersona.sacarLista1(); lista2 = "Listado 2:\n+objPersona.sacarLista2(); LE.mostrarResultado(lista1+\n+lista2); } }//Fin de clase

Algoritmo y Estructura de Datos I

Semana 13 sesin 01

Algoritmo y Estructura de Datos I

Semana 13 sesin 01

Objetivos : Desarrollar soluciones con diversas clases utilizando vectores. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 13 sesin 01

Vectores en varias clases: Aplicacin

VECTORES USANDO DOS CLASES


PROBLEMA
Ingresar nombres de n alumnos y luego mostrarlo en un listado. public class Alumno { private String nombre[]; 1. Declarar el arreglo private int conta; public Alumno(int n ) { nombre=new String[n]; 2. Crear el arreglo } public void guardarNombre(String nom) { nombre[conta]=nom; nombre[conta++]=nom; conta++; } public String sacarNombre(int i) { return nombre[i]; posicin o ndice del } nombre a sacar. public int sacarConta(){ return conta; } }

APLICACIONES
import biblioteca.*; public class PrgMenu { Persona objPersona; //referencia de Persona public PrgMenu() { } public static void main(String args[]) { PrgMenu obj = new PrgMenu(); obj.menu(); } public void ingresarNombres() { 3. Inicializar el arreglo int n; String nom; n = LE.leerInt(Cuntos alumnos desea ingresar?"); objAlumno=new Alumno(n); for(int i=1;i<=n;i++) { nom=LE.leerString(Ingrese nombre #+i+:); objAlumno.guardarNombre(nom.toUpperCase()); } }

APLICACIONES
public void listado() { String lista = "LISTADO DE ALUMNOS\n\n"; for (int i = 0; i < objAlumno.sacarConta(); i++) { lista += objAlumno.sacarNombre(i) + "\n"; } LE.mostrarResultado(lista); } public void menu() { int op; String texto = ""; texto += "********* Menu ***********\n"; texto += "[1] Ingresar Datos\n"; texto += "[2] Listado\n"; texto += "[3] Salir\n"; texto += "***************************\n"; texto += "\nIngrese su opcion:\n";

APLICACIONES
do { op = LE.leerInt(texto); switch (op) { case 1 : ingresarNombres(); break; case 2 : listado(); break; case 3 : System.exit(0); default : LE.mostrarInformacion("Opcion no vlida"); } } while (op != 3); }//Fin del mtodo }//Fin de la clase PrgMenu

Algoritmo y Estructura de Datos I

Semana 13 sesin 02

Algoritmo y Estructura de Datos I

Semana 13 sesin 02

Objetivos : Desarrollar soluciones con diversas clases utilizando vectores paralelos. Aplicar algoritmos de bsqueda en vectores paralelos. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 13 sesin 02

Vectores en varias clases: Vectores Paralelos. Algoritmos: Bsqueda

VECTORES PARALELOS
Sean los 3 vectores paralelos: int codigo[ ]; String nombre[ ], apellido[ ];
0
codigo

1 002 Rosa Garca

2 003 Carlos Garrido

3 004 Jerry Paz

4 005 Katty Arcos

5 006 Rubn Bartra

6 007 Isabel Caldern

001 Cecilia Vsquez

nombre

apellido

Si se quiere sacar los datos de la penultima persona: String datos=codigo[5]+ +nombre[5]+ +apellido[5];

VECTORES - BUSQUEDA
BSQUEDA
1. Bsqueda Secuencial Cuando el vector no est ordenado, tenemos la alternativa de recorrer todo el vector secuencialmente hasta que se encuentre el elemento buscado. /** * Devuelve la posicin, de lo contrario devuelve 1. La posicin retornada * es del primer elemento que se encontr con el cdigo especificado. */ public int buscarXCodigo(String codi) { for(int i=0;i<conta;i++) { if(codigo[i].equals(codi)) return i; } return -1 }

VECTORES - BUSQUEDA
BSQUEDA
2. Bsqueda Binaria
La Bsqueda Binaria se utiliza en arreglos ordenados y se realiza desde la mitad del vector. En todo momento, se mantendr dos variables inicio y fin, que delimitan la parte del vector y una variable medio que se iguala al punto medio en el rango actual (redondeando hacia abajo si el rango tiene un nmero par de elementos). Se sigue los siguientes pasos: Se empieza comparando con el elemento central o medio. Si el elemento buscado es mayor que el elemento central entonces deber estar en la mitad superior del vector. Si es menor que el valor central, entonces se encontrar en la mitad inferior. Sea el siguiente arreglo ordenado:
inicio numero fin

-8

-2

11 38 42 57

VECTORES - BUSQUEDA

public int buscarNumero(int n) { int inicio=0; int fin=numero.length-1; int medio; while( inicio < = fin ) { medio = ( inicio + fin ) / 2; if( n > numero[medio] ) inicio = medio + 1; else if ( n < numero[medio] ) fin = medio - 1; else return medio; } return 1; }

Algoritmo y Estructura de Datos I

Semana 14 sesin 02

Algoritmo y Estructura de Datos I

Semana 14 sesin 02

Objetivos : Aplicar algoritmos de ordenamiento en vectores paralelos. Aplicar algoritmos de eliminacin en vectores paralelos. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 14 sesin 02

Vectores en varias clases: Algoritmos: Ordenamiento Eliminacin

VECTORES - ORDENAMIENTO
ORDENAMIENTO
El objetivo de este proceso generalmente es facilitar la bsqueda de uno o ms elementos pertenecientes a un conjunto. Son ejemplos de datos ordenados las listas de los alumnos matriculados en una cierta asignatura, los ndices alfabticos de los libros, las guas telefnicas, etc. La ordenacin, tanto numrica como alfanumrica, sigue las mismas reglas que empleamos nosotros en la vida normal. Esto es, un dato numrico es mayor que otro cuando su valor es ms grande, y una cadena de caracteres es mayor que otra cuando est despus por orden alfabtico.

Antes: X

15

-7

Despus: X -7

10

15

VECTORES - ORDENAMIENTO
ORDENAMIENTO
CASO 1: int aux; for(int i =0; i<conta-1; i++){ for(int j=i+1; j<conta; j++){ if(x[ j ]<x [i ]) { aux = x[ i ]; x[ i ] = x[ j ]; x[ j ] = aux; } } } CASO 2: int aux, n = conta; boolean s = true; while(s && n-1>0){ s=false; //no hay intercambios for(int i=1;i<n;i++){ if(x[i-1]>x[i]) { aux = x[i-1]; x[i-1] = x[i]; x[i] = aux; s = true; } } n- -; }

VECTORES - ELIMINACION
ELIMINACIN
El borrado de un elemento de un vector puede ser: Por valor: Es necesario recorrer el vector para encontrar el valor o dato a eliminar. Por posicin: Si la posicin existe, se procede a eliminar el elemento.

public void eliminarXPosicion(int pos) { for(int j = pos; j < conta-1; j++) { codigo[ j ] = codigo[ j +1]; nombre[ j ] = nombre[ j +1]; apellido[ j ] = apellido[ j +1]; } conta- -; }

VECTORES PARALELOS - APLICACION

PROBLEMA Implementar un programa que permita registrar los datos: cdigo, nombre y fecha de nacimiento de empleados de una empresa, para luego realizar las sgtes. operaciones: Eliminar un empleado cundo ste ya no trabaje en la empresa. Modificar uno o ms datos del empleado si hay algn error. Mostrar un listado de los empleados ordenados por nombre o fecha de nacimiento.

VECTORES PARALELOS - APLICACION


CMO SE ALMACENARN LOS CDIGOS, NOMBRES Y FECHAS DE NACIMIENTO DE LOS EMPLEADOS? Veamos un ejemplo:

codigo
0 1 2 3 4 5 001 002 003 004 005 006

nombre
GINA ANA MARIO JUAN PEDRO NANCY

fechaNaci
1978-01-01 1970-10-08 1978-08-15 1973-02-16 1978-03-11 1978-05-18

...

...

COMO HAY 6 EMPLEADOS, ENTONCES: conta = 6

...

VECTORES PARALELOS - APLICACION QU PASOS SEGUIR PARA ELIMINAR UN EMPLEADO?


Supongamos que se quiere eliminar al empleado con cdigo=004:

codigo
0 1 2 3 4 5 001 002 003 004 005 006

nombre

GINA ANA MARIO JUAN JUAN PEDRO NANCY

fechaNaci
1978-01-01 1970-10-08 1978-08-15 1973-02-16 1978-03-11 1978-05-18

1. Buscar por cdigo (dato que no se repite) para obtener posicin. 2. Eliminar los datos del empleado en los 3 vectores, que tienen la posicin encontrada.

...

...

...

VECTORES PARALELOS - APLICACION Qu sucede con los vectores luego de la eliminacin? ANTES
0 1 2 3 4 5 001 002 003 004 005 006

DESPUES
001 002 003 005 006 006

codigo codigo

for(int j=i; j<conta-1; j++){ codigo [ j ] = codigo [ j+1]; nombre [ j ] = nombre [ j+1]; fechaNaci [ j ] = fechaNaci [ j+1]; } conta--;

ACTUALIZAR CONTA Antes: conta = 6 Despus: conta = 5

...

...

VECTORES PARALELOS - APLICACION Qu sucede con los vectores luego de la eliminacin? ANTES DESPUES

nombre
0 GINA 1 ANA 2 MARIO 3 JUAN 4 PEDRO 5 NANCY

nombre
GINA ANA MARIO PEDRO NANCY NANCY

ACTUALIZAR CONTA Antes: conta = 6 Despus: conta = 5

for(int j=i; j<conta-1; j++){ codigo [ j ] = codigo [ j+1]; nombre [ j ] = nombre [ j+1]; fechaNaci [ j ] = fechaNaci [ j+1]; } conta--;

...

...

VECTORES PARALELOS - APLICACION Qu sucede con los vectores luego de la eliminacin? DESPUES ANTES fechaNaci fechaNaci
0 1 2 3 4 5 1978-01-01 1970-10-08 1978-08-15 1973-02-16 1978-03-11 1978-05-18

ACTUALIZAR CONTA Antes: conta = 6 Despus: conta = 5

1978-01-01 1970-10-08 1978-08-15 1978-03-11 1978-05-18 1978-05-18

for(int j=i; j<conta-1; j++){ codigo[ j ] = codigo[ j+1]; nombre[ j ] = nombre[ j+1]; fechaNaci[ j ] = fechaNaci[ j+1]; } conta--;

...

...

VECTORES PARALELOS - APLICACION CMO MODIFICAR LOS DATOS DE UN EMPLEADO?


Supongamos que se quiere modificar datos del empleado con cdigo=003:

codigo
0 1 2 3 4 001 002 003 003 004 005

nombre

GINA ANA MARIO PEDRO NANCY

fechaNaci
1978-01-01 1970-10-08 1978-08-15 1978-03-11 1978-05-18

1. Buscar por cdigo para obtener posicin. 2. Modificar dato(s) del empleado que se encuentra(n) en la posicin encontrada.
NOTA: NO EST PERMITIDO MODIFICAR CDIGOS.

...

...

...

MARCO

1988-08-15

VECTORES PARALELOS - APLICACION Luego de la MODIFICACIN

codigo
0 1 2 3 4 001 002 003 004 005

nombre

GINA ANA MARCO PEDRO NANCY

fechaNaci
1978-01-01 1970-10-08 1988-08-15 1978-03-11 1978-05-18

//Modificando fecha de nacimiento fechaNaci [i] = nuevaFecha

...

...

//Modificando nombre nombre [i] = nuevoNombre;

...

VECTORES PARALELOS - APLICACION CMO MOSTRAR A LOS EMPLEADOS ORDENADOS POR NOMBRE?

codigo
0 1 2 3 4 001 002 003 004 005

nombre
GINA ANA MARCO PEDRO NANCY

fechaNaci

1978-01-01 1970-10-08 1988-08-15 1978-03-11 1978-05-18

codigo
0 1 2 3 4 002 001 003 005 004

nombre

ANA GINA MARCO NANCY PEDRO

fechaNaci
1970-10-08 1978-01-01 1988-08-15 1978-05-18 1978-03-11

Pasos: 1. Ordenar por nombre. 2. Mostrar listado.

Algoritmo y Estructura de Datos I

Semana 15 sesin 01

Algoritmo y Estructura de Datos I

Semana 15 sesin 01

Objetivos : Desarrollar soluciones con diversas clases utilizando matrices. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 15 sesin 01

MATRICES

Matrices - Aplicacin Aplicando Mtodo para la solucin de problemas 1 Descripcin del Problema Se desea calcular el promedio entre la mayor y menor edad de una matriz 3 x 3 . Desarrolle un programa que permita leer las edades,calcular y luego mostrar los resultados por pantalla.

Matrices - Aplicacin 2 Diseo de la Solucin a) Modelamiento


Diagrama de Paquetes

dominioDeAplicacion

biblioteca

PrgAlumno
(from dominioAplicacion)

Alumno
(from dominioAplicacion)

objCur PrgAlumno( ) main( ) ingresar():void calcular():void mostrar():void

x[ ]: int Alumno( )
guardarElemento(i:int, j:int , nota:int):void calcularPromedioAmbos():int

sacarElemento(i:int, j:int): int Diagrama de Clases

Matrices - Aplicacin
Diagrama de Secuencias
: Usuario : PrgAlumno : Alumno

1. main(String) 1.1. PrgAlumno( ) 1.1.1. Alumno( )

1.2. ingresar( ) 1.2.1. guardarElemento(int, int,int)

1.3. calcular( ) 1.3.1. calcularPromedioAmbos( )

1.4. mostrar( ) 1.4.1. sacarElemento(int,int )

Matrices - Aplicacin import Libreria.*; class PrgAlumno { } public PrgAlumno() { objAl=new Alumno(); } public static void main(String[] args) { PrgAlumno obj=new PrgAlumno(); obj.ingresar(); obj.calcular(); obj.mostrar(); } Alumno objAl;
3 Desarrollo de la Solucin (Codificacin)

Matrices - Aplicacin public void ingresar() { int ed; for(int i=0; i<3;i++) { for(int j=0; j<3;j++) { ed=LE.leerInt(edad:"); objAl.guardarElemento(ed,i,j); } } }

Matrices - Aplicacin

public void calcular() { LE.mostrarResultado("Promedio entre el mayor y menor Nmero es:\n""+objCur.calcularPromedioAmbos());


}

Matrices - Aplicacin public void mostrar() { String cad=" "; for(int i=0;i<3;i++) { for(int j=0;j<3;j++) cad=cad+objAl.sacarElemento(i,j)+" "; cad=cad+"\n"; } LE.mostrarResultado(cad); }

Matrices - Aplicacin public class Alumno { } public Alumno() { } public void guardarElemento(int ed, int i, int j) { } public int sacarElemento(int i, int j) { } return x[i][j]; x[i][j]=ed; x=new int[3][3]; int x[ ][ ];

Matrices - Aplicacin public int calcularPromedioAmbos() { int mayor=x[0][0]; int menor=x[0][0]; for(int i=0;i<3;i++) { for(int j=0; j<3;j++) { if(mayor>x[i][j]) mayor=x[i][j]; else if(menor<x[i][j]) menor=x[i][j]; } } return (mayor+menor)/2; }

Matrices - Aplicacin

Resultado

Algoritmo y Estructura de Datos I

Semana 16 sesin 01

Algoritmo y Estructura de Datos I

Semana 16 sesin 01

Objetivos : Desarrollar soluciones con diversas clases utilizando matrices. Desarrollar algoritmos bsicos para la manipulacin de los datos de la matriz. Solucionar problemas aplicando el mtodo planteado.

Algoritmo y Estructura de Datos I

Semana 16 sesin 01

MATRICES

Matrices - Aplicacin Aplicando Mtodo para la solucin de problemas

1 Descripcin del Problema


En el curso de Lenguaje, el profesor tiene 5 alumnos y ha tomado 3 prcticas calificadas. Desarrolle un programa que permita leer las prcticas calificadas, luego mostrar dichas notas por pantalla.

Matrices - Aplicacin 2 Diseo de la Solucin a) Modelamiento


Diagrama de Paquetes

dominioDeAplicacion

biblioteca

PrgCurso
(from dominioAplicacion)

Curso
(from dominioAplicacion)

objCur PrgCurso( ) main( ) ingresar():void mostrar():void

x[ ]: int Curso( )
guardarElemento(i:int, j:int , nota:int):void

sacarElemento(i:int, j:int): int Diagrama de Clases

Matrices - Aplicacin

: Usuario

: PrgCurso

: Curso

1. main(String) 1.1. PrgCurso( ) 1.1.1. Curso( )

1.2. ingresar( ) 1.2.1. guardarElemento(int, int, int)

1.3. mostrar( ) 1.3.1. sacarElemento(int,int )

Matrices - Aplicacin import Libreria.*; class PrgCurso { Curso objCur; } public PrgCurso() { objCur=new Curso(); } public static void main(String[] args) { PrgCurso obj=new PrgCurso(); obj.ingresar(); obj.mostrar(); }
3 Desarrollo de la Solucin (Codificacin)

Matrices - Aplicacin public void ingresar() { int nota; for(int i=0; i<4;i++) { for(int j=0; j<3;j++) { nota=LE.leerInt("prctica:"+(j+1)); objAl.guardarElemento(nota,i,j); } } }

Matrices - Aplicacin public void mostrar() { String cad=" "; for(int i=0;i<4;i++) { for(int j=0;j<3;j++) cad=cad+objAl.sacarElemento(i,j)+" "; cad=cad+"\n"; } LE.mostrarResultado(cad); }

Matrices - Aplicacin public class Curso { } public Curso() { } public void guardarElemento(int nota, int i, int j) { } public int sacarElemento(int i, int j) { } return x[i][j]; x[i][j]=nota; x=new int[4][3]; int x[ ][ ];

Matrices - Aplicacin

Ingreso de Notas

Visualizar Notas

Algoritmo y Estructura de Datos I

Semana 16 sesin 02

Algoritmo y Estructura de Datos I

Semana 16 sesin 02

Objetivos : Conocer otras formas de dimensionar un arreglo. Diferenciar los arreglos convencionale con los arreglos creados utilizando la Clase Vector de Java.

Algoritmo y Estructura de Datos I

Semana 16 sesin 02

CLASE VECTOR Mtodos y ejercicios

Algoritmo y Estructura de Datos I

Clase Vector
Los Arreglos convencionales tienen un tamao fijo, eso significa que no pueden crecer ni reducirse en tipo de ejecucin. La Clase Vector permite crear estructuras que permite dimensionarse en tiempo de ejecucin.

Clase Vector Si el Vector necesita crecer, el sistema duplicar automticamente el tamao del vector cada vez que necesita capacidad adicional. Los Vectores se disearon para referenciar Objetos Object, eso quiere decir que podemos almacenar referencias a objetos de cualquier tipo de clase en un vector.
antes

despus

Clase Vector Mtodos de la Clase vector: v.addElement(input.getText()) --> Agrega Elemento v.removeElement(input.getText())---> Elimina un elemento si lo encuentra y todos los elementos corren una pocision. v.firstElement()---> Primer elemento del vector v.lastElement() ---> Ultimo elemento v.isEmpty() ---> Si el vector esta vacio, true elementos si no hay

Clase Vector v.contains(searchKey) ---> Contiene clave de busqueda, true si esta v.indexOf(input.getText())---> Obtiene el indice de la primera pocision, si no encuentra devuelve -1 v.trimToSize() --> Reduce la capacidad al numero de elementos que existe en la actualidad. v.size() , v.capacity() ---> Para determinar el numero de elementos en el vector actual y el numero de elementos que pueden almacenarse.

Algoritmo y Estructura de Datos I 2004 - I

GUA TERICA DEL DOCENTE. Todos los derechos reservados.

You might also like