Skip to content

Commit 77ad83d

Browse files
authored
Merge pull request mouredev#7675 from inmortalnight/main
#3 - Python, #3 - Java
2 parents d6f3b0b + 3f00173 commit 77ad83d

File tree

2 files changed

+229
-0
lines changed

2 files changed

+229
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
// 03 - Java
2+
// Estructuras de datos
3+
4+
import java.util.*;
5+
6+
public class inmortalnight {
7+
public static void main(String[] args) {
8+
//Creación de estructuras de datos
9+
//NOTA: en Java, al declarar ya se establece un tipo de dato para toda la estructura.
10+
//Array, estructura de tamaño fijo
11+
int[] array = {1, 2, 3, 4, 5}; //Operación de insercción
12+
array[0] = 1; //Operación de actualización
13+
Arrays.sort(array); //Operación de ordenación
14+
15+
//Lista (ArrayList), estructura de tamaño variable de cualquier tipo
16+
ArrayList<Integer> lista = new ArrayList<Integer>();
17+
lista.add(1); //Operación de insercción
18+
lista.add(2);
19+
lista.remove(1); //Operación de borrado
20+
lista.set(0, 10); //Operación de actualización
21+
lista.sort(null); //Operación de ordenación
22+
23+
//Set, estructura de valores únicos
24+
Set<Integer> set = new HashSet<Integer>();
25+
set.add(1); //Operación de insercción
26+
set.remove(1); //Operación de borrado
27+
28+
//Map, estructura de clave-valor, donde la clave es única
29+
Map<String, Integer> map = new HashMap<String, Integer>();
30+
map.put("uno", 1); //Operación de insercción
31+
map.remove("uno"); //Operación de borrado
32+
map.put("uno", 10); //Operación de actualización
33+
34+
//Queue, estructura de datos que sigue el orden FIFO
35+
Queue<Integer> queue = new LinkedList<Integer>();
36+
queue.add(1); //Operación de insercción
37+
queue.remove(); //Operación de borrado
38+
39+
//Stack, estructura de datos que sigue el orden LIFO
40+
Stack<Integer> stack = new Stack<Integer>();
41+
stack.push(1); //Operación de insercción
42+
stack.pop(); //Operación de borrado
43+
44+
//EXTRA: Crear una agenda de contactos
45+
EjercicioExtra();
46+
}
47+
48+
public static void EjercicioExtra() {
49+
Scanner sc = new Scanner(System.in);
50+
Map<String, Integer> agenda = new HashMap<>();
51+
int opcion = 0;
52+
do {
53+
System.out.println("\n*** Agenda ***");
54+
System.out.println("Seleccione una opción:");
55+
System.out.println("1. Buscar Contacto");
56+
System.out.println("2. Nuevo Contacto");
57+
System.out.println("3. Actualizar Contacto");
58+
System.out.println("4. Eliminar Contacto");
59+
System.out.println("5. Salir");
60+
opcion = sc.nextInt();
61+
switch(opcion) {
62+
case 1:
63+
BuscarContacto(sc, agenda);
64+
break;
65+
case 2:
66+
NuevoContacto(sc, agenda);
67+
break;
68+
case 3:
69+
ActualizarContacto(sc, agenda);
70+
break;
71+
case 4:
72+
EliminarContacto(sc, agenda);
73+
break;
74+
case 5:
75+
System.out.println("Saliendo...");
76+
break;
77+
default:
78+
System.out.println("Opción no válida");
79+
break;
80+
}
81+
} while (opcion != 5);
82+
sc.close();
83+
}
84+
85+
public static void BuscarContacto(Scanner sc, Map<String, Integer> agenda) {
86+
System.out.print("Ingrese el nombre del contacto: ");
87+
String nombre = sc.next();
88+
if (agenda.containsKey(nombre)) {
89+
System.out.println("Teléfono de " + nombre + ": " + agenda.get(nombre));
90+
} else {
91+
System.out.println("Contacto no encontrado.");
92+
}
93+
}
94+
95+
public static void NuevoContacto(Scanner sc, Map<String, Integer> agenda) {
96+
System.out.print("Ingrese el nombre del nuevo contacto: ");
97+
String nombre = sc.next();
98+
System.out.print("Ingrese el número de teléfono: ");
99+
String telefono = sc.next();
100+
if (telefono.length() <= 11 && telefono.matches("\\d+")) {
101+
agenda.put(nombre, Integer.parseInt(telefono));
102+
System.out.println("Contacto agregado.");
103+
} else {
104+
System.out.println("Número de teléfono inválido. Debe ser numérico y no más de 11 dígitos.");
105+
}
106+
}
107+
108+
public static void ActualizarContacto(Scanner sc, Map<String, Integer> agenda) {
109+
System.out.print("Ingrese el nombre del contacto a actualizar: ");
110+
String nombre = sc.next();
111+
if (agenda.containsKey(nombre)) {
112+
System.out.print("Ingrese el nuevo número de teléfono: ");
113+
String telefono = sc.next();
114+
if (telefono.length() <= 11 && telefono.matches("\\d+")) {
115+
agenda.put(nombre, Integer.parseInt(telefono));
116+
System.out.println("Contacto actualizado.");
117+
} else {
118+
System.out.println("Número de teléfono inválido. Debe ser numérico y no más de 11 dígitos.");
119+
}
120+
} else {
121+
System.out.println("Contacto no encontrado.");
122+
}
123+
}
124+
125+
public static void EliminarContacto(Scanner sc, Map<String, Integer> agenda) {
126+
System.out.print("Ingrese el nombre del contacto a eliminar: ");
127+
String nombre = sc.next();
128+
if (agenda.containsKey(nombre)) {
129+
agenda.remove(nombre);
130+
System.out.println("Contacto eliminado.");
131+
} else {
132+
System.out.println("Contacto no encontrado.");
133+
}
134+
}
135+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# 03 - Python
2+
3+
# Estructuras de datos y operaciones básicas
4+
5+
# List - conjunto de elementos
6+
list = [1, 2, 3, 4, 5]
7+
list.append(6) # Operación de inserción
8+
list.insert(0, 0) # Operación de inserción
9+
list.remove(6) # Operación de borrado
10+
list[0] = 0 # Operación de actualización
11+
list.sort() # Operación de ordenación
12+
list.reverse() # Operación de ordenación inversa
13+
14+
# Turple - conjunto inmutable de elementos, sin operaciones
15+
tuple = (1, 2, 3, 4, 5)
16+
sorted(tuple) # Operación de ordenación
17+
18+
# Set - conjunto único de elementos, sin duplicados
19+
set_element = {1, 2, 3, 4, 5}
20+
set_element.add(6) # Operación de inserción
21+
set_element.discard(6) # Operación de borrado
22+
23+
# Dictionary - conjunto de elementos tipo key,value
24+
dictionary = {"one": 1, "two": 2, "three": 3}
25+
dictionary["four"] = 4 # Operación de inserción
26+
dictionary.pop("four") # Operación de borrado
27+
dictionary["one"] = 0 # Operación de actualización
28+
dictionary.update({"five": 5}) # Operación de actualización
29+
30+
from collections import deque
31+
32+
# Heap - Binary Tree
33+
heap = [1, 5, 3, 4, 2, 8, 7, 9]
34+
35+
# Stacks and queues
36+
stack = deque([1, 2, 3, 4, 5])
37+
38+
39+
40+
# EXTRA: Agenda de contactos
41+
42+
# Crear contacto; dictionary con nombre y número de teléfono
43+
contactos = {}
44+
# Menú de opciones
45+
run = True
46+
while run:
47+
print("*** Agenda de contactos ***")
48+
print("Elija una opción:")
49+
print("1. Buscar contacto")
50+
print("2. Insertar contacto")
51+
print("3. Actualizar contacto")
52+
print("4. Eliminar contacto")
53+
print("5. Salir")
54+
try:
55+
opcion = int(input())
56+
if opcion == 1:
57+
nombre = input("Ingrese el nombre del contacto: ")
58+
if nombre in contactos:
59+
print(f"{nombre}: {contactos[nombre]}")
60+
else:
61+
print("Contacto no encontrado.")
62+
elif opcion == 2:
63+
nombre = input("Ingrese el nombre del contacto: ")
64+
telefono = input("Ingrese el número de teléfono: ")
65+
if telefono.isdigit() and len(telefono) <= 11:
66+
contactos[nombre] = int(telefono)
67+
print("Contacto agregado.")
68+
else:
69+
print("Número de teléfono inválido.")
70+
elif opcion == 3:
71+
nombre = input("Ingrese el nombre del contacto: ")
72+
if nombre in contactos:
73+
telefono = input("Ingrese el nuevo número de teléfono: ")
74+
if telefono.isdigit() and len(telefono) <= 11:
75+
contactos[nombre] = int(telefono)
76+
print("Contacto actualizado.")
77+
else:
78+
print("Número de teléfono inválido.")
79+
else:
80+
print("Contacto no encontrado.")
81+
elif opcion == 4:
82+
nombre = input("Ingrese el nombre del contacto: ")
83+
if nombre in contactos:
84+
del contactos[nombre]
85+
print("Contacto eliminado.")
86+
else:
87+
print("Contacto no encontrado.")
88+
elif opcion == 5:
89+
print("Saliendo...")
90+
run = False
91+
else:
92+
print("Opción no válida.")
93+
except ValueError:
94+
print("Por favor, ingrese un número válido.")

0 commit comments

Comments
 (0)