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
rserradev authored Apr 30, 2024
2 parents 4946f45 + b9c31bf commit 21669c4
Show file tree
Hide file tree
Showing 4 changed files with 322 additions and 0 deletions.
87 changes: 87 additions & 0 deletions Roadmap/18 - CONJUNTOS/c#/SBS24.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Conjuntos
{
internal class Program
{
static void Main(string[] args)
{
/*
* EJERCICIO:
* Utilizando tu lenguaje crea un conjunto de datos y realiza las siguientes
* operaciones (debes utilizar una estructura que las soporte):*/
List<string> conjuntos = new List<string>();
conjuntos.Add("casa");
conjuntos.Add("coche");
conjuntos.Add("llaves");

List<string> conjuntos2 = new List<string>();
conjuntos2.Add("casa2");
conjuntos2.Add("coche");
conjuntos2.Add("llaves2");

List<string> conjuntos3 = new List<string>();
conjuntos3.Add("casa3");
conjuntos3.Add("coche3");
conjuntos3.Add("llaves3");

List<string> conjuntos4 = new List<string>();
conjuntos4.Add("casa4");
conjuntos4.Add("coche4");
conjuntos4.Add("llaves4");

/* - Añade un elemento al final.*/
conjuntos.Add("final");

/* - Añade un elemento al principio.*/
conjuntos.Insert(0, "principio");

/* - Añade varios elementos en bloque al final.*/
conjuntos.AddRange(conjuntos2);

/* - Añade varios elementos en bloque en una posición concreta.*/
conjuntos.InsertRange(3, conjuntos3);//pendiente de que lo inserte en una posición concreta

/* - Elimina un elemento en una posición concreta.*/
conjuntos.RemoveRange(1, 1);//borra 1 elemento (casa) que esta en la posición 1

/* - Actualiza el valor de un elemento en una posición concreta.*/
conjuntos[5] = "Posicion actualizada 5";
/* - Comprueba si un elemento está en un conjunto.*/
if (conjuntos.IndexOf("casa2") != -1)
{
Console.WriteLine("El elemento está en la posición " + (conjuntos.IndexOf("casa2") + 1));
}
else
{
Console.WriteLine("El elemento no está en la lista");
}

/* - Elimina todo el contenido del conjunto.*/
conjuntos4.RemoveRange(0, (conjuntos4.Count() - 1));

/*
/* DIFICULTAD EXTRA (opcional):
/* Muestra ejemplos de las siguientes operaciones con conjuntos:
/* - Unión.*/
conjuntos2 = conjuntos2.Concat(conjuntos4).ToList();

/* - Intersección.*/
IEnumerable<string> both = conjuntos.Intersect(conjuntos2);

/* - Diferencia.*/
var diferencias = conjuntos.Except(conjuntos2);
var diferencias2 = conjuntos2.Except(conjuntos);

/* - Diferencia simétrica.*/
var primer_conjunto = conjuntos.ToHashSet();
primer_conjunto.SymmetricExceptWith(conjuntos2);
var dif_simetrica = primer_conjunto.ToList();

}
}
}
85 changes: 85 additions & 0 deletions Roadmap/18 - CONJUNTOS/javascript/AChapeton.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
const letters = ['a', 'b', 'c', 'd']
console.log('Original', letters)
// Añade un elemento al final.
letters.push('e')
console.log('Añade un elemento al final', letters)

// Añade un elemento al principio.
letters.unshift('-')
console.log('Añade un elemento al principio', letters)

// Añade varios elementos en bloque al final.
const newLetters = ['x', 'y', 'z']
letters.push(...newLetters)
console.log('Añade varios elementos en bloque al final', letters)

// Añade varios elementos en bloque en una posición concreta.
const newLetters2 = ['f', 'g', 'h']
letters.splice(6, 0, ...newLetters2)
console.log('Añade varios elementos en bloque en una posición concreta', letters)

// Elimina un elemento en una posición concreta.
letters.splice(5, 1)
console.log('Elimina un elemento en una posición concreta', letters)

// Actualiza el valor de un elemento en una posición concreta.
letters[1] = '#'
console.log('Actualiza el valor de un elemento en una posición concreta', letters)

// Comprueba si un elemento está en un conjunto.
const isAinArray = letters.find(letter => letter === 'a' ? true : false)
console.log(' Comprueba si el elemento -a- está en el conjunto letters', isAinArray)
const isXinArray = letters.find(letter => letter === 'x' ? true : false)
console.log(' Comprueba si el elemento -x- está en el conjunto letters', isXinArray)

// Elimina todo el contenido del conjunto.
letters.length = 0
console.log('Elimina todo el contenido del conjunto', letters)


// DIFICULTAD EXTRA

// Union de conjuntos
const first = [1, 2, 3, 4]
const second = [3, 4, 5, 6]
const union = new Set()

first.forEach(number => union.add(number))
second.forEach(number => union.add(number))

console.log('Union', union)

// Interseccion
const interseccion = new Set()
first.forEach(n1 => {
second.forEach(n2 => {
if(n1 === n2){
interseccion.add(n1)
}
})
})

console.log('Interseccion', interseccion)

// Diferencia
const diferencia = new Set()
first.forEach(number => diferencia.add(number))
second.forEach(number => {
if (diferencia.has(number)){
diferencia.delete(number)
}
})
console.log('Diferencia', diferencia)


// Diferencia simetrica
const simetrica = new Set()
first.forEach(number => simetrica.add(number))
second.forEach(number => {
if(simetrica.has(number)){
simetrica.delete(number)
}else{
simetrica.add(number)
}
})
console.log('Diferencia simetrica', simetrica)
65 changes: 65 additions & 0 deletions Roadmap/18 - CONJUNTOS/python/AChapeton.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
letters = ['a', 'b', 'c', 'd']
print('Original', letters)

# Añade un elemento al final.
letters.append('e')
print('Añade un elemento al final', letters)

# Añade un elemento al principio.
letters.insert(0, '-')
print('Añade un elemento al principio', letters)

# Añade varios elementos en bloque al final.
newLetters = ['x', 'y', 'z']
letters.extend(newLetters)
print('Añade varios elementos en bloque al final', letters)

# Añade varios elementos en bloque en una posición concreta.
newLetters2 = ['f', 'g', 'h']
for letter in reversed(newLetters2):
letters.insert(6, letter)
print('Añade varios elementos en bloque en una posición concreta', letters)

# Elimina un elemento en una posición concreta.
letters.pop(5)
print('Elimina un elemento en una posición concreta', letters)

# Actualiza el valor de un elemento en una posición concreta.
letters[1] = '#'
print('Actualiza el valor de un elemento en una posición concreta', letters)

# Comprueba si un elemento está en un conjunto.
try:
print('Comprueba si el elemento -a- está en el conjunto letters (buscar posicion)', letters.index('a'))
except ValueError:
print('El elemento -a- no existe')

try:
print('Comprueba si el elemento -b- está en el conjunto letters (buscar posicion)', letters.index('b'))
except ValueError:
print('El elemento -a- no existe')

# Elimina todo el contenido del conjunto.
letters.clear()
print('Elimina todo el contenido del conjunto', letters)


# DIFICULTAD EXTRA\

# Union
first ={1, 2, 3, 4}
second = {3, 4, 5, 6}
union = first.union(second)
print('Union', union)

# Interseccion
interseccion = first.intersection(second)
print('Interseccion', interseccion)

# Diferencia
interseccion = first.difference(second)
print('Diferencia', interseccion)

# Diferencia simetrica
interseccion = first.symmetric_difference(second)
print('Diferencia simetrica', interseccion)
85 changes: 85 additions & 0 deletions Roadmap/18 - CONJUNTOS/typescript/AChapeton.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
const letters: Array<string> = ['a', 'b', 'c', 'd']
console.log('Original', letters)
// Añade un elemento al final.
letters.push('e')
console.log('Añade un elemento al final', letters)

// Añade un elemento al principio.
letters.unshift('-')
console.log('Añade un elemento al principio', letters)

// Añade varios elementos en bloque al final.
const newLetters: Array<string> = ['x', 'y', 'z']
letters.push(...newLetters)
console.log('Añade varios elementos en bloque al final', letters)

// Añade varios elementos en bloque en una posición concreta.
const newLetters2: Array<string> = ['f', 'g', 'h']
letters.splice(6, 0, ...newLetters2)
console.log('Añade varios elementos en bloque en una posición concreta', letters)

// Elimina un elemento en una posición concreta.
letters.splice(5, 1)
console.log('Elimina un elemento en una posición concreta', letters)

// Actualiza el valor de un elemento en una posición concreta.
letters[1] = '#'
console.log('Actualiza el valor de un elemento en una posición concreta', letters)

// Comprueba si un elemento está en un conjunto.
const isAinArray = letters.find(letter => letter === 'a' ? true : false)
console.log(' Comprueba si el elemento -a- está en el conjunto letters', isAinArray)
const isXinArray = letters.find(letter => letter === 'x' ? true : false)
console.log(' Comprueba si el elemento -x- está en el conjunto letters', isXinArray)

// Elimina todo el contenido del conjunto.
letters.length = 0
console.log('Elimina todo el contenido del conjunto', letters)


// DIFICULTAD EXTRA

// Union de conjuntos
const first: Array<number> = [1, 2, 3, 4]
const second: Array<number> = [3, 4, 5, 6]
const union: Set<number> = new Set()

first.forEach(number => union.add(number))
second.forEach(number => union.add(number))

console.log('Union', union)

// Interseccion
const interseccion: Set<number> = new Set()
first.forEach(n1 => {
second.forEach(n2 => {
if(n1 === n2){
interseccion.add(n1)
}
})
})

console.log('Interseccion', interseccion)

// Diferencia
const diferencia: Set<number> = new Set()
first.forEach(number => diferencia.add(number))
second.forEach(number => {
if (diferencia.has(number)){
diferencia.delete(number)
}
})
console.log('Diferencia', diferencia)


// Diferencia simetrica
const simetrica: Set<number> = new Set()
first.forEach(number => simetrica.add(number))
second.forEach(number => {
if(simetrica.has(number)){
simetrica.delete(number)
}else{
simetrica.add(number)
}
})
console.log('Diferencia simetrica', simetrica)

0 comments on commit 21669c4

Please sign in to comment.