algoritmo y estructura de datos i semestre académico 2007 - i martes 06 de marzo facultad de...
TRANSCRIPT
![Page 1: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/1.jpg)
Algoritmo y Estructura de Datos I Semestre Académico 2007 - I
Martes 06 de Marzo
Facultad de Ingeniería y Arquitectura
Juan José Montero Román.
Sesión 1
![Page 2: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/2.jpg)
Ingreso de Datos: La Clase LE
El ingreso de datos se refiere a la forma o mecanismos que se emplean para que podamos
ingresar los datos que necesita un algoritmo para que pueda
procesarlos y obtener, posteriormente, la información
necesaria. Es importante mencionar que el lenguaje de
programación Java no proporciona una clase que facilite el ingreso de
datos en forma tradicional.
![Page 3: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/3.jpg)
Ingreso de Datos: La Clase LE
En consecuencia, utilizaremos la clase denominada LE que contiene 7 métodos para ingresar diferentes
tipos de datos.
La 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.
![Page 4: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/4.jpg)
Ingreso de Datos: La Clase LE
Esta clase se encuentra incluida en el paquete biblioteca,
por lo que es necesario importar
dicho paquete.
Se va realizar una dependencia de
paquetes: nuestro paquete domApli y
biblioteca
![Page 5: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/5.jpg)
Ingreso de Datos: La Clase LE
import biblioteca.*; //o import biblioteca.LE; public class Prg1{ }
![Page 6: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/6.jpg)
Ingreso de Datos: La Clase LE
ATRIBUTOSNo presenta atributos que se puedan manipular.
MÉTODOSleerChar(String) = Retorna un char capturado desde el teclado.leerDouble(String) = Retorna un double capturado desde el teclado.leerFloat(String) = Retorna un float capturado desde el teclado.leerInt(String) = Retorna un int capturado desde el teclado.leerLong(String) = Retorna un long capturado desde el teclado.leerShort(String) = Retorna un short capturado desde el teclado.leerString(String) = Retorna una cadena capturada desde el
teclado.
mostrarInformación(String) = Muestra el texto en una caja de dialogo
mostrarError(String) = Muestra el texto de error en una caja de dialogo
![Page 7: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/7.jpg)
Ingreso de Datos: La Clase LE
(ejemplo)
int a=Lectura.leerInt();double peso=Lectura.leerDouble();String ap=Lectura.leerString();char c=Lectura.leerChar();
int a=LE.leerInt(“Texto”);double peso=LE.leerDouble(“Texto”);String ap=LE.leerString(“Texto”);char c=LE.leerChar(“Texto”);
LE.mostrarInformacion("INFORMACIÓN: Sueldo por día: US$43");LE.mostrarResultado("El Sueldo del Mes es:"+sueldoBruto);LE.mostrarError(“Error, nota no valida”);
Clase Lectura
Clase LE
![Page 8: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/8.jpg)
Salida de Datos: La Clase LE
![Page 9: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/9.jpg)
Formato de Salida:
Formato de salida sin salto de líneaSystem.out.print(“Esta salida es sin salto”);System.out.print(“Esta es la segunda salida sin salto”);
Esta salida es sin salto Esta es la segunda salida sin salto
Formato de salida con salto de líneaSystem.out.println(“Esta salida es con salto”);System.out.println(“Esta es la segunda salida con salto”);
Esta salida es con salto Esta es la segunda salida con salto
Cambio de línea (“\n”)Espacio de Tabulación (“\t”)
Es una instrucción en Java que se utiliza para mostrar un texto en el programa
![Page 10: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/10.jpg)
Diseñe un programa llamado PrgSuma
que permita sumar 3 números enteros
![Page 11: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/11.jpg)
![Page 12: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/12.jpg)
Diseñe un programa (PrgPerimetro) 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 13: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/13.jpg)
![Page 14: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/14.jpg)
Estructuras de Decisión Simple: if, Doble: if-else
Nota: Las condiciones son expresiones booleanas.
Simple Doble
if (condicion1) { accion1;}
if (condicion1) { accion1;}else { accion2;}
![Page 15: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/15.jpg)
Estructuras de Decisión Múltiple if y switch-case
Si Anidados Cuando
if (condicion1) { accion1;} else if (condicion2) { accion2;}else if (condicion3) { accion3;} else {
accionN;}
switch (variable) { case valor 1 : sentencias... case valor 2 : sentencias... case valor n : sentencias... default : sentencias... }
![Page 16: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/16.jpg)
Diseñe un programa (PrgNombreNota)
que reciba nombre del alumno y dos notas. Se debe
mostrar el nombre del alumno en mayúscula y la
mayor nota.
![Page 17: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/17.jpg)
![Page 18: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/18.jpg)
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 19: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/19.jpg)
![Page 20: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/20.jpg)
Estructuras de Repetición do..while
do{ accion1;
accion2;} while(condición)
Se usa la sentencia do..while para hacer validación de entrada de datos.
Ejemplo
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 21: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/21.jpg)
Estructuras de Repetición do..while (Ejemplo)
Se necesita ingresar sexo(F/M):
char sexo;do{
sexo= LE.leerChar(“ingrese sexo [F/M]”);}while ( sexo!=’F’ && sexo!=’M’));
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 22: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/22.jpg)
Estructuras de Repetición while
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).
while(condición){ accion1;
accion2;..
}
![Page 23: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/23.jpg)
Estructuras de Repetición Uso de contadores y acumuladores
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.
int c=0; // contadorint suma=0; //acumulador de suma de enteros
![Page 24: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/24.jpg)
Estructuras de Repetición Uso de Menú
Para la creación de un menú tenemos que colocar lo siguiente:int op; // (1 ) variable de lectura de opcion do{
System.out.println(“******** Menu ***********”);System.out.println();
Impresión del menuSystem.out.println(“[ 1 ]Ingreso de datos”);System.out.println(“[ 2 ]Mostrar resultados ”); ( 3 )System.out.println(“[ 3 ]Salir);System.out.println(“Ingrese su opcion:”);op=Lectura.leerInt();
// ( 4 ) sentencia condicional para ejecutar las opcionesswitch(op){case 1: // ingreso de datos
break;case 2: // mostrar resultadosbreak;}}while(op!=3); // (2) sentencia do_while para ejecutar el menu
![Page 25: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/25.jpg)
Estructuras de Repetición for
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.
for(inicialización; condición;incremento/decremento){ accion1;
accion2;}
![Page 26: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/26.jpg)
Estructura lógica para el manejo de errores
try{Sentencias;
}catch(Exception e){ Sentencia para visualizar el error; //Opcional}
Existen varios tipos de errores los comunes son:Exception : Cualquier tipo de errorArithmeticException : 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 definidoClassCastException: 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 27: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/27.jpg)
Diseñe un programa que reciba 10 números enteros y determine cuanto números neutros , negativos y positivos hay
![Page 28: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/28.jpg)
![Page 29: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/29.jpg)
1. Diseñe un programa que 6 notas y muestra las suma y el promedio de ellas.
2. Diseñe un programa que lea un número y lo convierta a binario (*) El programa debe tener un menú de opciones
3. Diseñe un programa que lea un texto y lo muestre al revés, usando como sentencia repetitiva for.
4. 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 30: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/30.jpg)
![Page 31: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/31.jpg)
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.
2. 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 32: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/32.jpg)
![Page 33: Algoritmo y Estructura de Datos I Semestre Académico 2007 - I Martes 06 de Marzo Facultad de Ingeniería y Arquitectura Juan José Montero Román. jmonteror@usmp.edu.pe](https://reader036.vdocuments.co/reader036/viewer/2022062511/54d7d9df49795985598b4618/html5/thumbnails/33.jpg)
Diseñe un programa que imprima lo siguiente%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Diseñe un programa que lea Nombre y edad de 5 alumnos y calcule la edad promedio así como también la mayor edad
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+............................