Ejercicios Prácticos de Programación en Java: Vectores, Matrices e Histogramas
Introducción a la Programación en Java
A continuación, se presentan tres ejercicios prácticos desarrollados en el lenguaje de programación Java, enfocados en la manipulación de vectores, matrices y el procesamiento de datos estadísticos básicos.
1. Ordenamiento de Vectores
Este programa permite ingresar una serie de elementos numéricos desordenados y los organiza utilizando un algoritmo de selección.
import java.io.*;
import disc.*;
class OrdenaVector {
public static void main (String args[]) throws IOException {
int[] desorden = new int[100];
int[] orden = new int[100];
int n, mayor, cont, tope;
PantallaSalida.println("Ingrese la cantidad de elementos:");
n = PantallaEntrada.getInt();
for (int i = 0; i < n; i++) {
PantallaSalida.println("Ingrese elemento " + i);
desorden[i] = PantallaEntrada.getInt();
}
cont = 0;
tope = 101;
for (int i = 0; i < n; i++) {
mayor = desorden[0];
for (int j = 0; j < n; j++) {
if (desorden[j] > mayor && desorden[j] < tope) {
mayor = desorden[j];
}
}
orden[cont] = mayor;
tope = mayor;
cont++; // es el índice del vector que guarda los números ordenados
}
for (int i = 0; i < n; i++) {
PantallaSalida.println(orden[i]);
}
}
}
2. Generación de Histograma de Notas
Este algoritmo recopila calificaciones de alumnos (del 1 al 7), almacena los datos en un vector y genera un conteo detallado que funciona como histograma de rendimiento.
import disc.*;
import java.io.*;
public class HistogramaNotas {
public static void main(String[] args) throws IOException {
String resp = "";
int nota, i = 0, n = 0, cont1 = 0, cont2 = 0, cont3 = 0, cont4 = 0, cont5 = 0, cont6 = 0, cont7 = 0;
int nvector[] = new int[49];
for (i = 0; i <= 49; i++) {
do {
PantallaSalida.println("Ingrese la nota.");
nota = PantallaEntrada.getInt();
nvector[i] = nota;
n = i;
} while (nota < 1 || nota > 7);
if (nota == 1) { cont1++; }
if (nota == 2) { cont2++; }
if (nota == 3) { cont3++; }
if (nota == 4) { cont4++; }
if (nota == 5) { cont5++; }
if (nota == 6) { cont6++; }
if (nota == 7) { cont7++; }
PantallaSalida.println("¿Hay más alumnos para seguir ingresando notas?");
resp = PantallaEntrada.getString();
if (resp.equalsIgnoreCase("no")) {
break;
}
}
i = 0;
PantallaSalida.println("Las notas son:");
for (i = 0; i <= n; i++) {
PantallaSalida.println(nvector[i]);
}
PantallaSalida.println("Histograma:");
PantallaSalida.println("La cantidad de notas 1 es: " + cont1);
PantallaSalida.println("La cantidad de notas 2 es: " + cont2);
PantallaSalida.println("La cantidad de notas 3 es: " + cont3);
PantallaSalida.println("La cantidad de notas 4 es: " + cont4);
PantallaSalida.println("La cantidad de notas 5 es: " + cont5);
PantallaSalida.println("La cantidad de notas 6 es: " + cont6);
PantallaSalida.println("La cantidad de notas 7 es: " + cont7);
}
}
3. Operaciones con Matrices y Diagonales
Este script realiza operaciones avanzadas sobre matrices bidimensionales, incluyendo la extracción de la diagonal principal hacia un vector, modificación de filas específicas y cálculo de sumas por filas.
import java.io.*;
import disc.*;
class EjercicioDiagonalaVector {
public static void main (String args[]) throws IOException {
int[] v = new int[50];
int[] v2 = new int[50];
int[][] m = new int[50][50];
int n, fila, columna, contador, sumafilas = 0, contador2 = -1;
PantallaSalida.println("Ingrese el tamaño de la matriz (cantidad de filas y columnas)");
n = PantallaEntrada.getInt();
for (fila = 0; fila < n; fila++) {
for (columna = 0; columna < n; columna++) {
PantallaSalida.println("Ingrese valores a la matriz");
m[fila][columna] = PantallaEntrada.getInt();
}
}
contador = 0;
for (fila = 0; fila < n; fila++) {
for (columna = 0; columna < n; columna++) {
if (fila == columna) { // se busca la diagonal principal
v[contador] = m[fila][columna];
contador = contador + 1;
}
}
}
for (contador = 0; contador < n; contador++) {
PantallaSalida.println("Los elementos del vector son : " + v[contador]);
}
// Cambio de valores en la primera y última fila
for (fila = 0; fila < n; fila++) {
for (columna = 0; columna < n; columna++) {
if (fila == 0)
m[fila][columna] = 1;
if (fila == (n - 1))
m[fila][columna] = 100;
}
}
for (fila = 0; fila < n; fila++) {
for (columna = 0; columna < n; columna++) {
PantallaSalida.println("La matriz cambiada queda " + m[fila][columna]);
}
}
for (fila = 0; fila < n; fila++) {
sumafilas = 0;
contador2++;
for (columna = 0; columna < n; columna++) {
sumafilas = sumafilas + m[fila][columna];
v2[contador2] = sumafilas;
}
}
for (contador2 = 0; contador2 < n; contador2++) {
PantallaSalida.println("Vector con la suma de filas: " + v2[contador2]);
}
}
}