Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero...

94
Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitec Juan José Montero Román. [email protected] Sesión 1

Transcript of Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero...

Page 1: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Algoritmo y Estructura de Datos I 2006 - I

Facultad de Ingeniería y Arquitectura

Juan José Montero Román.

[email protected]

Sesión 1

Page 2: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Sesión 1

Page 3: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Para comenzar a trabajar con Eclipse Dar doble click al icono del Eclipse en cual se encontrara en su escritorio y aparecerá el ambiente de trabajo del Eclipse (Workbench)

El Workbench es una colección de ventanas. Cada ventana contiene un menú bar, una barra de herramientas y una barra de acceso rápido

Presentación y uso del Eclipse

Page 4: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.
Page 5: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

todo documento, carpeta, archivo de código fuente (.java) y código compilado (.class) tiene que estar contenido dentro de un proyecto

Comenzando a trabajar en Eclipse

Proyecto oPaquete

ClaseCamposMetodo ConstructorMetodoPatrones del bean

Clase

Page 6: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

CREACION DE UN PROYECTO

Page 7: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

CREACION DE UN PAQUETE

Page 8: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

CREACION DE UNA CLASE

Page 9: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

CREACION DE UNA CLASE - II

Page 10: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

CREACION DE UN METODO

Page 11: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

COMPILAR Y EJECUTAR UN PROGRAMA

Page 12: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

EXPORTAR UN PROYECTO

Page 13: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

IMPORTAR UN PROYECTO O PAQUETE

Page 14: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

IMPORTAR UN PROYECTO O PAQUETE

Paquete a importarPaquete a importar

Carpeta o partición que contiene al

paquete

Carpeta o partición que contiene al

paquete

Page 15: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

IMPORTAR UN PROYECTO O PAQUETE

Page 16: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Variables de Java

tipoDato identificador

Tipo Descripción

byte Entero de un Byte

Números enteros

short Entero corto

int Entero

long Entero largo

float Coma flotante de precisión simple Números

Realesdouble Coma flotante de

precisión doble

char Un sólo carácter

boolean Un valor booleano (verdadero o falso)

Tipo Primitivo Tipo referenciado

Tipo Descripción

String Cadena de caracteres

Ejemploint a;short b,c,d;long factorial=1;double mTotal, precio, area=3.489;

Page 17: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Constantes en Java

final tipoDato identificador

Tipo Descripción

byte Entero de un Byte

Números enteros

short Entero corto

int Entero

long Entero largo

float Coma flotante de precisión simple Números

Realesdouble Coma flotante de

precisión doble

char Un sólo carácter

boolean Un valor booleano (verdadero o falso)

Tipo Primitivo Tipo referenciado

Tipo Descripción

String Cadena de caracteres

Ejemploint a;short b,c,d;long factorial=1;double mTotal, precio, area=3.489;

Page 18: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Operadores de Java

Operador Uso Descripción

+ op1 + op2 Suma op1 y op2

- op1 - op2 Resta op2 de op1

* op1 * op2 Multiplica op1 y op2

/ op1 / op2 Divide op1 por op2

% op1 % op2 Obtiene el resto de dividir op1 por op2

Operador Uso Devuelve true si

> op1>op2 op1 es mayor que op2

>= op1 >= op2 op1 es mayor o igual que op2

< op1 < op2 op1 es menor que op2

<= op1 <= op2 op1 es menor o igual que op2

== op1 == op2 op1 y op2 son iguales

!= op1 != op2 op1 y op2 son distintos

Operador Uso Devuelve true si

&& op1 && op2 op1 y op2 son verdaderos

|| op1 || op2 uno de los dos es verdadero

! ! op op es falso

Aritméticos

Relaciónales

condicionales

Page 19: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Comentarios en Java

Comentarios de Línea// comentario de línea

Comentario de Bloque/* Comentario de bloque*/

Page 20: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Sesión 2

Page 21: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ingreso de Datos:

Datos Información

mecanismos que se emplean para poder ingresar datos

El lenguaje de programación Java no proporciona una clase que facilite el ingreso de datos en forma tradicional

Procesamiento de Datos

Page 22: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ingreso de Datos: La Clase LELa Clase LE, es una clase creada con JAVA SWING y nos va permitir ingresar datos, mostrar datos y mostrar mensajes de error o de validación de los mismos, pero de una forma visual.

Esta clase se encuentra incluida en el paquete biblioteca, por lo que es necesario importar dicho paquete.

Page 23: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ingreso de Datos: La Clase LE

Se va realizar una dependencia de paquetes: nuestro paquete dominioDeLaAplicacion y biblioteca

import biblioteca.*; //import biblioteca.LE;public class Prg1{}

Page 24: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ingreso de Datos: La Clase LE

contiene métodos para ingresar diferentes tipos de datos

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

Page 25: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ingreso de Datos: La Clase LE

public static void main(String[] args) { int dias; dias = LE.leerInt("Ingrese numero de días");}

Page 26: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Salida de Datos: La Clase LE

contiene métodos para mostrar mensajes

•mostrarInformación(String)

•mostrarResultado(String)

•mostrarError(String)

Page 27: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Salida de Datos: con LE

public static void main(String[] args) {LE.mostrarInformacion("INFORMACIÒN : Sueldo por día es US$75");

}

Page 28: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Salida de Datos: con LE

public static void main(String[] args) { int dias; double sueldoBruto; ………………………………. dias = LE.leerInt("Ingrese numero de días"); sueldoBruto = 75 * dias; LE.mostrarResultado("El Sueldo del Mes es US$"+ sueldoBruto);}

Page 29: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Salida de Datos: con LE

public static void main(String[] args) { LE.mostrarError("Error, ingresa Número válido");}

Page 30: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Salida de Datos: Formatos

System.out.print(“Esta salida es sin salto”);System.out.print(“Esta es la segunda salida sin salto”);

System.out.println(“Esta salida es con salto”);System.out.println(“Esta es la segunda salida con salto”);

Esta salida es sin salto Esta es la segunda salida sin salto

Esta salida es con salto Esta es la segunda salida con salto

Page 31: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Salida de Datos: Tabuladores de TextoSe usan dentro de los textos con la finalidad de separarlos, pueden ser para:

•Cambio de línea (“\n”)•Espacio de Tabulación (“\t”)

Page 32: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ejercicio: Programa 1

Diseñe un programa llamado Prg1 que permita sumar 3 números enteros

Page 33: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ejercicio: Solución 1package domapli;public class Prg1 {

public static void main(String[] args) {// Declaración de variablesint a,b,c,s;// Ingreso de Datosa=LE.leerInt("Ingrese el primer numero "); b=LE.leerInt("Ingrese el segundo numero "); c=LE.leerInt("Ingrese el tercer numero ");// Proceso de calculo

s=a+b+c;// Visualización de Datos

LE.mostrarInformacion("La suma es : "+ s);

}}

Page 34: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ejercicio: Programa 2

Diseñe un programa que permita calcular el perímetro de un rectángulo y de un circulo sabiendo que Perímetro del Rectángulo = 2*(base + altura) y el Perímetro del Circulo = 2 * pi x r

Page 35: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;public class Prg2 {

public static void main(String args[]){// Declaración de variables int base, altura,radio;final double pi=3.14; // constantedouble perR,perC;

// Ingreso de Datosbase=LE.leerInt("Ingrese la Base de Rectángulo "); altura=LE.leerInt("Ingrese la altura de Rectángulo "); radio=LE.leerInt("Ingrese la radio del Circulo");

// Proceso de calculoperR=base*altura; // perimetro de un rectanguloperC=2 *pi*radio; //perimetro de un circulo

// Visualización de ResultadosLE.mostrarInformacion("El perímetro del rectángulo\t:"+

perR);LE.mostrarInformacion("El perímetro del circulo\t:"+

perC);}

}

Page 36: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ejercicio: Programa 3

El calculo de un pago mensual de empleado de una empresa se efectúa de la siguientes manera: el sueldo básico se calcula en base al número total de horas trabajadas basada en una tarifa horaria de 35.20 soles, al sueldo básico se le aplica una bonificación del 20% obteniéndose el sueldo bruto, al sueldo bruto se le aplica un descuento del 10% obteniéndose el sueldo neto. Escriba un programa que calcule e imprima el sueldo básico, el sueldo bruto y el sueldo neto de un trabajador.

Page 37: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ejercicio: Programa 4

Desarrolle un programa que permita ingresar 2 números a través del teclado y luego calcule la suma, resta, multiplicación y división de dichos números. Muestre el resultado de todas las operaciones.

Page 38: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Sesión 3

Page 39: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Funciones matemáticas y Manejo de cadenas

La clase Math define dos constantes muy útiles, el número p y el número e.

final double E= 2.7182818284590452354;final double PI = 3.14159265358979323846;

System.out.println("Pi es " + Math.PI); System.out.println("e es " + Math.E);

Page 40: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Función Tipo de Datos Descripción

Math.abs( x ) para int, long, float y double

Valor Abosuluto

Math.sin( double ) Valor Seno

Math.cos( double )

Valor Coseno

Math.tan( double )

Valor Tangente

Math.asin( double )

Valor Arco Seno

Math.acos( double )

Valor Arco Coseno

Math.atan( double )

Valor Arco Tangente

Math.exp( double )

Logaritmo Neperiano

Math.log( double ) Logaritmo natural

Math.sqrt( double )

Raiz Cuadrada

Math.ceil( double )

Math.floor( double )

Math.rint( double )

Math.pow( a,b ) Potencia

Math.round( x )       

para double y float Redondear

Page 41: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ejemplo:

double x=4.0;double r=Math.sqrt(x); // raiz cuadradaLE.mostrarInformacion(“La raiz cuadrada de “+ x + “es " + r);

int x=5, y=9 ;int max=Math.max(x,y) ; // mayor de de dos enterosLE.mostrarInformacion ("El mayor es " + max);

int i = -9;double x = 0.3498; LE.mostrarInformacion ("|" + i + "| es " + Math.abs(i));LE.mostrarInformacion ("|" + x + "| es " + Math.abs(x));

Page 42: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Manejo de Cadenas: La Clase String

Una String es una variable referenciada asociada a un objeto de la clase java.lang.String. Se emplea para almacenar cadenas de caracteres.

Page 43: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Otras dos características de las Strings son:

Una String está indexada, es decir, cada uno de sus caracteres tiene asociado un índice: 0 para el primero, 1 para el segundo, etc.

La cadena de caracteres almacenada por una String siempre se escribe entre comillas dobles.

String nombre=”ANA MARIA”;

A N A M A R I A0 1 2 3 4 5 6 7 8

Page 44: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Método Tipo de Dato Descripción

length() Devuelve int Longitud de la cadena

charAt(int) Devuelve char Carácter dada una posición

equals( Object obj ) Devuelve boolean Si es igual

equalsIgnoreCase(Object obj ) Devuelve boolean Si es igual sin considerar May o Min

compareTo( String ) Devuelve int Devuelve un entero menor que cero si la cadena es léxicamente menor que str2. Devuelve cero si las dos cadenas son

léxicamente iguales y un entero mayor que cero si la cadena es léxicamente mayor que

str2.

startsWith(String) Devuelve booleanSi comienza o termina con esta cadena

endsWith(String) Devuelve boolean

indexOf( int ) Devuelve int Devuelve si esta cadena comienza o termina con un cierto prefijo o sufijolastIndexOf( int ) Devuelve int

substring( int inicio ) Devuelve String

Devuelve el primer/último índice de un carácter/cadena empezando la búsqueda a partir de un determinado desplazamiento.

substring( int inicio, int fin); Devuelve String

concat( String); Devuelve String

replace( char antigua, char nueva);

Devuelve String

toLowerCase(); Devuelve String

toUpperCase(); Devuelve String

trim(); Devuelve String

String.valueOf(x) x : int, double, float,longDevuelve String

Convierte un tipo de dato a String

Page 45: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

String nombre=”Juan Pedro”;

int cantidad=nombre.length(); // 10

String nomMay = nombre.toUpperCase(); // JUAN PEDRO

String nomMin = nombre.toLowerCase(); // Juan pedro

char c=nombre.charAt(0); // J

ejemplo

Page 46: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que lea 2 reales y los redondee a dos cifras. Utilice las funciones round() y floor() respectivamente

Page 47: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;

import biblioteca.*;public class Prg1 {

public static void main(String[] args) { //Declaracion de variables double x , y;

//Ingreso de datos x=LE.leerDouble("Ingrese numero con mas de dos decimales"); y=LE.leerDouble("Ingrese numero con mas de dos decimales");

//Proceso de calculo y visualización LE.mostrarInformacion(x + " es aprox." +

(double)Math.round(x*100)/100); LE.mostrarInformacion(y + " es aprox." +

(double)Math.round(y*100)/100); LE.mostrarInformacion(x + " es aprox." +

Math.floor(x*100)/100); LE.mostrarInformacion(y + " es aprox." +

Math.floor(y*100)/100);}

}tangente=Math.tan(radianes);

//Visualizacion de datosSystem.out.println("cos(" + angulo + ") es " + coseno);System.out.println("sin(" + angulo + ") es " + seno);System.out.println("tan(" + angulo + ") es " +

tangente);}

}

Page 48: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa para generar dos numero aleatorios

Page 49: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;

public class Prg2 {

public static void main(String[] args) {

LE.mostrarInformacion("Número aleatorio:" + Math.random());

LE.mostrarInformacion("Otro número aleatorio:" +

Math.random());}

}

Page 50: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que se ingrese primer nombre, segundo nombre y apellido y muestre sus iniciales

Page 51: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;import biblioteca.*;public class Prg3 {

public static void main(String[] args) {//Declaracion de variablesString primero, segundo, apellido;String initPrim, initSeg, initAp;String iniciales;// Ingreso de Datosprimero=LE.leerString("Ingrese primer

nombre"); segundo=LE.leerString("Ingrese segundo

nombre"); apellido=LE.leerString("Ingrese apellido");

initPrim = primero.substring(0,1);initSeg = segundo.substring(0,1);initAp = apellido.substring(0,1);

iniciales = initPrim.concat(initSeg);iniciales = iniciales.concat(initAp);

LE.mostrarInformacion(iniciales);}

}

Page 52: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Sesión 4

Page 53: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de DecisionEstructuras de Decision Simple: if, Doble: if-else

Simple Doble

if (condicion1) { accion1;}

if (condicion1) { accion1;} else {

accion2;}

Nota: Las condiciones son expresiones booleanas.

Page 54: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de DecisionEstructuras de decisión múltiple: if y switch-case

Si Anidados Cuandoif (condicion1) { accion1;} else if (condicion2) { accion2;}else if (condicion3) { accion3;} else { accionN;}

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

Page 55: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que reciba nombre del alumno y dos notas. Se debe mostrar el nombre del alumno en mayúscula y la mayor nota.

Page 56: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

import biblioteca.*;public class Prg1 {

public static void main(String[] args) {//Declaracion de variablesString nombre, msg=””;int nota1,nota2,mayor;

//Ingreso de datosnombre=LE.leerString("Ingrese nombre:");nota1=LE.leerInt("Ingresar nota 1:");nota2=LE.leerInt("Ingresar nota 2:");

//Proceso de calculonombre=nombre.toUpperCase();if(nota1>nota2)

mayor=nota1;else

mayor=nota2;

//Visualizacion de datosmsg="El alumno "+nombre;msg+="su mayor nota es "+mayor;if(mayor>10)

msg+="y esta aprobado";else

msg+="y esta desaprobado";LE.mostrarInformacion(msg);

}}

Page 57: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que solicite un año e indique si es bisiesto o no; un año es bisiesto si es múltiplo de 4 excluyendo aquellos que son múltiplo de 100 y no de 400. - Los años exactamente divisibles entre 4 son años bisiestos.- Los años exactamente divisibles entre 100 no son años bisiestos.- Los años exactamente divisibles entre 400 sí son años bisiestos.

Page 58: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;

import biblioteca.*;

public class Prg2 {

public static void main(String[] args) {

//Declaracion de variables

int año;

//Ingreso de datos

año=LE.leerInt("Ingrese el año");

//Calculo y visualizacion

if((año%4==0 && año%100 !=0 ) || (año%100==0 && año%400==0))

LE.mostrarInformacion ("Año Bisiesto");

else

LE.mostrarInformacion ("Año no Bisiesto");

}

}

Page 59: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que calcule el costo total de una hospitalización sabiendo el total de días y el costo de la habitación. El costo de la habitación serán de acuerdo la siguiente tabla:

AREA COSTO

1 150

2 120

Otra 100

Page 60: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;

import biblioteca.*;public class Prg1 {

public static void main(String[] args) {//Declaracion de variablesint dias, area;double costo, costoTotal;//Ingreso de datosdias=LE.leerInt("Ingrese el numero de días"); area=LE.leerInt("Ingrese el área");//Proceso de calculoif(area==1)

costo=150;else if(area==2)

costo=120;else

costo=100;costoTotal=costo*dias;//Visualizacion de datosLE.mostrarInformacion(“Costo Total:"+costoTotal);

}}

Page 61: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Un teatro otorga descuentos según la edad del cliente. Tomar en cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un precio único en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro:

Edad DescuentoCategoría 1 05 - 14 35 %Categoría 2 15 - 19 25 %Categoría 3 20 - 45 10 %Categoría 4 46 - 65 25 %Categoría 5 66 en adelante 35 %

Diseñe un programa que calcule el monto a pagar al teatro

Page 62: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Escriba un programa que lea un número desde el teclado entre 1 y 7 e imprima el nombre del día de semana correspondiente. ( lunes, martes,...etc).

Page 63: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que lea un texto y los separe en dos textos de igual tamaño y compare cual de los texto es mayor alfabéticamente.

mostrar el de mayor texto y su longitud de cadena.

Page 64: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Una pizzería, vende sus pizzas en tres tamaños: Pequeña (10 pulg. De diámetro) Mediana (12 pulg. De diámetro) Grandes (16 pulg. De diámetro)

• Una pizza puede ser sencilla (con sólo salsa y carne), o con ingredientes extras, tales como pepinillos, champiñones o cebollas.

• Los propietarios desean desarrollar un programa que calcule el precio de venta de una pizza, dándole el tamaño y el número de ingredientes extras. El precio de venta será 1.5 veces el costo total, que viene determinado por el área de la pizza, mas el numero de ingredientes.

• En particular el costo total se calcula sumando:Un costo fijo de preparación.Un costo base variable que es proporcional al tamaño de la pizza.

• Un costo adicional por cada ingrediente extra. Por simplicidad se supone que cada ingrediente extra tiene el mismo costo por unidad de área

Page 65: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Ingresar una fecha en el este formato (dd/mm/aaa) y calcular: el número de días de ese mes

Page 66: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Sesión 5

Page 67: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Estructura do..while

do{ accion1;

accion2;} while(condición)

Se usa la sentencia do..while para hacer validación de entrada de datos.

Page 68: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Estructura do..while

Se necesita ingresar un número de 3 cifras:

int n;

do{

n= LE.leerInt(“ingrese numero de 3 cifras”);

}while ( ! (n>=100 && n<=999));

Page 69: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Estructura do..while

Se necesita ingresar sexo (F/M):

char sexo;

do{

sexo= LE.leerChar(“ingrese sexo [F/M]”);

}while ( sexo!=‘F’ && sexo!=‘M’));

Page 70: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Estructura do..while

Repetición de la ejecución del programa

public static void main(String args[]){int op;do{

// todo el programa ……//……………………….op=LE.leerInt(“Desea continuar [S=1/N=0]”);

}while ( op==1);}

Page 71: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Estructura while

while(condición){ accion1;

accion2;..

}

La estructura while repite una acción o un conjunto de acciones mientras sea verdadera una determinada condición, para lo cual primero verifica la condición y luego ejecuta la acción. La acción puede ser una acción simple o una acción compuesta (bloque de acciones encerradas en llaves).

Page 72: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Uso de contadores y acumuladores

int c=0; // contadorint suma=0; //acumulador de suma de enteros

Los contadores son variables del tipo entero cuya función es la de contar.Los acumuladores son variables que almacenan sumas o productos. El tipo de variable depende del tipo del cual se esta acumulando.Los acumuladores de suma se inicializan en cero.Los acumuladores de producto se inicializan en uno.

Page 73: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Uso de menú

Page 74: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Estructura for

for ( inicialización; condición; incremento/decremento){ accion1;

accion2;}

La estructura de repetición for contempla todos los elementos de la repetición controlada por contador (repetición en la que se conoce el número de veces que se repetirá el cuerpo del bucle) al incluir al contador como parte de la propia estructura.

Page 75: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Estructuras de Repetición Estructura lógica para el manejo de errores

try{Sentencias;

}catch(Exception e){ Sentencia para visualizar el error; //Opcional}

Page 76: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

•Exception : Cualquier tipo de error•ArithmeticException : Las excepciones aritméticas son típicamente el resultado de división por 0:•NullPointerException: Se produce cuando se intenta acceder a una variable o método antes de ser definido•ClassCastException: El intento de convertir un objeto a otra clase que no es válida.•ArrayIndexOutOfBoundsException: Es la excepción que más frecuentemente se produce. Se genera al intentar acceder a un elemento de un array más allá de los límites definidos inicialmente para ese array.•etc…

Page 77: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que reciba 10 números enteros y determine cuanto números neutros , negativos y positivos hay

Page 78: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;import biblioteca.*;public class Prg1 {

public static void main(String[] args) {//Declaracion de variablesint n;int c=0,npos=0,nneg=0,nneu=0; // contadores

//Ingreso de datos y Proceso de calculowhile(c<10){

n=LE.leerInt("Ingrese numero");

if(n==0)nneu++;

elseif(n<0)

nneg++;else

npos++;c++;

}//Visualizacion de resultadosLE.mostrarInformacion("Los numero neutros son: "+ nneu);LE.mostrarInformacion ("Los numero negativos son: "+ nneg);LE.mostrarInformacion ("Los numero positivos son: "+ npos);

}}

Page 79: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que 6 notas y muestra las suma y el promedio de ellas.

Page 80: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que lea un número y lo convierta a binario (*) El programa debe tener un menú de opciones

Page 81: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que lea un texto y lo muestre al revés

Page 82: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un juego para adivinar el numero generado por el computador, se seguirá pidiendo el numero hasta que numero ingresado sea mayor del que genero el computador.

Page 83: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

import biblioteca.*;public class Prg3 {

public static void main(String[] args) {//Declaracion de variablesint numMaq, numHombre=0, num;//Ingreso de datosnumMaq = (int) (Math.random ()* 100);LE.mostrarInformacion("Adivina el número que pense");do{

num = Lectura.leerInt("Dame un número");numHombre += num;

} while (numMaq > numHombre);//Proceso de calculo y visualizacionif (numMaq == numHombre)

LE.mostrarInformacion ("Ganaste");else

LE.mostrarInformacion("Perdiste");LE.mostrarInformacion("El numero que pensé era: " + numMaq);

}}

Page 84: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que reciba los datos de 5 alumnos (nombre y sexo) y muestre la cantidad de mujeres y hombres que hay . Utilice un menú de opciones.

Page 85: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa para calcular la suma e imprimir de N términos de la siguiente serie

S = 1- 2 + 3- 4 + 5- 6...........

Page 86: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;import biblioteca.*;public class Prg5 {

public static void main(String[] args) {int n, s=0;String serie="";n=LE.leerInt("Ingrese n");for (int i=1;i<=n; i++)

if (i==1){s=s+i;serie+=i;

}else{

if(i%2==0){s=s-i;serie+="-" + i;

}else{

s=s+i;serie+="+" +i;

}}

LE.mostrarInformacion(serie);LE.mostrarInformacion ("La suma de la serie es:"+s);

}}

Page 87: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que imprima lo siguiente

%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Page 88: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que lea Nombre y edad de 5 alumnos y calcule la edad promedio, así como también la mayor edad

Page 89: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa para hallar la suma de N términos de la siguiente serie:

1 + 1/32 + 1/52 + 1/72 + 1/92 +....

Page 90: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que lea un texto y halle:

Cantidad de vocalesCantidad de consonantesCantidad de espacios en blanco

Page 91: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa que genere éste grafico

******** ** ** ********

Page 92: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Diseñe un programa para hallar la suma de dos enteros. Utilice la estructura de manejo de errores

Page 93: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

package domapli;import biblioteca.*;public class Prg8 {

public static void main(String[] args) {int n,d;double p=0;//Ingreso de datos

n=LE.leerInt("ingrese numerador");d=LE.leerInt("ingrese denominador");

try{p=n/d;LE.mostrarInformacion("La división es:"+ p);

}catch(ArithmeticException e){

LE.mostrarInformacion ("No se realizo la division");LE.mostrarInformacion ("Ocurrio el error :"+ e);

}}

}

Page 94: Algoritmo y Estructura de Datos I 2006 - I Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe Sesión 1.

Sesión 6