Versin 6.5
INTRODUCCIN
Versin 6.5
Plan de Estudios
IC
AEDI
FDWeb
AEDII
BD
SWI
Prog I
SWII
Prog II
DI
II
Electivos
Prcticas en FIA-DATA
Versin 6.5
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.
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.
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
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.
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.
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.
La monografa deber ser presentada en base al modelo utilizado en la FIA. Recuerde agregar en contenido los puntos aqu establecidos.
Versin 6.5
Aspectos
Presentacin. Organizacin. Exposicin. Contenido. Material adicional.
Ponderacin
1. 1. 4. 4. 1.
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.
Versin 6.5
Anotaciones:
Versin 6.5
Unidad I:
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
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.
n veces
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.
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
dominioDeLaAplicacin. biblioteca.
nombrePaquete
Carpeta. Perro.
NombreClase
(NombrePaquete al que pertenece)
Atributos Operaciones
SeresVivos Hombre
(SeresVivos)
SeresVivos Hombre
(SeresVivos)
Estructuras de Datos.
Algoritmos.
Casos de Uso
Modelo
Componentes
Diagramas de Actividad
Distribucin
Dependencia
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 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 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 PrgMensaje main() ENTRADA: sueldo SALIDA: sueldo INICIO NUMERO sueldo sueldo = 0 LEER sueldo sueldo = sueldo * 0.85 ESCRIBIR sueldo FIN
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.
Para escribir el resultado de una expresin (observe que no se utilizan comillas) se utiliza: ESCRIBIR x + 2
+
* / **
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.
<
> =
Menor que.
Mayor que. Igual que.
NO (Not)
Y (And) O (Or)
Negacin.
Conjuncin. Disyuncin.
<=
>= <>
Variables.
Mtodos. Clases.
Interfaces.
Paquetes.
class ... { }
nombrePaquete
Paquete: Conjunto de clases similares. Un paquete permiten organizar las clases. Un paquete contiene clases que tienen funciones similares.
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.
class NombreClase { .. }
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.
Algoritmo
n veces
Diseado en
Diseo Solucin
Ingeniera reversa
Desarrollo Solucin
PSEUDOCODIGO
Codificacin
Depuracin Pruebas
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 DE DATOS
Versin 6.5
Almacenamiento de datos
En Pseudocdigo identificador = valor En Java identificador = valor ;
ESTRUCTURAS DE DATOS
Versin 6.5
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.
Disear el algoritmo para los diferentes mtodos. Utilice pseudocdigo o diagrama de flujo.
3.
Descripcin Problema
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
1.
RESULTADO DESEADO:
Mostrar el mensaje de bienvenida Hola junto con el nombre Pedro.
Definicin Solucin
2.
3.
PROCESAMIENTO: El mensaje Hola ser almacenada junto con el nombre Pedro en una variable (nombre) y luego se mostrar la variable.
1.
Diseo Solucin
2.
dominioDeLaAplicacion
PrgMensaje main()
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).
ESTRUCTURAS LGICAS
Versin 6.5
LEER nombreVariable
ESTRUCTURAS LGICAS
Versin 6.5
ESCRIBIR nombreVariable
ESCRIBIR x + 2 ESCRIBIR Hola
System.out.print ( Hola ) ;
Analice los modificadores \n y \t.
3.
Descripcin Problema
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
1.
RESULTADO DESEADO:
2.
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. 2.
Diseo Solucin
1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.
3.
n veces
Estructuras de datos
Variables y constantes..
Ingeniera reversa
Diseo Solucin
Desarrollo Solucin
Depuracin Pruebas
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
Conversin de datos.
Funciones matemticas.
Desarrollo Solucin
Depuracin Pruebas
Manejo de cadenas.
Genera error
No genera error double num1 = 20, num2 = 3 ; int div ; div = ( int ) ( num1 / num2 ) ; System.out.println ( div ) ;
3.
Descripcin Problema
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
1. 2.
Diseo Solucin
1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.
3.
Mtodos:
1. 2. 3. 4. 5. 6. abs( ). acos( ). asin( ). cos( ). log( ). max( ). 7. min( ).
8.
9.
pow( ).
random( ).
3.
Descripcin Problema
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
1. 2.
Diseo Solucin
1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.
3.
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( ).
6.
indexOf( ).
3.
Descripcin Problema
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
1. 2.
Diseo Solucin
1. Definir un nombre para el proyecto. 2. Definicin de diagramas y relaciones. 3. Definicin de paquetes y clase.
3.
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 !!
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 !!
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.
n veces
Diseo Solucin
Conversin de datos.
Funciones matemticas.
Desarrollo Solucin
Depuracin Pruebas
Manejo de cadenas.
Versin 6.5
Semana 03
Objetivos :
Algoritmo y Estructura de Datos I Mtodo de las 6D Soluciones con dos paquetes (sin objeto)
Versin 6.5
n veces
Diseo Solucin
Simple (SI).
Desarrollo Solucin
Doble (SI/SINO).
Depuracin Pruebas
ESTRUCTURAS LGICAS
Versin 6.5
FORMATOS:
PSEUDOCODIGO
SI (condicin) ENTONCES instrucciones... FINSI
JAVA
if (condicin) { sentencias... }
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.
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
FORMATOS:
PSEUDOCODIGO
SI (condicin) ENTONCES instrucciones... SINO instrucciones... FINSI
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.
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
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... }
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 %
ESTRUCTURAS LGICAS
Versin 6.5
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.
Categoria A B C
INTNTALO!! SEMANA 03
Versin 6.5
INTNTALO !!
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 !!
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 !!
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 !!
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.
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 !!
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.
n veces
Diseo Solucin
Desarrollo Solucin
Depuracin Pruebas
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
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
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.
ESTRUCTURAS DE DATOS
Versin 6.5
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.
ESTRUCTURAS LGICAS
Versin 6.5
FORMATOS:
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.
ESTRUCTURAS DE DATOS
Versin 6.5
Ejemplo:
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.
ESTRUCTURAS LGICAS
Versin 6.5
FORMATOS:
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.
Desarrollar la codificacin.
ESTRUCTURAS DE DATOS
Versin 6.5
Ejemplo:
En Pseudocdigo sw = FALSO
En Java sw = false ;
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.
ESTRUCTURAS LGICAS
Versin 6.5
FORMATOS:
PSEUDOCODIGO PROBAR instruccin 1 . . . instruccin n ERROR FINPROBAR try { sentencia 1 . . . sentencia n } catch (Excepcin) { } JAVA
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;
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.
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 !!
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 !!
[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 !!
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 !!
El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.
INTNTALO!! SEMANA 04
Versin 6.5
INTNTALO !!
* ** *** ****
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 !!
El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.
INTNTALO!! SEMANA 04
Versin 6.5
INTNTALO !!
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.
El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.
INTNTALO!! SEMANA 04
Versin 6.5
INTNTALO !!
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.
El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.
n veces
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.
Versin 6.5
Unidad II:
Semana 05
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 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.
CLASES Atributos.
NombreClase
(NombrePaquete al que pertenece)
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.
Estructuras de Datos.
CLASES Mtodos.
NombreClase
(NombrePaquete al que pertenece)
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.
Algoritmos.
CLASIFICACION: Mtodo de clase. Mtodo de objeto o instancia. Mtodos especiales Mtodo principal. Mtodo constructor.
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.
nombreObjeto : NombreClase
DIAGRAMAS
Use Case Use Case Diagramas de Diagrams Diagrams
Secuencia
Casos de Uso
State
Modelo
Componentes
Diagramas de Actividad
Distribucin
PAUTAS ADICIONALES
CREAR
EJECUTAR
PARAMETRO RETORNO CLASE
DEFINICION DE OBJETOS
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.
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.
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).
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.
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).
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) .
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) .
METODOS DE INSTANCIA
void nombreMetodo ( ) { ... } void nombreMetodo (parametros) { ... }
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).
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.
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.
DESARROLLO DE SOLUCIONES OO
Versin 6.5
1.
ProyNotas.
2. DEFINICIN DE DIAGRAMAS Y RELACIONES: 2.1 Diagrama de paquetes y especificacin de clase.
Diseo Solucin
DESARROLLO DE SOLUCIONES OO
Versin 6.5
2.
Diseo Solucin
DESARROLLO DE SOLUCIONES OO
Versin 6.5
3. Desarrollo de Algoritmos.
DESARROLLO DE SOLUCIONES OO
Versin 6.5
CODIFICAR EL PROYECTO:
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).
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.
INTNTALO!! SEMANA 05
Versin 6.5
INTNTALO !!
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 !!
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 !!
Sugerencia;
El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.
Modelamiento
Ingeniera reversa Notacin UML
Diseo Solucin
Desarrollo Solucin
Algoritmo
Depuracin Pruebas
Diseado en PSEUDOCODIGO
Codificacin
Lenguaje de programacin
JAVA
Versin 6.5
Unidad III:
Semana 06 a semana 08
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).
Versin 6.5
Estructuras de datos
Arreglos: Unidimensional : Vectores. Bidimensional : Matrices.
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:
ESTRUCTURAS DE DATOS
Versin 6.5
32
-2
174
nombres[ ] 0 1 2 3 4
tamao=6 5
Juan
Jose
Cindy
Ivette
Jessica
Wilbe
ESTRUCTURAS DE DATOS
Versin 6.5
tipoDato nombre_del_vector [ ]
tipoDato [ ] nombre_del_vector ;
Ejemplos:
Ejemplos:
ESTRUCTURAS DE DATOS
Versin 6.5
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
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
nombre_del_vector[ndice] = valor
Ejemplos;
Ejemplos;
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
variable = nombre_del_vector.length ;
Ejemplos:
Ejemplos:
ESTRUCTURAS DE DATOS
Versin 6.5
Declaracin y creacin:
En Java tipoDato nombre_del_vector [ ] = new tipoDato [tamao] ;
ESTRUCTURAS DE DATOS
Versin 6.5
Arreglo Tipo Vector Simple Ingreso de datos - Usando estructura de repeticin for
String nombre[];
nombre= new String[10];
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.
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
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
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.
Desarrollar la codificacin.
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.
Desarrollar la codificacin.
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
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
Desarrollar la codificacin.
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).
Versin 6.5
Estructuras de datos
Arreglos: Vectores. Matrices.
ESTRUCTURAS DE DATOS
Versin 6.5
Arreglos - Matrices
columnas = 4
filas = 2
0 1
32 14
-2 12
0 -5
ESTRUCTURAS DE DATOS
Versin 6.5
tipoDato identificador [ ][ ]
tipoDato [ ][ ] identificador ;
Ejemplos;
Ejemplos;
ESTRUCTURAS DE DATOS
Versin 6.5
Ejemplos;
Ejemplos;
- nombres = new String [2][10] ; - sueldos = new double [numAlu][numNot] ; - letras = new char [4][total] ;
ESTRUCTURAS DE DATOS
Versin 6.5
Ejemplos;
Ejemplos;
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.
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.
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.
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.
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 !!
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 !!
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 !!
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 !!
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.
n veces
Estructuras de datos
Arreglos:
Ingeniera reversa
Diseo Solucin
Desarrollo Solucin
Vectores. Matrices.
Depuracin Pruebas
Versin 6.5
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).
Versin 6.5
n veces
Diseo Solucin
Desarrollo Solucin
Depuracin Pruebas
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?
Tipos:
1. 2. 3. Bsqueda secuencial. Bsqueda binaria. Bsqueda de hashing.
3
. . .
. . . . . .
FIN
numAlu = X
(int)
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?
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
gran
tamao
para
Desarrollar la codificacin.
Tipos:
1. 2. 3. 4. Mtodo de la Burbuja (intercambio). Mtodo de Insercin. Mtodo de Seleccin Mtodo QuickSort.
Danae
numAlu = 3
(int) (String) (String) (String)
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?
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
gran
tamao
para
Desarrollar la codificacin.
INTNTALO!! SEMANA 07
Versin 6.5
INTNTALO !!
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 !!
Sugerencia;
El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.
n veces
Diseo Solucin
Desarrollo Solucin
Depuracin Pruebas
Versin 6.5
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)
Versin 6.5
n veces
Diseo Solucin
Desarrollo Solucin
Depuracin Pruebas
Uso de estructuras lgicas para el manejo de datos en arreglos en paralelo de gran tamao.
: :
numTrab - 1
: : :
nombre de los trabajadores
: :
numTrab - 1
: : :
sueldo de los trabajadores
Grfica de Estructuras
(del ejemplo anterior)
codigos
0 1 2 3 . . . 9999
. . .
nombres
promedios
. . .
. . .
numAlu = 0
(int)
(long)
(String)
(double)
Modificacin de Datos
Dado los datos siguientes:
0 1 2
codigos 10 20 30
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.
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.
Desarrollar la codificacin.
Grfica de Estructuras
(del ejemplo anterior)
codigos
0 1 2 3 . . . 9999
. . .
nombres
promedios
. . .
. . .
numAlu = 0
(int)
(long)
(String)
(double)
Eliminacin de Datos
Dado los datos siguientes:
0 1 2
codigos 10 20 30
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.
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.
Desarrollar la codificacin.
INTNTALO!! SEMANA 08
Versin 6.5
INTNTALO !!
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 !!
Sugerencia;
El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.
n veces
Diseo Solucin
Desarrollo Solucin
Depuracin Pruebas
Uso de estructuras lgicas para el manejo de datos en arreglos en paralelo de ran tamao.
Versin 6.5
Unidad IV:
Semana 10
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
Label
TextField
Button
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
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.
TextField:TxtClave
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
* El trmino herencia es utilizado en biologa para referirse a ciertas caractersticas fsicas y de comportamiento que son comunes entre familiares (padres e hijos).
HERENCIA
EJEMPLOS
Persona
Factura
Vendedor
Cliente
FacturaContado
FacturaCredito
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.
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
CONCLUSIONES
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).
Versin 6.5
EJEMPLO PRCTICO
En base a los conceptos tratados en la clase anterior desarrolle la siguiente Jerarqua de Clases.
Figura
Circulo
Rectangulo
Cuadrado
Versin 6.5
Unidad VI:
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
Versin 6.5
n veces
Diseo Solucin
Clase Vector
Desarrollo Solucin
Interfaz Enumeration
Depuracin Pruebas
Versin 6.5
Estructuras de Datos
(en memoria principal)
LINEALES
NO LINEALES
Estticas
Dinmicas
Jerrquicas
No jerrquicas
Variables
Arreglos
Listas
Pilas Colas
rboles
Grafos
Versin 6.5
Estructuras de Datos
(en memoria secundaria)
Archivos
Maana
BD
V
Versin 6.5
Estructuras de Datos
(en memoria principal)
LINEALES
CLASE:
Vector
INTERFAZ:
Estticas
Dinmicas
Enumeration
Variables
Arreglos
Listas
Pilas Colas
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]
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 )
ARREGLO DE OBJETOS
Danae 1000.0 10
- setNombre() - getNombre() - setSueldo() - getSueldo() - setCodigo() - getCodigo()
datos
10 Danae 1000.0
0 1 2
( Empleado )
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.
Mtodos:
Crear objetos Vector:
1. 2. Vector () Vector (Collection c).
3.
4.
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.
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
3.
Descripcin Problema
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
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
3.
Descripcin Problema
1. Identificacin del problema. 2. Descripcin general del problema. 3. Enunciado claro y preciso del problema.
3.
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.
Versin 6.5
n veces
Diseo Solucin
Clase Vector
Desarrollo Solucin
Interfaz Enumeration
Depuracin Pruebas
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.
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.
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.
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
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.
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.
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
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:
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
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.
LISTAS SIMPLES
REPRESENTACIN
EN MEMORIA: VISUALMENTE:
nombre
1
siguiente
3
5 0 2 1 fin
Almond
Agero Alva Acua Alarcn
inicio
2
3 4 5
A travs del uso de listas simples podemos acceder a los datos recorrindolos hacia delante hasta el final.
LISTAS SIMPLES
REPRESENTACIN
EN NODOS: VISUALMENTE:
cabecera
Acua
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.
LISTAS SIMPLES
EJEMPLO
Inicio (cabecera)
Lista
Elemento o nodo
(datos simples)
Almond Ruiz, George William. Alva Pimentel, Csar Eduardo. Fin (null)
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.
ENUNCIADO
Disee una aplicacin para almacenar y administrar los datos de empleados de una empresa, considere lo siguientes datos: cdigo y nombre.
Descripcin Problema
Diseo de la Solucin
1. Diseo de ventana
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
PILAS
CLASIFICACIN
LINEALES
PILAS Estructura de datos lineales, dinmicas.
Estticas
Dinmicas
C B Cima
Variables Arreglos
Listas Pilas
Elemento
Colas
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).
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
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).
PILAS
REPRESENTACIN
Apilar
Desapilar
C B A
Cima
Elemento
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
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
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
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
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
COLAS
REPRESENTACIN
Decolar
D A
Acolar
A B C
primero
ultimo
COLAS
IMPLEMENTACIN
UTILIZANDO VECTORES
cola [ ]
Versin 6.5
Unidad VI:
Semana 13 a Semana 14
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
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
RECURSIVIDAD EN LA PROGRAMACION
EJEMPLOS DE RECURSIVIDAD
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:
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
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
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
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
REPRESENTACION DE UN ARBOL
a b e f c d
E
RAIZ
Representation Textual
Representacin Nodal
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.
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.
A
Grado 2 E H Grado del Arbol 3 B F I C D
raiz hijos
G
hojas Nivel 3
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.
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.
A B D E
C
F
A
B C E F G D
6 4 1 5 9 1 4 5
6 9
(d)
9
nuevo raiz
(b)
nuevo raiz
raiz
raiz
6 6 (c)
4 4
(a)
9
(e)
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 ""; }
Versin 6.5
Semana 13 sesin 02
Versin 6.5
Estructuras de Datos
(en memoria principal)
LINEALES
NO LINEALES
Estticas
Dinmicas
Jerrquicas
No jerrquicas
Variables
Arreglos
Listas
Pilas Colas
Arboles
Grafos
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
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
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.
GRAFOS
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
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.
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.
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.
GRAFOS Ejemplo 1:
G1 = ( V1, A1 )
V1 = {1, 2, 3, 4} A1 = { (1,2), (1,3), (1,4), (2,3), (2,4), (3,4) }
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
GRAFOS Ejemplo 3:
G3 = ( V3 , A3 )
V3 = { 1, 2 , 3 } A2 = { < 1, 2 >, < 2 , 1 >, < 2, 3 > }
Ejemplo:
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
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
Semana 14 Sesin 01
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.
Semana 14 Sesin 01
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.
Semana 14 Sesin 01
Archivo: Empleado.dat
Nombre del Campo codigo nombre sueldo Tipo de Dato TEXTO TEXTO NUMERO 10 40 12 2 Longitud
Semana 14 Sesin 01
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.
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.
Semana 14 Sesin 01
PROBLEMA : ETAPA 3
Diseo Solucin
3. DEFINICIN DE CLASES:
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
Semana 14 Sesin 02
Transacciones :
Histricos :
Back-up :
Temporales :
Semana 14 Sesin 02
INDEXADO :
Semana 14 Sesin 02
Alumno.dat
PrgCalculo
Proceso de Calculo
becas.dat
reporte
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
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 !!
El profesor del curso puede solicitar este problema resuelto a partir de la siguiente sesin de clase.
Versin 6.5
Unidad VII:
Programacin Grfica
Semana 15
Versin 6.5
Semana 15 sesin 1 y 2
Objetivos :
Versin 6.5
PROGRAMACION GRAFICA Estas funciones permiten dibujar grficos en la pantalla. El API de Java nos permite fcilmente:
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:
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++.
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;
Versin 6.5
clearRect( x,y,ancho.alto )
drawRoundRect( x,y,ancho,alto,anchoArco,altoArco ) fillRoundRect( x,y,ancho,alto,anchoArco,altoArco )
Versin 6.5
fillArc( x,y,ancho,alto,anguloInicio,anguloArco )
drawPolygon( int[] puntosX,int[] puntosY[],numPuntos ) fillPolygon( int[] puntosX,int[] puntosY[],numPuntos )
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));
Versin 6.5
EJEMPLO 1:
Dibujar lo siguiente:
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); } }
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