ejercicios de programacion java

5

Click here to load reader

description

ejercicios resueltos java

Transcript of ejercicios de programacion java

Page 1: ejercicios de programacion java

UNIVERSIDAD TECNOLOGICA Programación III

1 CICLO I/2011

Guía de laboratorio No. 4 Objetivo: El objetivo de esta guía es que el estudiante aplique los conocimientos proporcionados en clase acerca de los arreglos unidimensionales y multidimensionales en el ambiente de programación de JAVA. PARTE I: EJERCICIOS DESARROLLADOS Ejercicio No. 1: Creación y uso de una Matriz Unidimensional.

import java.io.*;

public class MatrizUnidimensional {

// Creación de una matriz unidimensional

public static void main(String[] args) throws IOException {

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader MiFlujo= new BufferedReader(isr);

int nElementos;

String DatoLeído;

System.out.print("Número de elementos de la matriz: ");

DatoLeído = MiFlujo.readLine();

nElementos = Integer.parseInt(DatoLeído);

int [] m = new int[nElementos]; // crear la matriz m

int i = 0; // subíndice 0

System.out.println("Introducir los valores de la matriz.");

for (i = 0; i <nElementos; i++)

{

System.out.print("Elemento No. "+(i+1)+" - m[" + i + "]

= ");

DatoLeído = MiFlujo.readLine();

m[i] = Integer.parseInt(DatoLeído);

}

// Visualizar los elementos de la matriz

System.out.println();

System.out.println("Datos almacenados en la matriz: ");

for (i = 0; i <nElementos; i++)

System.out.print(m[i] + " ");

System.out.println("\n\nFin del proceso.");

}

} Ejercicio No. 2: Al programa anterior agregue el código necesario para que se determine el menor y mayor valor almacenado en la matriz. Especifique su posición. Ejercicio No. 3: El siguiente programa presenta los datos en forma gráfica a los usuarios utilizando histogramas. Lo cual es una manera simple de mostrar datos numéricos en forma gráfica. //programa para imprimir histogramas

import javax.swing.*;

public class histogramas {

public static void main ( String args[] ) {

int arreglo[] = {19, 3, 15, 7, 11, 9, 13, 5, 17, 1};

Page 2: ejercicios de programacion java

UNIVERSIDAD TECNOLOGICA Programación III

2 CICLO I/2011

String salida = "Elemento\tValor\tHistograma";

//para cada elemento del arreglo, mostrar una barra en el histograma

for ( int contador=0; contador<arreglo.length; contador++)

{

salida += "\n"+contador+"\t"+arreglo[contador]+"\t";

//imprimir barra de asteriscos

for ( int estrellas=0; estrellas < arreglo[contador]; estrellas++)

salida += "*";

} //fin del for externa

JTextArea areaSalida = new JTextArea();

areaSalida.setText(salida);

JOptionPane.showMessageDialog(null, areaSalida, "Programa para imprimir

Histogramas", JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}//fin de main

}//fin de clase Histograma

Ejercicio No. 4: Creación y uso de una Matriz Multidimensional implementada en un Applet. import javax.swing.JApplet;

import java.awt.Graphics;

public class yas extends JApplet {

String[][] cartoons =new String[2][5];

public void init() {

cartoons[0][0]="Picapiedra";

cartoons[0][1]="Tom y Jerry";

cartoons[0][2]="Mazinger";

cartoons[0][3]="Heman";

cartoons[0][4]="Dinosaurios";

cartoons[1][0]="Rubbles";

cartoons[1][1]="Barney";

cartoons[1][2]="El Pato Lucas";

cartoons[1][3]="Bug Bonny";

} //fin de init

public void paint(Graphics g) {

super.paint(g);

for (int i=1; i<=5; i++)

g.drawString(cartoons[0][i-1]+": ", 20,20*i);

for (int i=1; i<=5; i++)

g.drawString(cartoons[1][i-1]+": ", 120,20*i);

} //fin de paint

}//fin del Applet

Ejercicio No. 5: Creación y uso de una Matriz Multidimensional. import javax.swing.JOptionPane;

public class ArregloDoble {

public static String salida;

public static int estudiantes, examenes;

public static void main( String [] args ) {

int calificaciones[][] =

{{77,68,86,73},{96,87,89,81},{70,90,86,81}};

estudiantes = calificaciones.length; //numero de estudiantes

examenes = calificaciones[0].length; // numero de examenes

Page 3: ejercicios de programacion java

UNIVERSIDAD TECNOLOGICA Programación III

3 CICLO I/2011

//crear salida

salida = "El arreglo es: \n";

crearCadena(calificaciones);

//llamar a los métodos minima y maxima

salida += "\n\nCalificacionmas baja: " +

minima(calificaciones) + "\nCalificacion más alta: " +

maxima(calificaciones) + "\n";

//calcular el promedio de cada estudiante

for ( int contador = 0; contador < estudiantes; contador ++)

salida += "\nEl promedio del estudiante " + contador+"

es " + promedio( calificaciones[contador]);

//mostrar la salida

JOptionPane.showMessageDialog(null, salida, "Promedio de

estudiantes",

JOptionPane.INFORMATION_MESSAGE);

System.exit( 0 );

}

public static void crearCadena (int calificaciones[][]) {

salida += " ";

//crear encabezados de columnas

for ( int conta = 0; conta<examenes; conta ++ )

salida += "[" + conta + "] ";

//crear filas/columnas de texto que representan el arreglo

// calificaciones

for (int fila = 0; fila < estudiantes; fila ++ ) {

salida += "\ncalificaciones[" + fila + "] ";

for (int col = 0; col <examenes; col ++)

salida += calificaciones[fila][col] + " ";

}

} //fin del método crearCadena

//Buscar calificación mínima

public static int minima(int calificaciones[][])

{

//suponer que el primer elemento del arreglo es el menor

int califBaja = calificaciones[0][0];

for ( int fila=0; fila < estudiantes; fila++)

for (int cols = 0; cols<examenes; cols++ )

//si la calificacion es menor que califBaja

asignarla a califBaja

if ( calificaciones[fila][cols] <califBaja )

califBaja = calificaciones[fila][cols];

return califBaja;

} //fin del método minima

//Buscar calificación maxima

public static int maxima(int calificaciones[][])

{

//suponer que el primer elemento del arreglo es el mayor

int califAlta = calificaciones[0][0];

for ( int fila=0; fila < estudiantes; fila++)

for (int cols = 0; cols<examenes; cols++ )

//si la calificacion es mayor que califAlta asignarla a

califAlta

if ( calificaciones[fila][cols] >califAlta )

califAlta = calificaciones[fila][cols];

Page 4: ejercicios de programacion java

UNIVERSIDAD TECNOLOGICA Programación III

4 CICLO I/2011

return califAlta;

} //fin del método minima

//determinar la calificacion promedio para un estudiante.

public static double promedio (int conjCalif[] )

{

int total = 0; //inicializar el total

//sumar calificaciones para un estudiante

for( int cuenta=0; cuenta <conjCalif.length; cuenta++ )

total += conjCalif[cuenta];

//devolver el promedio de calificaciones

return (double) total / conjCalif.length;

} //fin delmétodo promedio

}

Ejercicio No. 5: Uso del For Mejorado y arreglos dinámicos. import javax.swing.*;

public class formejor {

public static void main(String[] args) {

//Lee el nombre de un estudiante y sus notas y calcula el

promedio obtenido

int filas,i;

String efilas,nombrealumno;

float sumnotas=0;

//Leer la cantidad de alumnos

nombrealumno=JOptionPane.showInputDialog("Digite el nombre

del alumno");

efilas=JOptionPane.showInputDialog("Digite la cantidad de

notas del alumno");

filas=Integer.parseInt(efilas);

//Dimension en tiempo de ejecucion

float [] notas = new float[filas];

for ( i=0; i<filas; i++) {

efilas=JOptionPane.showInputDialog("Digite la nota "+(i+1)+

":");

notas[i]=Float.parseFloat(efilas);

}

for(float nota:notas)

sumnotas+=nota;

JOptionPane.showMessageDialog(null,"El alumno

"+nombrealumno+" obtuvo de promedio"+(sumnotas/filas));

}//fin de main

}//fin de clase

PARTE II: EJERCICIOS PROPUESTOS 1. Realice un programa que lea las edades de N personas, luego obtenga la cantidad y la edad promedio de las mismas considerando los siguientes rangos: RANGO DE EDADES 1 – 20 21 – 40 Mayores que 40

Page 5: ejercicios de programacion java

UNIVERSIDAD TECNOLOGICA Programación III

5 CICLO I/2011

2. Use un arreglo unidimensional para resolver el siguiente problema: escriba un applet que reciba como entrada 5 números, cada uno de los cuales debe estar entre 10 y 100, inclusive. A medida que se lea cada número, muéstrelo solamente si no es un duplicado de un número que ya se haya leído. Prepárese para el “peor caso”, en el que los 5 números son diferentes. Use el arreglo más pequeño que sea posible para resolver este problema. Muestre los resultados en un objeto JTextArea, vea el ejercicio No. 3. Utilice el método setText de la clase JTextArea para actualizar los resultados después que el usuario introduzca cada uno de los valores. 3. El juego de palabras Eggy-Peggy es un ejemplo de cifrado. El cifrado se ha usado desde los tiempos antiguos para comunicar mensajes secretos. Una de las muchas técnicas usadas para cifrado es la denominada cifra de Julio César. Con esta técnica, cada carácter en el mensaje original se desplaza N posiciones. Por ejemplo, si N=1 entonces el mensaje: Yo solo bebo cafe Se convierte en: Xp!ftkpm!qpna!fgech El método cifrado descifra el mensaje original deshaciendo el desplazamiento de N posiciones para cada carácter. Desplazar N posiciones hacia delante o hacia atrás se puede conseguir convirtiendo el código ASCII y añadiendo o restando N. Escriba una aplicación que lea un texto original y el valor para N y muestre el texto cifrado. Asegúrese de que el valor ASCII resultante del cifrado está entre 32 y 126. Por ejemplo, si se añade 8 (valor de N) a 122 (código ASCII para ‘z’), se debería “dar la vuelta” y obtener 35. 4. Escriba una aplicación en Java que lea una frase y muestre los contadores del número de vocales dentro de la frase. Únicamente es necesario contar las vocales en minúscula. Muestre los resultados en una ventana con el siguiente formato: Numero de vocales en la frase: Maria tiene un perrito blanco # de ‘a’ : 3 # de ‘e’ : 3 # de ‘i’ : 3 # de ‘o’ : 2 # de ‘u’ : 1