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" />
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<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="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
@@ -20,9 +27,9 @@
|
|||||||
<component name="Git.Settings">
|
<component name="Git.Settings">
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectColorInfo"><![CDATA[{
|
<component name="ProjectColorInfo">{
|
||||||
"associatedIndex": 1
|
"associatedIndex": 1
|
||||||
}]]></component>
|
}</component>
|
||||||
<component name="ProjectId" id="2nvRIu3ZfVBKxiIKkbDGfwPAbgr" />
|
<component name="ProjectId" id="2nvRIu3ZfVBKxiIKkbDGfwPAbgr" />
|
||||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
||||||
<ConfirmationsSetting value="2" id="Add" />
|
<ConfirmationsSetting value="2" id="Add" />
|
||||||
@@ -31,21 +38,23 @@
|
|||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
<option name="showLibraryContents" value="true" />
|
<option name="showLibraryContents" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent"><![CDATA[{
|
<component name="PropertiesComponent">{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
"Application.Ejercicio_a.executor": "Run",
|
"Application.Ejercicio_a.executor": "Run",
|
||||||
"Application.Ejercicio_b.executor": "Run",
|
"Application.Ejercicio_b.executor": "Run",
|
||||||
"Application.Ejercicio_c.executor": "Run",
|
"Application.Ejercicio_c.executor": "Run",
|
||||||
"Application.Ejercicio_d.executor": "Run",
|
"Application.Ejercicio_d.executor": "Run",
|
||||||
"Application.Ejercicio_e.executor": "Run",
|
"Application.Ejercicio_e.executor": "Run",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"git-widget-placeholder": "main",
|
"RunOnceActivity.git.unshallow": "true",
|
||||||
"kotlin-language-version-configured": "true",
|
"git-widget-placeholder": "main",
|
||||||
"onboarding.tips.debug.path": "/Users/h4ckx0r/IdeaProjects/ExamenesProgramacion/src/main/java/net/h4ckx0r/Main.java"
|
"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">
|
<component name="RecentsManager">
|
||||||
<key name="CopyClassDialog.RECENTS_KEY">
|
<key name="CopyClassDialog.RECENTS_KEY">
|
||||||
|
<recent name="examenes.examen20241122" />
|
||||||
<recent name="examenes.examen20241025" />
|
<recent name="examenes.examen20241025" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
@@ -130,9 +139,28 @@
|
|||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1729857821078</updated>
|
<updated>1729857821078</updated>
|
||||||
</task>
|
</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 />
|
<servers />
|
||||||
</component>
|
</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">
|
<component name="VcsManagerConfiguration">
|
||||||
<MESSAGE value="Commit inicial" />
|
<MESSAGE value="Commit inicial" />
|
||||||
<MESSAGE value="Ejercicio C terminado" />
|
<MESSAGE value="Ejercicio C terminado" />
|
||||||
@@ -143,6 +171,7 @@
|
|||||||
<MESSAGE value="Ejercicio E terminado" />
|
<MESSAGE value="Ejercicio E terminado" />
|
||||||
<MESSAGE value="Ejercicio A terminado" />
|
<MESSAGE value="Ejercicio A terminado" />
|
||||||
<MESSAGE value="utils y resto" />
|
<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>
|
</component>
|
||||||
</project>
|
</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