Skip to content

Commit

Permalink
Merge branch 'mouredev:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
jcrobles99 authored Jul 17, 2024
2 parents 3eafc06 + 929ba38 commit f06fcf7
Show file tree
Hide file tree
Showing 19 changed files with 2,091 additions and 426 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
public class jcrodmir{

/*
Programm Language/ Programmiersprache: Java
Official Java Website / offizielle Java WebSite: https://docs.oracle.com/javase/8/docs/
Other Java Website/ andere Java WebSite : https://www.javatpoint.com/java-tutorial
*/

// Diferents types of comment one line/verschiedene Typen von Kommentaren

/* multiples lines/ mehrere Zeilen
*/

/**
* Documentation
*
* */

//Create a variable and constant/Variable und Konstante erstellen
/*
The variables at Java have the type of the variable the name and the value, if you want a constant, must add
a the keyword final.
Die Variablen bei Java haben den Typ der Variablen, den Namen und den Wert, wenn Sie eine Konstante wollen, müssen Sie
ein das Schlüsselwort final.
*/

int variableNumber = 8;
final int finalNumber= 9;

//Primitives Types/ primitive Datentypen
/*
Byte/Short/Int/Long/Float/Double/Boolean/Char
*/
byte ReallySmallNumber=10;
short smallNumber=10000;
int number= 100000;
long ReallyBigNumber=53856421646L;
float decimalNumber= 2.5f;
double decimalBigNumber= 52556.684684446;
boolean trueOrFalse= true;
char character= 'A';

public static void main(String[] args) {
System.out.print("Hello World");
System.out.print("Hallo Welt");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# Operadores

#en GDscript todo script tiene que estar asociado a una escena o nodo para poder ejecutarlo

#Operadores Aritméticos
extends Node
func _ready(): #la función _ready hace que la función se ejecute al momento de iniciar la ecena y solo puede ser usada una vez por script
#suma
print(10 + 3)
#resta
print(10 - 3)
#multiplicación
print(10 * 3)
#división
print(10 / 3.0) #si no se especifica que uno de los dos numeros es flotante te dará siempre como resultado un entero
print(10 / float(3)) #se puede hacer de estas dos formas
#modulo o resto
print(10 % 3)
#potencia
print(10 ** 3)

#Operadores de comparación
extends Node
func _ready():
var x = 2
print ("x = " + str(x)) #para poder hacer print a una variable de tipo texto y una de tipo booleano a la vez
#Igualdad # tienes que convertir esta a texto
print("x == 10 = " + str(x == 10))
#Desigualdad
print("x != 10 = " + str(x != 10))
#Mayor que
print("x > 10 = " + str(x > 10))
#Menor que
print("x < 10 = " + str(x < 10))
#Mayor o igual que
print("x >= 10 = " + str(x >= 10))
#Menor o igual que
print("x <= 10 = " + str(x <= 10))

#Operadores lógicos
extends Node
func _ready():
# "and" o "&&"
print("(2 > 3 and 4 + 3 = 7)= " + str(2 > 3 and (4 + 3 == 7)))
# "or" o "||"
print("(2 > 3 or 4 + 3 = 7)= " + str(2 > 3 or (4 + 3 == 7)))
# "not" o "!"
print("not 3 > 2 = " + str(not 3 > 2))

#Operadores de asignación
#Las asignaciones en GDScript no pueden estar dentro de expreciones
extends Node
func _ready():
#Asignación
var y = 7
#Suma y asignación
y += 2
print(y)
#Resta y asignación
y -= 2
print(y)
#Multiplicación y asignación
y *= 2
print(y)
#División y asignación
y /= 2
print(y)
#Resto y asignación
y %= 2
print(y)
#Exponente y asignación
y **= 2
print(y)

#Operadores de pertenencia
extends Node
func _ready():
# in
print("u in pablo = " + str("u" in "pablo"))
print("a in pablo = " + str("a" in "pablo"))
# not in
print("u not in pablo = " + str("u" not in "pablo"))
print("a not in pablo = " + str("a" not in "pablo"))

#Operadores de bit
extends Node
func _ready():
var numero_uno = 10 #1010
var numero_dos = 5 #0101
# "&" o "AND"
print("10 & 5 = " + str(numero_uno & numero_dos)) #0 = 0000
# "^" o "XOR"
print("10 ^ 5 = " + str(numero_uno ^ numero_dos)) #15 = 1111
# "|" o "OR"
print("10 | 5 = " + str(numero_uno | numero_dos)) #15 = 1111
# "~" o "NOT"
print("~10 = " + str(~numero_uno)) #-11
# Desplazamiento a la derecha o ">>"
print("10 >> 3 = " + str(numero_uno >> 3)) #1 = 0000001
# Desplazamiento a la izquierda o "<<"
print("10 << 3 = " + str(numero_uno << 3)) #80 = 1010000

#Estructuras de control

#Condicionales
extends Node
var edad = 21
func _ready():
#Condicional "si" o "if"
if (edad < 18):
print ("eres menor de edad")
#Condicional "sino, si" o "elif"
elif (edad > 29):
print("eres un adulto")
#Condicional "sino" o "else"
else: print("eres un joven adulto")

#Iterativas
extends Node
func _ready():
for i in 7:
print(i)
for i in range(7):
print(i)
#while
var i = 0
while (i< 12):
print(i)
i += 2

#Excepciones
#GDScript no maneja execpriones y la explicaciñon sacada de la pagina de GDScript es la siguiente:
#"Creemos que los juegos no deben fallar no importa la situación. Si una situación inesperada sucede,
#Godot mostrara un error (el cual puede incluso llevarte al script),
#pero seguidamente intentara recuperarse lo mejor posible y continuar en la medida de lo posible."


#Ejercicio extra
extends Node
func _ready():
for numero in range(10, 56, 2): #en el rango entre 10 y 56 avanza cada 2 numeros
if numero != 16 and numero % 3 != 0:
print(numero)
60 changes: 60 additions & 0 deletions Roadmap/02 - FUNCIONES Y ALCANCE/python/AbelPerezCollado.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Func sin parametros ni retorno
def sin_param_retorno():
print('Funcion no devuelve nada ni tiene parametros')

# Func con varios parametros con retorno
def suma(num1:int , num2:int):
return num1 + num2

# Funciones dentro de funciones
def fun_dentro(param1:int,param2:int):
def suma(n1,n2):
return n1 + n2
return suma(param1,param2)

# Funcion con parametros por defecto
def fun_param_defecto(nombre = 'Abel', apellido = 'Perez'):
return f'Bienvenido, {nombre} {apellido}'

# Ejemplo de funciones ya creadas en el lenguaje
nombre ='Abel'
print(f'El numero de letras de {nombre} es de {len(nombre)}')


# Funcion Lambda
square = lambda num : num * num
print(square(3))

# Funcion recursiva

# función recursiva
def factorial(numero):
if numero == 0 or numero == 1:
return 1
else:
return numero * factorial(numero - 1)

print(factorial(41))

# Concepto de variable Local y Global
var_global = 100

def devuelve_numero(num : int):
var_local = num
return var_local


# Dificultad extra

def funcion_dificultad_extra(cad1 : str, cad2:str):
cont = 0
for num in range(1,101):
if num % 3 == 0 and num % 5 == 0:
print(f'{cad1}{cad2}')
elif num % 3 == 0:
print(cad1)
elif num % 5 == 0:
print(cad2)
else:
cont += 1
return cont
135 changes: 135 additions & 0 deletions Roadmap/03 - ESTRUCTURAS DE DATOS/javascript/VolumiDev.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
/**
* Tipos de estructuras de datos:
* ➡️ Objetos
* ➡️ Arreglos (array)
* ➡️ Mapas (map)
* ➡️ Conjuntos (set)
*/

// Objetos, podemos almacenar en los atributos distinto tipos de datos primitivos
var persona1 = {
nombre: 'Diego',
edad: 34,
grado: 'DAM'
}

// Podemos acceder a cada uno de los atributos del objeto de la siguiente manera
console.log('Atributo nombre de persona1', persona1.nombre)
console.log('Atributo edad de persona1', persona1.edad)
console.log('Atributo grado de persona 1', persona1.grado)
console.log('Aqui vemos el objeto completo', persona1)

// Arrays, coleccion de datos, pueden ser de destintos tipos
var array1 = ['hola', 23, true, 'datos variables']
console.log('Mostramos el array completo', array1)
console.log('Accedemos a la segunda posicion del array desde el indice.', array1[1])

// Mapas
var mapa = new Map()
// ➕ agregacion de elementos al mapa
mapa.set('edad', 35)
mapa.set('nombre', 'Diego')
mapa.set(25, 'piso')
mapa.set(true, 'estudios')
console.log(mapa)

// ➡️ accedemos al valor por su key.
console.log(mapa.get('edad'))
console.log(mapa.get('nombre'))
console.log(mapa.get(25))
console.log(mapa.get(true))
// ➡️ comprobar si una clave existe
console.log('Comprobamos que existe la clave "edad"', mapa.has('edad'))
// ➖ Elimiar un elemento por su key
console.log(mapa)
mapa.delete('nombre')
console.log(mapa)

// Conjuntos set
var conjunto = new Set(['Diego', 'Laura', 'Eren', 'Laia', 'Diego'])
console.log('Vemos los elementos del conjunto, Diego lo metimos dos veces pero como no es posible que haya elementos repetido no lo incluye', conjunto)
// Añadimos un elemento al conjunto
conjunto.add(35)
console.log(conjunto)
console.log('Comprobamos si exite el valor "Diego" en el conjunto', conjunto.has('Diego'))
console.log(conjunto)
//Eliminamos un elemento al conjunto
conjunto.delete('Laura')
console.log(conjunto)

// Dificultad extra AGENDA


// ** EJECUCION **
//IMPLEMENTAMOS EL ELEMENTO CON EL QUE VAMOS A HACER LA LECTURA DEL TECLADO
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})

// DEFINIMOS EL MAP QUE ALMACENARA LA INFO
const agenda = new Map();
let telregEx = /\d{9}/

function inicio() {
rl.question('¿Que operacion desea realizar? insertar, buscar, actualizar, eliminar, salir:\n', (resp) => {
resp.toLowerCase()
if (resp === 'insertar'){
rl.question('Introduce el nombre que deseas almacenar:\n', (nom) => {
rl.question('Introduce el numero de telefono:\n', (tel) => {
if(telregEx.test(tel)){
agenda.set(nom, tel)
console.log('Contacto insertado')
inicio()
}else {
console.log('El formato del telefono no es correcto')
inicio()
}
})
})
} else if (resp === 'buscar'){
rl.question('Introduce el nombre que deseas buscar:\n', (nom) => {
if(agenda.has(nom)){
console.log(`Nombre: ${nom} Telefono: ${agenda.get(nom)}`)
inicio()
}else {
console.log('El nombre que has introducido no esta almacenado')
inicio()
}
})
} else if(resp === 'salir'){
console.log('Saliendo....')
process.exit(0)
}else if(resp === 'actualizar'){
rl.question('Introduce el nombre que deseas actualizar\n', (nom) => {
if(agenda.has(nom)){
rl.question('Actualiza el numero de telefono\n', (tel) => {
if(telregEx.test(tel)){
agenda.set(nom, tel)
console.log('Contacto actualizado')
inicio()
}else {
console.log('El formato del telefono no es correcto')
inicio()
}
})
}
})
}else if(resp === 'eliminar'){
rl.question('Introduce el nombre que deseas borrar:\n', (nom) => {
if(agenda.has(nom)){
agenda.delete(nom)
console.log('Contacto borrado')
inicio()
}else{
console.log('El nombre introducido no existe en el registro')
inicio()
}
})
}
})
}

console.log('**** AGENDA ****')
inicio()
Loading

0 comments on commit f06fcf7

Please sign in to comment.