Skip to content

Commit e5dd59a

Browse files
#5 - Java & Python "Extra"
1 parent 2b66c9c commit e5dd59a

File tree

2 files changed

+108
-2
lines changed

2 files changed

+108
-2
lines changed

Roadmap/05 - VALOR Y REFERENCIA/java/JesusAntonioEEscamilla.java

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import java.util.Arrays;
2+
13
/** #05 - Java -> Jesus Antonio Escamilla */
24

35
public class JesusAntonioEEscamilla {
@@ -13,6 +15,12 @@ public static void main(String[] args) {
1315
funciónPorValor();
1416
System.out.println("Por Referencia");
1517
funciónPorReferencia();
18+
19+
//EXTRA
20+
System.out.println("Extra por Valor");
21+
extraValor();
22+
System.out.println("Extra por Referencia");
23+
extraReferencia();
1624
}
1725

1826
//---EJERCIÓ---
@@ -70,7 +78,68 @@ public static void modificarReferencial(int[] array){
7078

7179
/**-----DIFICULTAD EXTRA-----*/
7280

73-
//Pendiente
81+
// Por VALOR
82+
// Función para intercambiar valores de tipo primitivo
83+
public static int[] intercambioValores(int a, int b){
84+
int temp = a;
85+
a = b;
86+
b = temp;
87+
return new int[]{a, b};
88+
}
89+
90+
public static void extraValor(){
91+
// Variables originales
92+
int x = 5;
93+
int y = 10;
94+
95+
// Llamada la nuevas variables en funciones
96+
int[] resultados = intercambioValores(x, y);
97+
int nuevoX = resultados[0];
98+
int nuevoY = resultados[1];
99+
100+
// Los mostramos el resultado en la consola
101+
System.out.println("Originales: x = " + x + ", y = " + y);
102+
System.out.println("Nuevas: nuevoX = " + nuevoX + ", nuevoY = " + nuevoY);
103+
}
104+
105+
106+
// Por REFERENCIA
107+
// Clase contenedor para las lista de referencia
108+
public static class ListaContenedor {
109+
int[] lista1;
110+
int[] lista2;
111+
112+
public ListaContenedor(int[] lista1, int[] lista2){
113+
this.lista1 = lista1;
114+
this.lista2 = lista2;
115+
}
116+
}
117+
118+
// Función para intercambiar las referencia de las lista
119+
public static ListaContenedor intercambiarLista(ListaContenedor contenedor){
120+
int[] temp = contenedor.lista1;
121+
contenedor.lista1 = contenedor.lista2;
122+
contenedor.lista2 = temp;
123+
return contenedor;
124+
}
125+
126+
public static void extraReferencia(){
127+
// Variables Originales
128+
int[] listaA = {1, 2, 3};
129+
int[] listaB = {4, 5, 6};
130+
131+
// Crear copias de las listas
132+
int[] listAOriginal = Arrays.copyOf(listaA, listaA.length);
133+
int[] listBOriginal = Arrays.copyOf(listaB, listaB.length);
134+
135+
// Crear contenedores y llamar a la función
136+
ListaContenedor contenedor = new ListaContenedor(listaA, listaB);
137+
ListaContenedor nuevasLista = intercambiarLista(contenedor);
138+
139+
// Los mostramos el resultado en la consola
140+
System.out.println("Originales: listaA: " + Arrays.toString(listAOriginal) + ", listaB: " + Arrays.toString(listBOriginal));
141+
System.out.println("Nuevas: listaA: " + Arrays.toString(nuevasLista.lista1) + ", listaB: " + Arrays.toString(contenedor.lista2));
142+
}
74143

75144
/**-----DIFICULTAD EXTRA-----*/
76145
}

Roadmap/05 - VALOR Y REFERENCIA/python/JesusAntonioEEscamilla.py

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,41 @@ def modificar_referencia(lista):
5252
"""
5353
EXTRA
5454
"""
55-
#Pendiente
55+
print("Extra Valor")
56+
# Funciones para intercambiar valores
57+
def intercambiar_valor(a, b):
58+
a, b = b, a
59+
return a, b
60+
61+
# Variables Originales
62+
x = 5
63+
y = 10
64+
65+
# Asignamos a nuevas variables
66+
nuevoX, nuevoY = intercambiar_valor(x, y)
67+
68+
# Imprimir los resultado en la consola
69+
print(f"Originales: x = {x}, y = {y}")
70+
print(f"Nuevas: nuevo_X = {nuevoX}, nuevo_Y = {nuevoY}")
71+
72+
73+
print("Extra Referencia")
74+
# Función para intercambiar valores en lista
75+
def intercambio_lista(lista1, lista2):
76+
lista1[:], lista2[:] = lista2[:], lista1[:]
77+
return lista1, lista2
78+
79+
# Variables Originales
80+
lista_a = [1, 2, 3]
81+
lista_b = [4, 5, 6]
82+
83+
# Creamos copias de las listas
84+
lista_a_original = lista_a[:]
85+
lista_b_original = lista_b[:]
86+
87+
# Asignación a nuevas variables
88+
nueva_lista_a, nueva_lista_b = intercambio_lista(lista_a, lista_b)
89+
90+
# Imprimir los resultado en la consola
91+
print(f"Originales: lista_a = {lista_a_original}, lista_b = {lista_b_original}")
92+
print(f"Nuevas: nueva_lista_a = {nueva_lista_a}, nueva_lista_b = {nueva_lista_b}")

0 commit comments

Comments
 (0)