Examen 2024/11/21
This commit is contained in:
65
.idea/workspace.xml
generated
65
.idea/workspace.xml
generated
@@ -4,7 +4,14 @@
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e2c4f742-461e-4c7a-a6e0-b5f4b8e8f229" name="Changes" comment="utils y resto" />
|
||||
<list default="true" id="e2c4f742-461e-4c7a-a6e0-b5f4b8e8f229" name="Changes" comment="Se formatea utils">
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/examenes/examen20241122/Ejercicio_a.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/examenes/examen20241122/Ejercicio_b.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/examenes/examen20241122/Ejercicio_c.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/examenes/examen20241122/Ejercicio_d.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/examenes/examen20241122/Utils/Utils.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
@@ -20,9 +27,9 @@
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo"><![CDATA[{
|
||||
"associatedIndex": 1
|
||||
}]]></component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"associatedIndex": 1
|
||||
}</component>
|
||||
<component name="ProjectId" id="2nvRIu3ZfVBKxiIKkbDGfwPAbgr" />
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
||||
<ConfirmationsSetting value="2" id="Add" />
|
||||
@@ -31,21 +38,23 @@
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"Application.Ejercicio_a.executor": "Run",
|
||||
"Application.Ejercicio_b.executor": "Run",
|
||||
"Application.Ejercicio_c.executor": "Run",
|
||||
"Application.Ejercicio_d.executor": "Run",
|
||||
"Application.Ejercicio_e.executor": "Run",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"git-widget-placeholder": "main",
|
||||
"kotlin-language-version-configured": "true",
|
||||
"onboarding.tips.debug.path": "/Users/h4ckx0r/IdeaProjects/ExamenesProgramacion/src/main/java/net/h4ckx0r/Main.java"
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"Application.Ejercicio_a.executor": "Run",
|
||||
"Application.Ejercicio_b.executor": "Run",
|
||||
"Application.Ejercicio_c.executor": "Run",
|
||||
"Application.Ejercicio_d.executor": "Run",
|
||||
"Application.Ejercicio_e.executor": "Run",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"git-widget-placeholder": "main",
|
||||
"kotlin-language-version-configured": "true",
|
||||
"onboarding.tips.debug.path": "/Users/h4ckx0r/IdeaProjects/ExamenesProgramacion/src/main/java/net/h4ckx0r/Main.java"
|
||||
}
|
||||
}]]></component>
|
||||
}</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyClassDialog.RECENTS_KEY">
|
||||
<recent name="examenes.examen20241122" />
|
||||
<recent name="examenes.examen20241025" />
|
||||
</key>
|
||||
</component>
|
||||
@@ -130,9 +139,28 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1729857821078</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="10" />
|
||||
<task id="LOCAL-00010" summary="Se formatea utils">
|
||||
<option name="closed" value="true" />
|
||||
<created>1729857949405</created>
|
||||
<option name="number" value="00010" />
|
||||
<option name="presentableId" value="LOCAL-00010" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1729857949405</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="11" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
<option name="TAB_STATES">
|
||||
<map>
|
||||
<entry key="MAIN">
|
||||
<value>
|
||||
<State />
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="Commit inicial" />
|
||||
<MESSAGE value="Ejercicio C terminado" />
|
||||
@@ -143,6 +171,7 @@
|
||||
<MESSAGE value="Ejercicio E terminado" />
|
||||
<MESSAGE value="Ejercicio A terminado" />
|
||||
<MESSAGE value="utils y resto" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="utils y resto" />
|
||||
<MESSAGE value="Se formatea utils" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Se formatea utils" />
|
||||
</component>
|
||||
</project>
|
||||
31
src/main/java/examenes/examen20241122/Ejercicio_a.java
Normal file
31
src/main/java/examenes/examen20241122/Ejercicio_a.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package examenes.examen20241122;
|
||||
|
||||
import examenes.examen20241122.Utils.Utils;
|
||||
|
||||
public class Ejercicio_a {
|
||||
public static void main(String[] args) {
|
||||
int[] arrayNums = Utils.crearArrayNumsAleatorios(10, -100, 100);
|
||||
|
||||
Utils.mostrarArrayNums(arrayNums);
|
||||
System.out.println();
|
||||
Utils.mostrarArrayNums(invertirArrayNums(arrayNums));
|
||||
}
|
||||
|
||||
/**
|
||||
* Invierte los números del array intercambiándolos
|
||||
*
|
||||
* @param arrayNums Array a invertir
|
||||
* @return Mismo array invertido
|
||||
*/
|
||||
public static int[] invertirArrayNums(int[] arrayNums) {
|
||||
|
||||
//Lo recorre desde el principio y el final invirtiéndolos
|
||||
for (int inicio = 0, fin = arrayNums.length - 1; inicio < fin; inicio++, fin--) {
|
||||
|
||||
int tempNum = arrayNums[inicio];
|
||||
arrayNums[inicio] = arrayNums[fin];
|
||||
arrayNums[fin] = tempNum;
|
||||
}
|
||||
return arrayNums;
|
||||
}
|
||||
}
|
||||
49
src/main/java/examenes/examen20241122/Ejercicio_b.java
Normal file
49
src/main/java/examenes/examen20241122/Ejercicio_b.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package examenes.examen20241122;
|
||||
|
||||
import examenes.examen20241122.Utils.Utils;
|
||||
|
||||
public class Ejercicio_b {
|
||||
public static void main(String[] args) {
|
||||
//Declaramos el array de palabras
|
||||
String[] palabras = new String[]{"Rafa", "que", "tal", "te", "parece", "mi", "proyecto", "del", "asistente"};
|
||||
|
||||
//Lo mostramos convertido
|
||||
Utils.mostrarMatrizChars(stringsAMatriz(palabras));
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera una matriz de caracteres a partir de un array de Palabras
|
||||
*
|
||||
* @param palabras Array de palabras
|
||||
* @return Matriz de chars
|
||||
*/
|
||||
public static char[][] stringsAMatriz(String[] palabras) {
|
||||
char[][] arrayChars = new char[palabras.length][obtenerCharPalabraMasLarga(palabras)];
|
||||
|
||||
for (int i = 0; i < arrayChars.length; i++) {
|
||||
for (int j = 0; j < arrayChars[i].length; j++) {
|
||||
if (j >= palabras[i].length()) {
|
||||
arrayChars[i][j] = ' ';
|
||||
} else {
|
||||
arrayChars[i][j] = palabras[i].charAt(j);
|
||||
}
|
||||
}
|
||||
}
|
||||
return arrayChars;
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtiene el número de carácteres de la palabra más larga de una array
|
||||
*
|
||||
* @param palabras Array de palabras
|
||||
* @return Número de carácteres
|
||||
*/
|
||||
public static int obtenerCharPalabraMasLarga(String[] palabras) {
|
||||
int numChars = 0;
|
||||
|
||||
for (String palabra : palabras) {
|
||||
if (palabra.length() > numChars) numChars = palabra.length();
|
||||
}
|
||||
return numChars;
|
||||
}
|
||||
}
|
||||
51
src/main/java/examenes/examen20241122/Ejercicio_c.java
Normal file
51
src/main/java/examenes/examen20241122/Ejercicio_c.java
Normal file
@@ -0,0 +1,51 @@
|
||||
package examenes.examen20241122;
|
||||
|
||||
import examenes.examen20241122.Utils.Utils;
|
||||
|
||||
public class Ejercicio_c {
|
||||
public static void main(String[] args) {
|
||||
int[] arrayNums = Utils.crearArrayNumsAleatorios(10, 0, 10);
|
||||
|
||||
//System.out.println(calcularNumDivisores(4));
|
||||
Utils.mostrarArrayNums(arrayNums);
|
||||
System.out.println();
|
||||
Utils.mostrarArrayNums(ordenarBurbujaDivisores(arrayNums));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ordena por Burbuja según el número de divisores
|
||||
*
|
||||
* @param array Array que ordenar
|
||||
* @return Array ordenado
|
||||
*/
|
||||
public static int[] ordenarBurbujaDivisores(int[] array) {
|
||||
boolean ordenando;
|
||||
do {
|
||||
ordenando = false;
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
if (i != (array.length - 1) && calcularNumDivisores(array[i]) > calcularNumDivisores(array[i + 1])) {
|
||||
int tempNum = array[i];
|
||||
array[i] = array[i + 1];
|
||||
array[i + 1] = tempNum;
|
||||
ordenando = true;
|
||||
}
|
||||
}
|
||||
} while (ordenando);
|
||||
return array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calcula el número de divisores que tiene un número
|
||||
*
|
||||
* @param num Número del que calcular los divisores
|
||||
* @return Número de divisores
|
||||
*/
|
||||
public static int calcularNumDivisores(int num) {
|
||||
int divisores = 0;
|
||||
for (int i = 1; i <= num; i++) {
|
||||
if ((num % i) == 0) divisores++;
|
||||
}
|
||||
return divisores;
|
||||
}
|
||||
}
|
||||
39
src/main/java/examenes/examen20241122/Ejercicio_d.java
Normal file
39
src/main/java/examenes/examen20241122/Ejercicio_d.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package examenes.examen20241122;
|
||||
|
||||
public class Ejercicio_d {
|
||||
public static void main(String[] args) {
|
||||
//Declaramos el texto
|
||||
String texto = "estoEsUnEjemplo";
|
||||
|
||||
//Mostramos los cambios antes
|
||||
System.out.println(texto);
|
||||
//Y después
|
||||
System.out.println(cambiarASnake(texto));
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Cambiamos de camelCase a snake_case
|
||||
*
|
||||
* @param texto Texto en camelCase
|
||||
* @return Texto en snake_case
|
||||
*/
|
||||
public static String cambiarASnake(String texto) {
|
||||
//Creamos un StringBuffer o StringBuilder
|
||||
StringBuffer textoSnake = new StringBuffer();
|
||||
|
||||
//Por cada letra comprobamos si está en mayúscula y si lo está lo cambiamos por _ y la letra en minúscula
|
||||
for (int i = 0; i < texto.length(); i++) {
|
||||
if (texto.charAt(i) >= 65 && texto.charAt(i) <= 90) {
|
||||
textoSnake.append("_");
|
||||
textoSnake.append((char) (texto.charAt(i) + 32));
|
||||
} else {
|
||||
textoSnake.append(texto.charAt(i));
|
||||
}
|
||||
}
|
||||
|
||||
//Devolvemos el String
|
||||
return textoSnake.toString();
|
||||
}
|
||||
}
|
||||
55
src/main/java/examenes/examen20241122/Utils/Utils.java
Normal file
55
src/main/java/examenes/examen20241122/Utils/Utils.java
Normal file
@@ -0,0 +1,55 @@
|
||||
package examenes.examen20241122.Utils;
|
||||
|
||||
public class Utils {
|
||||
/**
|
||||
* Recorremos una matriz para mostrarla por consola
|
||||
*
|
||||
* @param matriz Matriz a recorrer
|
||||
*/
|
||||
public static void mostrarMatrizChars(char[][] matriz) {
|
||||
for (int i = 0; i < matriz.length; i++) {
|
||||
for (int j = 0; j < matriz[i].length; j++) {
|
||||
System.out.print(matriz[i][j] + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera un número aleatorio entre 0 y un máximo
|
||||
*
|
||||
* @param multiplicador Máximo
|
||||
* @return Double con el número
|
||||
*/
|
||||
public static double generarNumAleatorio(int multiplicador) {
|
||||
return Math.random() * multiplicador;
|
||||
}
|
||||
|
||||
/**
|
||||
* Crear un array de números aleatorios
|
||||
*
|
||||
* @param cantidadElementos Tamaño del arrau
|
||||
* @param numMinimo Número mínimo que puede ser un elemento del array
|
||||
* @param numMaximo Número máximo que puede ser un elemento del array
|
||||
* @return Array con los números aleatorios
|
||||
*/
|
||||
public static int[] crearArrayNumsAleatorios(int cantidadElementos, int numMinimo, int numMaximo) {
|
||||
int[] nums = new int[cantidadElementos];
|
||||
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
nums[i] = numMinimo + (int) Math.round(generarNumAleatorio((numMaximo - numMinimo)));
|
||||
}
|
||||
return nums;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recorre un array de números para mostrarlo por consola
|
||||
*
|
||||
* @param array Array a mostrar
|
||||
*/
|
||||
public static void mostrarArrayNums(int[] array) {
|
||||
for (int num : array) {
|
||||
System.out.print(num + " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user