Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2. En el método main, se inicializa una variable n con el valor 10, que es el número inicial
para el cual se generará la secuencia de Collatz.
3. Se imprime un mensaje que indica que se mostrará la secuencia de Collatz para el número
10.
6. El método collatz(int n) es una función recursiva que toma un número entero n como
argumento y calcula la secuencia de Collatz.
CODIGO
Este código es un programa en Java que calcula la potencia de un número entero utilizando el tipo
de dato BigDecimal para obtener una alta precisión en los cálculos y redondeo correcto.
CODIGO
import java.util.Scanner;
import java.math.BigDecimal;
if (exponente < 0) {
System.out.println("El exponente debe ser un número no
negativo.");
} else {
BigDecimal resultado = calcularPotencia(base, exponente);
System.out.println(base + " elevado a " + exponente + "
es igual a " + resultado);
}
} catch (java.util.InputMismatchException e) {
System.out.println("Error: Debes ingresar números enteros
válidos.");
}
}
if (exponente < 0) {
resultado = BigDecimal.ONE.divide(resultado, 20,
BigDecimal.ROUND_HALF_UP);
}
return resultado;
}
}
}
3 PUNTO DEL TALLER
1. Se importan las clases Scanner y ArrayList para permitir la lectura de entrada del usuario y
la gestión de una lista de tareas, respectivamente.
2. Definición de Clases:
El código define tres clases principales: Tareas, ListaDeTareas, y Principal.
Tareas representa una tarea con un nombre y un estado (completada o pendiente).
ListaDeTareas representa una lista de tareas y proporciona métodos para agregar,
completar y mostrar tareas.
Principal contiene el método main, que es el punto de entrada del programa.
3. Clase Tareas:
Esta clase tiene dos atributos: nombre y verificar, que representan el nombre de la tarea y
su estado de verificación.
Un constructor permite crear una instancia de Tareas con un nombre y un estado inicial no
verificado.
Métodos permiten obtener el nombre y el estado de la tarea, así como marcarla como
completada.
4. Clase ListaDeTareas:
Esta clase gestiona una lista de objetos de tipo Tareas usando un ArrayList.
Un constructor crea una lista vacía al iniciar el programa.
Métodos permiten agregar una nueva tarea a la lista, marcar una tarea como completada y
mostrar todas las tareas en la lista.
Crea una instancia de ListaDeTareas llamada lista para gestionar las tareas.
Utiliza un objeto Scanner para leer la entrada del usuario.
Inicializa una variable booleana salir para controlar el bucle del menú.
Muestra un mensaje de bienvenida al usuario.
Cuando el usuario selecciona la opción "Salir del programa," se cambia el valor de salir
a verdadero, lo que finaliza el bucle del menú y, por lo tanto, termina el programa.
En resumen, este programa permite al usuario gestionar una lista de tareas, agregar nuevas tareas,
marcar tareas como completadas y mostrar el estado actual de las tareas en la lista. El bucle del
menú permite al usuario realizar estas operaciones hasta que decida salir del programa.
CODIGO
// Importamos la clase Scanner para leer lo escrito por el usuario
// Importamos la clase ArrayList para usarla como lista de tareas
import java.util.Scanner;
import java.util.ArrayList;
// Definimos una clase Tarea que tiene dos atributos: nombre y verficar
class Tareas {
// El nombre de la tarea es una cadena de texto
String nombre;
// El estado de la tarea es un valor booleano que indica si está
completada o no
boolean verificar;
System.out.println("NOTA 5.");
}
}
4 PUNTO DEL TALLER
1. se crea una variable llamada vector que es un arreglo de números enteros (int). Este arreglo
contiene los números {10, 1, 34, 0, 22, -8}. Es como tener una lista de números desordenados.
3. Iniciamos un bucle (for) que nos permite recorrer cada número en nuestro arreglo. Comenzamos
desde el primer número (índice 0) y avanzamos uno por uno hasta el último número.
4. Dentro del bucle, imprimimos cada número en la pantalla. En este caso, estamos mostrando el
número en la posición i del arreglo y luego dejamos un espacio para separar los números.
5. Después de que el bucle ha recorrido todos los números en el arreglo, hemos terminado de
imprimirlos en la pantalla.
8. Iniciamos un bucle (for) que nos permite recorrer cada número en el arreglo, comenzando
desde el segundo número (índice 1) y avanzando uno por uno hasta el último número.
9. Dentro del bucle, tomamos el número actual en la posición i del arreglo y lo almacenamos en
una variable llamada elementoActual. Este es el número que vamos a intentar colocar en su
posición correcta en el arreglo ordenado.
10. También creamos otra variable llamada j que inicializamos en i - 1. Esta variable nos ayudará a
comparar elementoActual con los números a la izquierda de él en el arreglo.
11. Iniciamos otro bucle (loop) dentro de este bucle principal. Este bucle se ejecutará mientras j
sea mayor o igual a cero (asegurándonos de no salirnos del límite del arreglo) y el número en la
posición j del arreglo sea mayor que elementoActual. Esto significa que estamos buscando la
posición correcta para colocar elementoActual y desplazar los números mayores a la derecha para
hacer espacio.
12. Dentro de este bucle, estamos moviendo un número mayor a la derecha en el arreglo para
hacer espacio para elementoActual. Primero, copiamos el número en la posición j en la siguiente
posición a la derecha (j + 1), y luego decrementamos j para seguir comparando hacia la izquierda.
NOTA: Con la funcion de ordenación proporcionadas por Java Arrays.sort es mas rápido, pero
utilizar el algoritmo de ordenación por inserción en un ejercicio es una excelente manera de
aprender cómo funcionan los algoritmos de ordenación. Puedes ver paso a paso cómo se mueven
los elementos para ordenar el arreglo.
CODIGO
ordenarPorInsercion(vector);
1. se crea una matriz bidimensional (una especie de tabla con filas y columnas). En este caso,
es una matriz de 3x3 que contiene números del 1 al 9. Cada número está en una fila y
columna específica, como una cuadrícula.
2. Establecemos el número que deseamos buscar en la matriz, que en este caso es el número
5.
3. Llamamos al método buscarElementoEnMatriz y le pasamos la matriz matriz y el número
elementoABuscar como argumentos. Esto es como decir: "Por favor, busca el número 5 en
esta matriz".
4. Ahora estamos dentro del método buscarElementoEnMatriz, que es donde ocurre la
búsqueda. Este método toma la matriz y el número a buscar como argumentos.
5. Calculamos el tamaño de la matriz (número de filas o columnas) y lo almacenamos en la
variable n. En este caso, como la matriz es de 3x3, n será igual a 3.
6. Comenzamos un bucle (for) que recorrerá cada fila de la matriz. Comenzamos desde la fila
0 y avanzamos una fila a la vez.
7. Dentro del bucle de filas, comenzamos otro bucle que recorrerá cada columna de la matriz.
Comenzamos desde la columna 0 y avanzamos una columna a la vez.
8. Dentro de estos bucles anidados, estamos verificando si el número en la posición actual de
la matriz (fila y columna) es igual al número que estamos buscando (elementoABuscar,
que es 5 en este caso).
9. Si encontramos el número, mostramos un mensaje que indica en qué fila y columna se
encontró.
10. Después de encontrar el elemento, utilizamos return para salir inmediatamente de la
función buscarElementoEnMatriz. Esto significa que no continuaremos buscando en el
resto de la matriz, ya que ya encontramos lo que buscábamos.
11. Si llegamos a este punto, significa que hemos recorrido toda la matriz y no hemos
encontrado el elemento que estábamos buscando. En este caso, mostramos un mensaje
indicando que el elemento no se encontró en la matriz.
CODIGO
int elementoABuscar = 5;
buscarElementoEnMatriz(matriz, elementoABuscar);
}
public static void buscarElementoEnMatriz(int[][] matriz, int
elementoABuscar) {
int n = matriz.length; // Tamaño de la matriz (n x n)
Diseñar un algoritmo en pseudocodigo que permita aceptar los (n) elementos de un vector (V) de
componentes enteros y positivos y que permita localizar al tiempo que se introducen los
elementos del vector, los números primos que figuran en el, mostrando su valor y la posición que
ocupan cada uno en el vector. Como única estructura de repetición solamente se podrá usar la de
condición inicial. Deberán disponerse todos los filtros necesarios para que no se produzcan
errores.
programa Java llamado NumerosPrimos que toma la entrada del usuario para crear una matriz de
números enteros y luego verifica si cada elemento es un número primo. Si un número es primo,
imprime un mensaje indicándolo.
Este programa permite al usuario ingresar el tamaño de la matriz y los elementos. Luego verifica si
cada elemento es un número primo e imprime el resultado.
Después del ciclo, si esPrimo todavía está true, imprime un mensaje indicando que num es primo y
su posición.
Cierra el Scanner.
CODIGO
7 PUNTO DEL TALLER
Diseñar un algoritmo en pseudocodigo que permita cargar una matriz (U) en memoria y
comprobar si la misma es unitaria o no, ¡ojo¡ abandonando la comprobación cuando algún
elemento no sea de la matriz unitaria. Una matriz unitaria de orden (n) es aquella que tiene n filas
(f) y n columnas (c), con todos sus componentes a 0 excepto la diagonal principal que esta a 1
Este programa solicita al usuario ingresar el tamaño de la matriz y luego los elementos de la
misma.
El Juego de la Vida de Conway es un autómata celular que sigue reglas simples para evolucionar
una matriz de células a lo largo del tiempo. Cada célula puede estar viva o muerta en una matriz
cuadrada. Las reglas del juego son las siguientes:
1. Si una célula está viva y tiene 2 o 3 células vecinas vivas, sobrevive en la siguiente
generación.
2. Si una célula está muerta y tiene exactamente 3 células vecinas vivas, nace en la siguiente
generación.
1. Inicialización de la matriz: Se crea una matriz cuadrada de tamaño MxM (en este ejemplo,
M = 10). Las células de la matriz se inicializan de manera aleatoria, es decir, algunas
estarán vivas (1) y otras estarán muertas (0).
2. Evolución de generaciones: Luego, se ejecuta un bucle que representa el paso del tiempo
o las generaciones. En cada generación, se aplican las reglas del juego a cada célula de
manera simultánea para determinar su estado en la siguiente generación.
3. Función evolucionar: Esta función aplica las reglas del juego para evolucionar la matriz a la
siguiente generación. Se recorre cada célula de la matriz y se calcula su estado en la
siguiente generación según las reglas explicadas anteriormente. Se crea una nueva matriz
para almacenar la siguiente generación.
Para "jugar" al Juego de la Vida, simplemente ejecuta el código y observa cómo las células
evolucionan de una generación a otra. Cada generación muestra cómo cambia el estado de todas
las células en la matriz. Puedes modificar los valores de M (el tamaño de la matriz) y
numGeneraciones (el número de generaciones que deseas simular) para experimentar con
diferentes configuraciones.
El juego se juega en el sentido de observar cómo las células vivas y muertas interactúan y
evolucionan según las reglas del juego, sin necesidad de intervención directa del jugador. Es un
ejemplo de autómata celular y un experimento interesante en el campo de la teoría de juegos y la
ciencia computacional.
CODIGO
import java.util.Arrays;
return vecinasVivas;
}
// Imprime la matriz
public static void imprimirMatriz(int[][] matriz) {
int M = matriz.length;
for (int i = 0; i < M; i++) {
for (int j = 0; j < M; j++) {
System.out.print(matriz[i][j] + " ");
}
System.out.println();
}
System.out.println();
}
}