Inviting the students for Data Science/AI Bootcamps

DPhi (Now called AI Planet) is a global Data Science/AI community based out of Belgium. Since its inception, they have been regularly conducting open-source community bootcamps, courses and challenges joined by over 30K+ learners from 150+ countries.

They invite the student community for the upcoming Data Science/AI Bootcamps Cohort. It allows students to pick the learning path of their choice, ranging from Basics of Python to NLP, and helps them to get started in the emerging fields of Data Science and AI.

There are seven different learning tracks from beginner to intermediate level. These include Python for Data Science, Pandas, NumPy, Data Visualization, NLP, Unsupervised learning, and Explainable AI.

Below are the practical details:


Team AI Planet
AI Planet on LinkedIn

Publicado en programacion | Deja un comentario

Recordatorio: Fecha y Lugar del Examen

La fecha y el lugar del examen de Enero de 2024 son:  

SÁBADO, 20 DE ENERO A LAS 9H00 EN EL AULA MAGNA DEL EDIFICIO A.

Las Notas de las Actividades saldrán la semana del 22 al 26 de Enero.

Suerte con éste y con el resto de exámenes,

Ricardo López.

Publicado en programacion | Deja un comentario

Raíces cuadradas de número complejo introducido por pantalla

Trabajo realizado por Javier Arnal

#include <stdio.h>
#include <math.h>

void calcularRaicesCuadradas(double real, double imaginario) {
    double modulo = sqrt(real * real + imaginario * imaginario);
    double angulo = atan2(imaginario, real);

    for (int i = 0; i < 2; ++i) {
        double raizModulo = sqrt(modulo);
        double raizAngulo = (angulo + 2 * M_PI * i) / 2.0;

        double parteReal = raizModulo * cos(raizAngulo);
        double parteImaginaria = raizModulo * sin(raizAngulo);

        printf("Raiz %d: %lf + %lfi\n", i + 1, parteReal, parteImaginaria);
    }
}

int main() {
    double parteReal, parteImaginaria;

    printf("Introduce la parte real del numero complejo: ");
    scanf("%lf", &parteReal);

    printf("Introduce la parte imaginaria del numero complejo: ");
    scanf("%lf", &parteImaginaria);

    calcularRaicesCuadradas(parteReal, parteImaginaria);

    return 0;
}

Publicado en programacion | Deja un comentario

Máquina de refrescos

Trabajo realizado por Javier Arnal

Este programa es una maquina de refrescos. El usuario introduce el número del producto que quiere y, si esta disponible, el programa saca por pantalla su precio. El usuario introduce el dinero en euros y la maquina devuelve el cambio.

//Maquina de refrescos
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() 
{
int n, pago=0;
float importe, imp=0;
float vec[11]={0,1.80, 1.80, 1.20, 1.00, 1.80, 1.80, 1.90, 1.90, 1.90, 1.50};
int num[11]={0,10,10,10,10,10,10,10,10,10,10};
cout<<"1- Coca cola"<<endl;
cout<<"2- Coca cola zero"<<endl;
cout<<"3- Agua con gas"<<endl;
cout<<"4- Agua mineral"<<endl;
cout<<"5- Fanta naranja"<<endl;
cout<<"6- Fanta limon"<<endl;
cout<<"7- Acuarius de naranja"<<endl;
cout<<"8- Acuarius de limon"<<endl;
cout<<"9- Nestea"<<endl;
cout<<"10- Zumo naranja"<<endl;

cin>>n;
if(num[n]>0)
	{cout<<"El producto esta disponible. El precio es "<<vec[n]<<"$"<<endl;
	cout<<"Introduzca monedas ";
	cin>>importe;
while (importe<vec[n])
	{cout<< "Faltan monedas "<<endl;
	cin>>imp;
	importe=importe+imp;
	}
	if(importe>vec[n])
	{cout<<"Su cambio es "<<(importe-vec[n]);}
	if(importe==vec[n])
	{cout<<"Recoja su producto"<<endl;};
	
	 }

else 
	{cout<<"El producto no esta disponible"<<endl;
	cin>>n;}

}

Publicado en programacion | Deja un comentario

Ahorcado

Trabajo realizado por Javier Arnal

//Ahorcado
#include <iostream>
#include <string>
using namespace std;
int main()
{
string frase= "arbol verde";
string linea= "----- -----";
char letra;
int i;
int vida=5;
bool x=false; 
string sol;
char opcion;

cout<<"Vidas=5"<<endl;;
cout<<linea<<endl;



	
//pregunta una vez	

cout<<"¿Quieres resolverlo?"<<endl;
cout<<"s=si"<<endl;
cout<<"n=no"<<endl;
cin>>opcion;
cin.ignore();	


if(vida==0)
{cout<<"Has perdido"<<endl;
cout<<"La frase era "<<frase<<endl;}


	
do
{
	if (opcion=='n')
	{
	
	

	cout<<"Introduce letra"<<endl;
	cin>>letra;
	cin.ignore();
	
	
//comprueba letra
	for (i=0;i<11;i++)
	
		{if (frase[i]==letra)
			{linea[i]=letra;
			x=true;}}


	if (x==false)
	{vida=vida-1;
	cout<<"La frase no contiene "<<letra<<endl;
	cout<<"Vidas: "<<vida<<endl;}	


	cout<<linea<<endl;
	cout<<endl;


	x=false;
	
	if(linea==frase)
	{vida==0;
	opcion=='n';
	cout<<"Has ganado. Completaste la frase"<<endl;
	break;}
else
	{
	cout<<"¿Quieres resolverlo?"<<endl;		cout<<"s=si"<<endl;
	cout<<"n=no"<<endl;
	cin>>opcion;
	cin.ignore();
	cout<<linea<<endl;}
	

}


if (opcion=='s')
	{cout<<"Resuelve: ";
	getline(cin,sol);
	
	if (sol==frase)
		{cout<<"Enhorabuena has ganado"<<endl;
		cout<<"La frase era "<<frase<<endl;
		cout<<"Has acabado con "<<vida<<" vidas"<<endl;
		}
	else{cout<<"Perdiste"<<endl;
		cout<<"La frase era "<<frase<<endl;
		}}


	 

	

}
while(vida>0 && opcion=='n');



Publicado en programacion | Deja un comentario

Descomposición de un número en factores primos y de la suma de sus divisores

Trabajo realizado por Javier Arnal.

Este programa descompone un numero en factores primos, la suma de estos, y realiza el mismo proceso anterior con el resultado de la suma de los divisores.

#include <iostream>
using namespace std;
// Función para verificar si un número es primo
bool esPrimo(int numero) {
    if (numero <= 1) {
        return false;
    }
    for (int i = 2; i * i <= numero; ++i) {
        if (numero % i == 0) {
            return false;
        }
    }
    return true;
}
// Función para descomponer un número en factores primos
void descomponerEnPrimos(int numero) {
    cout << "La descomposicion en factores primos de " << numero << " es: ";
    for (int i = 2; i <= numero; ++i) {
        while (numero % i == 0) {
            cout << i << " ";
            numero = numero / i;
        }
    }
    cout << endl;
}
// Función para calcular la suma de los divisores de un número
int sumaDivisores(int numero) {
    int suma = 1; // 1 siempre es divisor

    for (int i = 2; i <= numero / 2; ++i) {
        if (numero % i == 0) {
            suma += i;
        }
    }
    return suma;
}
int main() {
    int num;
    cout << "Introduce un numero: ";
    cin >> num;
    cout << "Descomposicion en factores primos de " << num << ":" << endl<<endl;
    descomponerEnPrimos(num);
    int suma = sumaDivisores(num);
    cout << "La suma de los divisores de " << num << " es: " << suma << endl<<endl;
    cout << "Descomposicion en factores primos de la suma de los divisores (" << suma << "):" << endl<<endl;
    descomponerEnPrimos(suma);
    return 0;
}

Publicado en programacion | Deja un comentario

SUMA NÚMEROS PRIMOS

El código a continuación nos dice la suma de todos los números primos desde el 1 hasta un máximo que elijamos nosotros.

#include <stdio.h>
#include <stdbool.h>

// Función para verificar si un número es primo
bool esPrimo(int numero) {
if (numero <= 1) {
return false;
}

for (int i = 2; i * i <= numero; ++i) {
if (numero % i == 0) {
return false;
}
}

return true;
}

// Función para calcular la suma de todos los números primos hasta un límite
long long sumaPrimos(int limite) {
long long suma = 0;

for (int i = 2; i <= limite; ++i) {
if (esPrimo(i)) {
suma += i;
}
}

return suma;
}

int main() {
int limite;

// Solicitar al usuario que introduzca el límite
printf("Ingrese el límite superior: ");
scanf("%d", &limite);

// Calcular y mostrar la suma de los números primos
long long resultado = sumaPrimos(limite);
printf("La suma de los números primos hasta %d es: %lld\n", limite, resultado);

return 0;
}

Trabajo realizado por Daniel Estrada.

Publicado en programacion | Deja un comentario

Cuadrado de lado N con patrón de asteriscos en su interior

Trabajo realizado por Adrián Fleta Borau.

El siguiente programa imprime por pantalla un cuadrado de lado N, con un N positivo dado por el usuario (se utiliza un bucle do-while para ello), con un borde formado por asteriscos y con un patrón diagonal en su interior, como se muestra en la imagen a continuación.

#include <iostream>

using namespace std;

int main() {
    int N;

    // Solicitamos al usuario el tamaño del cuadrado, utilizamos un do-while
    do {
        cout << "Ingrese el lado del cuadrado (un numero positivo): ";
        cin >> N;

        if (N <= 0) {
            cout << "Por favor, ingrese un numero positivo.\n";
        }
    } while (N <= 0);

    // Imprimimos el cuadrado por pantalla
    for (int i = 1; i <= N; ++i) {
        for (int j = 1; j <= N; ++j) {
            if (i == 1 || i == N || j == 1 || j == N || (i % 2 == 0 && j % 2 == 0) || (i % 2 != 0 && j % 2 != 0)) {
                cout << "* ";
            } else {
                cout << "  ";
            }
        }
        cout << endl;
    }

    return 0;
}

Publicado en programacion | Etiquetado | Deja un comentario

Calcular los N primeros números primos, calcular su media y el porcentaje de ellos terminados en 1, 3, 7 y 9

Trabajo realizado por Adrián Fleta Borau.

El siguiente programa distribuye los N primeros números primos y los distribuye en una matriz de 6 columnas. Además, el programa calcula su media y el porcentaje de ellos acabados en 1, 3, 7 y 9.

Cabe resaltar que la suma de estos porcentajes no será del 100% ya que el 2 y el 5 son números primos y no se tienen en cuenta en ninguno de estos casos.

#include <iostream>
#include <vector>

using namespace std;

// Función para verificar si un número es primo
bool esPrimo(int num) {
    if (num <= 1) {
        return false;
    }
    for (int i = 2; i * i <= num; ++i) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}

int main() {
    int N;
    cout << "Ingrese la cantidad de numeros primos a calcular: ";
    cin >> N;

    vector<int> numerosPrimos;
    int numero = 2;
    while (numerosPrimos.size() < N) {
        if (esPrimo(numero)) {
            numerosPrimos.push_back(numero);
        }
        numero++;
    }

    // Distribuir los números primos en una matriz con 6 columnas
    int filas = (N + 5) / 6; // Redondear hacia arriba
    vector<vector<int>> matriz(filas, vector<int>(6, 0));
    int indice = 0;
    for (int i = 0; i < filas; ++i) {
        for (int j = 0; j < 6; ++j) {
            if (indice < N) {
                matriz[i][j] = numerosPrimos[indice];
                indice++;
            }
        }
    }

    // Mostrar la matriz
    cout << "\nMatriz con los " << N << " primeros numeros primos:\n";
    for (int i = 0; i < filas; ++i) {
        for (int j = 0; j < 6; ++j) {
            if (matriz[i][j] != 0) {
                cout << matriz[i][j] << "\t";
            } else {
                cout << " \t"; // Espacio para valores faltantes en la matriz
            }
        }
        cout << endl;
    }

    // Calcular la media de los números primos
    double suma = 0.0;
    for (int primo : numerosPrimos) {
        suma += primo;
    }
    double media = suma / N;

    // Calcular el porcentaje de números primos terminados en 1, 3, 7 y 9
    int terminadosEn1 = 0, terminadosEn3 = 0, terminadosEn7 = 0, terminadosEn9 = 0;
    for (int primo : numerosPrimos) {
        int ultimoDigito = primo % 10;
        if (ultimoDigito == 1) {
            terminadosEn1++;
        } else if (ultimoDigito == 3) {
            terminadosEn3++;
        } else if (ultimoDigito == 7) {
            terminadosEn7++;
        } else if (ultimoDigito == 9) {
            terminadosEn9++;
        }
    }

    // Calcular porcentajes
    double porcentaje1 = (static_cast<double>(terminadosEn1) / N) * 100;
    double porcentaje3 = (static_cast<double>(terminadosEn3) / N) * 100;
    double porcentaje7 = (static_cast<double>(terminadosEn7) / N) * 100;
    double porcentaje9 = (static_cast<double>(terminadosEn9) / N) * 100;

    // Mostrar resultados
    cout << "\nLa media de los " << N << " numeros primos es: " << media << endl;
    cout << "Porcentaje de numeros primos terminados en:\n";
    cout << "1: " << porcentaje1 << "%\n";
    cout << "3: " << porcentaje3 << "%\n";
    cout << "7: " << porcentaje7 << "%\n";
    cout << "9: " << porcentaje9 << "%\n";

    return 0;
}

Publicado en programacion | Etiquetado | Deja un comentario

TRES NÚMEROS SON COPRIMOS

Este programa nos dice a partir del algoritmo de Euclides si 3 números son coprimos entre sí; es decir si el mcd de los 3 es 1.

#include <stdio.h>

// Función para calcular el MCD utilizando el algoritmo de Euclides
int calcularMCD(int a, int b) {
while (b != 0) {
int N = b;
b = a % b;
a = N;
}
return a;
}

// Función para verificar si tres números son coprimos
int sonCoprimos(int num1, int num2, int num3) {
int mcd1 = calcularMCD(num1, num2);
int mcd2 = calcularMCD(mcd1, num3);

return mcd2 == 1; // Si el MCD es 1, los números son coprimos
}

int main() {
int num1, num2, num3;

// Solicitar al usuario que introduzca los tres números
printf("Ingrese el primer número: ");
scanf("%d", &num1);

printf("Ingrese el segundo número: ");
scanf("%d", &num2);

printf("Ingrese el tercer número: ");
scanf("%d", &num3);

// Verificar si los números son coprimos y mostrar el resultado
if (sonCoprimos(num1, num2, num3)) {
printf("Los números %d, %d y %d son coprimos.\n", num1, num2, num3);
} else {
printf("Los números %d, %d y %d no son coprimos.\n", num1, num2, num3);
}

return 0;
}

Trabajo realizado por Daniel Estrada.

Publicado en programacion | Deja un comentario

Generar tres matrices aleatorias y calcular su producto matricial

Trabajo realizado por Adrián Fleta Borau.

El siguiente programa genera tres matrices de números naturales aleatorios del 1 al 10 y calcula su producto matricial, imprimiéndolo por pantalla.

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

const int FILAS = 5;
const int COLUMNAS = 5;

// Función para generar números enteros aleatorios entre 1 y 10
int generarNumeroAleatorio() {
    return rand() % 10 + 1; // Genera un número entre 1 y 10
}

// Función para imprimir una matriz
void imprimirMatriz(int matriz[][COLUMNAS], const char* nombre) {
    cout << nombre << ":\n";
    for (int i = 0; i < FILAS; ++i) {
        for (int j = 0; j < COLUMNAS; ++j) {
            cout << matriz[i][j] << "\t";
        }
        cout << endl;
    }
    cout << endl;
}

// Función para realizar el producto de tres matrices
void productoMatricial(int matriz1[][COLUMNAS], int matriz2[][COLUMNAS], int matriz3[][COLUMNAS], int resultado[][COLUMNAS]) {
    int temp[FILAS][COLUMNAS];
    for (int i = 0; i < FILAS; ++i) {
        for (int j = 0; j < COLUMNAS; ++j) {
            temp[i][j] = 0;
            for (int k = 0; k < COLUMNAS; ++k) {
                temp[i][j] += matriz1[i][k] * matriz2[k][j];
            }
        }
    }

    for (int i = 0; i < FILAS; ++i) {
        for (int j = 0; j < COLUMNAS; ++j) {
            resultado[i][j] = 0;
            for (int k = 0; k < COLUMNAS; ++k) {
                resultado[i][j] += temp[i][k] * matriz3[k][j];
            }
        }
    }
}

int main() {
    int matrizA[FILAS][COLUMNAS];
    int matrizB[FILAS][COLUMNAS];
    int matrizC[FILAS][COLUMNAS];
    int resultadoABC[FILAS][COLUMNAS];

    // Inicializar la semilla para generar números aleatorios
    srand(time(0));

    // Generar las matrices A, B y C con números aleatorios
    for (int i = 0; i < FILAS; ++i) {
        for (int j = 0; j < COLUMNAS; ++j) {
            matrizA[i][j] = generarNumeroAleatorio();
            matrizB[i][j] = generarNumeroAleatorio();
            matrizC[i][j] = generarNumeroAleatorio();
        }
    }

    // Mostrar las matrices generadas
    imprimirMatriz(matrizA, "La matriz A generada ha sido");
    imprimirMatriz(matrizB, "La matriz B generada ha sido");
    imprimirMatriz(matrizC, "La matriz C generada ha sido");

    // Calcular el producto matricial AxBxC
    productoMatricial(matrizA, matrizB, matrizC, resultadoABC);

    // Mostrar el resultado del producto matricial AxBxC
    imprimirMatriz(resultadoABC, "El producto matricial de AxBxC es");

    return 0;
}

Publicado en programacion | Etiquetado | Deja un comentario