Contextualizado 2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 18

Ejercicios Propuestos - Unidad II

Investigar y presentar en un documento de Word las siguientes preguntas:

1. Que es Scanner en Java.

un método para leer valores de entrada de varios tipos, los valores de entrada pueden
venir de varias fuentesincluyendo valores que se entren por el teclado o datos
almacenados en un archivo.

Que es BufferedReader en Java.

BufferedReader es una clase de Java para leer el texto de una secuencia de entrada
(como un archivo) almacenando en el búfer caracteres que leen a la perfección
caracteres, matrices o líneas. En general, cada solicitud de lectura hecha de un Reader
hace que se realice una solicitud de lectura correspondiente del carácter subyacente o
secuencia de bytes. Por lo tanto, es aconsejable incluir un BufferedReader en cualquier
lector cuyas operaciones de lectura () puedan ser costosas, como java FileReaders y
InputStreamReaders.

Cómo utilizar Scanner en Java.

Para utilizar esa clase Scanner tenemos que crear primero un objeto de ella para poder
invocar sus métodos. La siguiente declaración crea un objeto de la clase Scanner que lee
valores de entrada del teclado.

Scanner teclado = new Scanner(System.in);

El propósito de pasar a System.in como argumento es conectar o establecer una relación


entre el objeto tipo Scanner, con nombre teclado en la declaración anterior, y el objeto
System.in, que representa el sistema estándar de entrada de información en Java. Si no
se indica lo contrario, el teclado es, por omisión, el sistema estándar de entrada de
información en Java. Luego que se tenga un objeto de la clase Scanner asociado al
sistema estándar de entrada System.in, llamamos, por ejemplo, su método nextInt para
entrar un valor del tipo int. Para entrar otros valores de otros tipos de datos primitivos, se
usan los métodos correspondientes como nextByte o nextDouble.

Cómo utilizar BufferedReader en Java.

Esta clase lee texto desde un flujo de entrada de caracteres, almacenando los caracteres
para proporcionar una lectura eficiente de caracteres, arreglos y líneas Se puede
configurar específicamente el tamaño del bufer, o usar el que se otorga por default, el cual
es suficientemente grande para la mayoría de los casos. Dado que esta clase extiende de
Reader, cada petición de lectura causa una petición de lectura del flujo de entrada, por lo
que es aconsejable envolverla con la clase InputStreamReader o FileReader, según el
propósito de la lectura.
Diferencia de Scanner y BufferedReader

BufferedReader

esta clase se encuentra dentro de la libreria java.io la cual requiere de generar un objeto
de la misma clase. BufferedReader bf=new BufferedReader(new
InputStreamReader(System.in));

Scanner

esta clase pertenece por default a java y al igual que el BufferedReader requiere que se
genere un objeto de dicha clase Scanner s=new Scanner(System.in); para realizar la
captura desde el teclado, cada una de las clases tiene diferentes metodos br.readLine-->
en el caso del bufferedreader. obtiene string que si se quiere manipular como otro tipo de
dato se tendra que hacer un cast s.next--> en caso de Scanner. obtiene un string, o si se
desea otro tipo de dato se usa nextInt, nextDouble, etc.

la diferencia entre los dos, es que Scanner es mas rapido de utilizar, pero BufferedReader
es mas preciso al momento de capturar datos.

2)Como se llama el modificador que se utiliza para declarar constantes en


Java, de un ejemplo.

PROTECTED:

Indica que los elementos sólo pueden ser accedidos desde su mismo paquete y desde
cualquier clase que extienda la clase en que se encuentra, independientemente de si esta
se encuentra en el mismo paquete o no. Este modificador, como private, no tiene sentido
a nivel de clases o interfaces no internas.

Ejemplo:

En otras palabras, si determinada clase Hijo hereda el comportamiento de una clase


Padre, la clase Hijo tendrá acceso a todos aquellos campos/métodos definidos como
protected en Padre, pero no aquellos declarados como private en Padre.

3)Realice un glosario con los siguientes términos: public, private, protected,


package, sentencias Break, Continue y Return, bloque Try Catch Finally.

Bloque try catch finally. Son excepciones de una situación anómala que puede
provocar que el programa no funcione de forma correcta o termine de forma inesperada.

Ejemplos de situaciones que provocan una excepción: No hay memoria disponible para
asignar Acceso a un elemento de un array fuera de rango Leer por teclado un dato de un
tipo distinto al esperado Error al abrir un fichero División por cero Problemas de Hardware
Continué. La sentencia de continue es de tipo de control de bucles. Dentro de la iteracion
en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia
rompe la iteracion de dicho bucle. Provocando que se ejecute la siguiente iteracion de
dicho bucle, ignorando las sentencias posteriores a "continue"

for(int j = 0; j<10; j++){

sentencia 1;

sentencia 2;

sentencia 3;

continue;

sentencia 4;

};

Este bucle se ejecuta 10 veces, pero con la salvedad de que la sentencia 4 no se ejecuta
ninguna vez. Es decir, se ejecutan las sentencias 1, 2 y 3 y cuando se llega a la sentencia
de control continue se vuelve de nuevo a comprobar la condicion del for y en caso de
cumplirse de nuevo a la sentencia 1 y así sucesivamente.

Package.Un Paquete en Java es un contenedor de clases que permite agrupar las


distintas partes de un programa y que por lo general tiene una funcionalidad y elementos
comunes, definiendo la ubicación de dichas clases en un directorio de estructura
jerárquica.

Prívate. El modificador private en Java es el más restrictivo de todos, básicamente


cualquier elemento de una clase que sea privado puede ser accedido únicamente por la
misma clase por nada más. Es decir, si por ejemplo, un atributo es privado solo puede ser
accedido por lo métodos o constructores de la misma clase.

Protected.El modificador de acceso protected puede aplicarse a todos los miembros de


una clase, es decir, tanto a campos como a métodos o constructores. En el caso de
métodos o constructores protegidos, estos serán visibles/utilizables por las subclases y
otras clases del mismo package. El acceso protegido suele aplicarse a métodos o
constructores, pero preferiblemente no a campos, para evitar debilitar el encapsulamiento.
En ocasiones puntuales sí resulta de interés declarar campos con acceso protegido.

Public. Es el modificador de acceso del método. Pueden ser public( cualquier clase en
cualquier paquete puede acceder al método).

Return. El uso del vocablo return no es obligatorio en la gran mayoría de métodos


definidos en Java, sin embargo, tiene dos usos principales: Primeramente es una manera
de indicar que el método en cuestión ha terminado. Cuando en determinado método se
manipula más de una instancia/primitivo del mismo tipo que será retornado, se emplea el
vocablo return para evitar ambigüedad.
Sentencias break. La sentencia de 'break' es de tipo de control de bucles. Dentro de la
iteracion en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta
sentencia rompe la iteracion de dicho bucle. La sentencia “break” en java como vimos en
el“switch” nos sirve para romper la sentencia y salir a las instrucciones después del
switch, Esta al igual nos sirve para romper ciclos como el “for, while y do-while”.

Realizar los siguientes ejercicios utilizado como lenguaje JAVA:

1.Utilizando un arrays, escribir un programa que visualice un cuadro mágico de


orden impar n, comprendido entre 3 y 11. El usuario debe elegir el valor de n.

“Un cuadrado mágico se compone de números enteros comprendidos entre 1 y n.


La suma de los números que figuran en cada fila, columna y diagonal son
iguales”.

Ejemplo:

8 1 6
3 5 7
4 9 2

Un método de generación consiste en situar el número 1 en el centro de la primera


fila, el número siguiente en la casilla situada por encima y a la derecha de la
última es la primera. En el caso de que el número generado caiga en una casilla
ocupada, se elige la casilla que se encuentre debajo del número que acaba de ser
situado.

Package estructura_de_datos;

Public class CuadroMagico {

Int nivel=5;

Int arreglo[ ][ ];

Public CuadroMagico () {

arreglo = newint[nivel][nivel];
generar();

Public void generar () {

int mitad = nivel/2;

int ubicacionC = mitad;

int ubicacionF = 0;

arreglo [ubicacionF] [ubicacionC] =1;

int ubicacionFActual = ubicacionF;

int ubicacionCActual = ubicacionC;

for (inti=2; i<=(Math.pow(arreglo.length,2)); i++){

ubicacionF--;

ubicacionC--;

if(ubicacionF<0) {

ubicacionF = arreglo.length-1;

if(ubicacionC<0)

ubicacionC = arreglo.length-1;

If (arreglo[ubicacionF][ubicacionC]==0){

Arreglo [ubicacionF][ubicacionC]=i;

}else{

ubicacionF = ubicacionFActual+1;

ubicacionC = ubicacionCActual;

arreglo[ubicacionF][ubicacionC]=i;
}

ubicacionFActual = ubicacionF;

ubicacionCActual = ubicacionC;

mostrarArreglo();

Public void mostrarArreglo () {

for(inti=0;i<arreglo.length;i++) {

for(intj=0; j<arreglo.length;j++){

System.out.print(arreglo[i][j]+"\t");

System.out.println();

Public static void main (String... args) {

newCuadroMagico();

For(intj=0; j<arreglo.length;j++){

System.out.print(arreglo[i][j]+"\t");

System.out.println();

publicstaticvoidmain (String... args) {


newCuadroMagico();

2.Se dispone de N temperaturas almacenadas en un array. Se desea calcular su


media y obtener el número de temperaturas mayores o iguales que la media

packageestructura_de_datos;

importjava.util.*;

public class nTemperaturas {

public static void main(String[] args) {

int suma=0;

int TemperaturaMayor=0;

int TemperaturaMenor = 0;

int media = 0;

System.out.println("Introduce N temperaturas para almacenarlas en un array");

Int n=new Scanner (System.in).nextInt();

int[] Temperaturas=new int[n];

for(inti=0;i<n;i++) {

System.out.println("Introduce la temperatuira para la pocision "+i);

Temperaturas [i]=new Scanner (System.in).nextInt();

suma=suma+Temperaturas[i];

media=suma/n;

}
for(inti=0;i<n;i++) {

if(Temperaturas[i]>media) {

TemperaturaMayor=Temperaturas[i];

System.out.println(" numero de temperatura mayores a la media: "+ i+ ": "+


TemperaturaMayor);

}else{

if(Temperaturas[i]==media) {

TemperaturaMenor=Temperaturas[i];

System.out.println(" numero de temperatura iguales a la media son: "+i+ ": "+


TemperaturaMenor);

System.out.println(" La media es: "+suma/n);

.
3. Leer una matriz de 3 por 3 elementos y calcular la suma de cada una de
sus filas y columnas, dejando dichos resultados en dos vectores, uno de la
suma de las filas y otro de las columnas.

import java.util.Scanner;

/**

* @author ROLANDO MARTINEZ

*/

public class sumarcolumnasfilasmatrriz {


public static void main (String[]args){

Scanner lector = new Scanner (System.in);

int matriz [][]= new int [10][10];

int i,j, fila,sumfila=0,sumcolumna=0,columna;

int numaleatorio;

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

for (j=0;j<3;j++){

matriz [i][j] = numaleatorio=(int)Math.floor(Math.random()*(9-1+1)+1);

System.out.println("la matriz ingresada es ");

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

for(j=0;j<3;j++){

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

System.out.println("");

System.out.println("que fila desea sumar");

fila=lector.nextInt();

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

sumfila=sumfila+matriz[fila-1][i];

System.out.println("la suma de la fila "+fila+"es"+sumfila);


System.out.println("\nque columna desea sumar");

columna=lector.nextInt();

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

sumcolumna=sumcolumna+matriz[i][columna-1];

System.out.println("la suma de las columnas"+columna+"es"+sumcolumna);

}}
4. las notas de 15 estudiantes en un arreglo y ordenarlo con el fin imprimirlo
de forma Descendente.Leer

package notasordendescendente;

import java.util.Arrays;

/**

* @author ROLANDO MARTINEZ

*/

public class Notasordendescendente {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

int[] notas {4,5,3,5};

Arrays.sort(notas, Collections.reverseOrder());
for (int n : notas) {

System.out.println(n);

5. En un Vector se almacenan las calificaciones finales de N alumnos.


Realizar un programa que calcule e imprima:
o El promedio general del grupo
o Número de alumnos aprobados y número de alumnos reprobados
o Porcentaje de alumnos aprobados y porcentaje de alumnos reprobados.
o Número de alumnos cuya calificación fe mayor o igual a 4.

public class ArregloCalificaciones {


private double [] cal;
int cont;

public ArregloCalificaciones(int x){


cal = new double [x];
cont = 0;
}

public void ColocarCalificaciones(double valor){


cal [cont] = valor;
cont++;
}

public double obtenerPromedioGrupal(){


double prom, suma = 0.0;
for (int i=0; i < cal.length; i++){
suma += cal [i];
}
prom = suma / cal.length;
return prom;
}

public int numeroPromediosMayores(){


int cantidad = 0;
for (int i=1; i < cal.length; i++){
if (cal [i] >= 7){
cantidad ++;
}
}

return cantidad;
}

public int numeroPromediosMenores(){


int cantidad = 0;
for (int i=1; i < cal.length; i++){
if (cal [i] < 7){
cantidad ++;
}
}

return cantidad;
}

public double procentajePromediosMayores(){


double num;
num = (numeroPromediosMayores()*100)/cal.length;
return num;
}

    public double procentajePromediosMenores(){


     double num;
num = (numeroPromediosMenores()*100)/cal.length;
return num;
}
    
    public int numeroCalificaciones(){
     int cantidad = 0;
     for (int i=1; i < cal.length; i++){
if (cal [i] >= 8){
cantidad ++;
}
}

return cantidad;
  }
}

Clase de prueba: "PruebaArregloCalificaciones"

import javax.swing.JOptionPane;
public class PruebaArregloCalificaciones {

public static void main (String [] main){


ArregloCalificaciones x;
String texto;
int n;

texto = JOptionPane.showInputDialog("¿Cuántos alumnos 


son en total?");
n = Integer.parseInt(texto);
x = new ArregloCalificaciones(n);

for (int i = 0; i < n; i++){


texto = JOptionPane.showInputDialog("Introduce la "+(i+1)+"° calificación: ");
x.ColocarCalificaciones(Double.parseDouble(texto));
}

double promGrupo = x.obtenerPromedioGrupal();


int cantPromediosMayores = x.numeroPromediosMayores();
int cantPromediosMenores = x.numeroPromediosMenores();
double porcentajeMayor = x.procentajePromediosMayores();
double porcentajeMenor = x.procentajePromediosMenores();
int cantCalificaciones = x.numeroCalificaciones();

JOptionPane.showMessageDialog(null, 
"Promedio del Grupo: "+promGrupo+
"\nNúmero de alumnos aprobados: "+cantPromediosMayores+
"\nNúmero de alumnos reprobados: "+cantPromediosMenores+
"\nNúmero de alumnos cuya calificación fue 
mayor o igual a 8: "+cantCalificaciones+                           "\n\n\nPorcentaje de
alumnos aprobados: "+porcentajeMayor+
"\nPorcentaje de alumnos reprobados: "+porcentajeMenor);

6. En una matriz de 5 Filas X 4 Columnas, calcule la suma de las filas y de las


columnas, dejando los resultados en dos vectores, uno con la sumas de las
filas y el otro con las suma de las columnas, imprima los dos vectores
resultantes.

import java.util.Scanner;

/**
*

* @author ROLANDO MARTINEZ

*/

public class sumarcolumnasfilasmatrriz {

public static void main (String[]args){

Scanner lector = new Scanner (System.in);

int matriz [][]= new int [10][10];

int i,j, fila,sumfila=0,sumcolumna=0,columna;

int numaleatorio;

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

for (j=0;j<4;j++){

matriz [i][j] = numaleatorio=(int)Math.floor(Math.random()*(9-1+1)+1);

System.out.println("la matriz ingresada es ");

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

for(j=0;j<4;j++){

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

}
System.out.println("");

System.out.println("que fila desea sumar");

fila=lector.nextInt();

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

sumfila=sumfila+matriz[fila-1][i];

System.out.println("la suma de la fila "+fila+"es"+sumfila);

System.out.println("\nque columna desea sumar");

columna=lector.nextInt();

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

sumcolumna=sumcolumna+matriz[i][columna-1];

System.out.println("la suma de las


columnas"+columna+"es"+sumcolumna);

}}

7. Llenar una matriz de 3x3 e Imprima su traspuesta (la traspuesta se


consigue intercambiando filas por columnas y viceversa).

import java.util.Scanner;
/**

* @author ROLANDO MARTINEZ

*/

public class Transpuestadematriz {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

Scanner entrada = new Scanner (System.in);

int matriz [][]= new int [3][3];

System.out.println("dijite la matriz");

for (int i=0;i<3;i++){

for (int j=0;j<3;j++){

System.out.print("matriz["+i+"]["+j+"]):");

matriz [i][j] = entrada.nextInt();

}
}

System.out.println("matriz original:");

for (int i=0 ; i<3;i++){

for (int j=0 ; j<3;i++){

System.out.println(matriz [i][j]);

System.out.println("");

int aux;

for (int i=0;i<3;i++){

for (int j=0;j<3;j++)

aux = matriz [i][j];

matriz [i][j]= matriz [j][i];

matriz [j][i] = aux;

System.out.println("\nla matriz transpuesta es:");

for (int i=0;i<3;i++){

for (int j=0;j<3;j++){

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

System.out.println("");

}
}

}
}

Muchos Éxitos…

También podría gustarte