CursosEmpresasBlogLiveConfPrecios

Creación y uso de funciones en lenguaje C

Clase 3 de 12 • Curso de Funciones en C

Clase anteriorSiguiente clase

Contenido del curso

Introducción a las funciones en C
  • 1
    Funciones en C: Declaración y Uso Práctico

    Funciones en C: Declaración y Uso Práctico

    02:14
  • 2
    Funciones en C: Creación y Uso para Potencias de Enteros

    Funciones en C: Creación y Uso para Potencias de Enteros

    05:46
  • 3
    Creación y uso de funciones en lenguaje C

    Creación y uso de funciones en lenguaje C

    10:56
  • 4
    Tipos de Funciones en C: Argumentos y Valores de Retorno

    Tipos de Funciones en C: Argumentos y Valores de Retorno

    10:21
Manejo de funciones en C
  • 5
    Funciones en C: Uso de void y manejo de return types

    Funciones en C: Uso de void y manejo de return types

    09:04
  • 6
    Paso de Argumentos por Valor en C: Conceptos y Ejemplos Prácticos

    Paso de Argumentos por Valor en C: Conceptos y Ejemplos Prácticos

    12:49
Bibliotecas estándar de funciones
  • 7
    Bibliotecas estándar del lenguaje C y sus funciones principales

    Bibliotecas estándar del lenguaje C y sus funciones principales

    09:31
  • 8
    Funciones matemáticas básicas en C con la biblioteca mat.h

    Funciones matemáticas básicas en C con la biblioteca mat.h

    06:43
  • 9
    Manejo de Strings en C: Funciones y Operaciones Básicas

    Manejo de Strings en C: Funciones y Operaciones Básicas

    11:53
  • 10
    Manejo de tiempo en C con la biblioteca time.h

    Manejo de tiempo en C con la biblioteca time.h

    11:39
  • 11
    Conversión de Decimal a Binario en C usando Ciclo For y Arrays

    Conversión de Decimal a Binario en C usando Ciclo For y Arrays

    13:58
Cierre
  • 12
    Funciones Avanzadas en C: Creación y Uso Práctico

    Funciones Avanzadas en C: Creación y Uso Práctico

    01:35
    Jesús Ignacio García Fernández

    Jesús Ignacio García Fernández

    student•
    hace 5 años

    Ejemplo del código donde escribo 4 funciones:

    1. función putchar que escribe una letra, enviada por argumento
    2. función putstr que escribe un array de letras, enviado por argumento
    3. función power que calcula la potencia de un número, enviando un argumento base y un argumento exponente.
    4. función main donde se ejecuta el programa principal.

    Notas:

    • no utilicé printf, de la libreria stdio.h
    • no utilicé bucle for sino bucle while
    • separo las declaraciones de las inicializaciones
    #include <unistd.h> void putchar(char a) { write(1, &a, 1); } void putstr(char *a) { int i; i = 0; while(a[i] != '\0') { putchar(a[i]); i++; } } int power (int base, int n) { int i; int resultado; i = 0; resultado = 1; while (i++ < n) { resultado *= base; } return (resultado); } int main (void) { int i; i = 0; while(i < 4) { putstr("i = "); putchar('0' + i); putstr(" resultado de la potencia = "); putchar('0' + power(2,i)); putchar('\n'); i++; } return (0); }

    resultado

    i = 0 resultado de la potencia = 1 i = 1 resultado de la potencia = 2 i = 2 resultado de la potencia = 4 i = 3 resultado de la potencia = 8
      Juan Pablo Perez

      Juan Pablo Perez

      student•
      hace 5 años

      Bonito ejemplo.

      Irving Juárez

      Irving Juárez

      student•
      hace 5 años

      Esta bien que utilices el while en vez del for, digo, para practicar, pero como sabemos cuantos van a ser las veces que vamos a iterar el bucle, no tiene mucho sentido usarlo

    Víctor Hugo Morales Martínez

    Víctor Hugo Morales Martínez

    student•
    hace 5 años

    El código está bien, el único problema es que es a la hora de llamar la función el profesor volteo los parámetros cambiando de lugar el exponente y la base.

    Debería ser así:

    // i = base, exp = exponente printf("n = %d, El resultado de la potencia a la %i es = %d\n",i,exp,power(i,exp));

    Suerte <3

      Franco Pignanelli

      Franco Pignanelli

      student•
      hace 5 años

      Claro, y si además nombraba a la variable N como exponente sería todo mas claro y tendrían una mejor clase

    Brandon Argel Verdeja Domínguez

    Brandon Argel Verdeja Domínguez

    student•
    hace 5 años

    Con el código que está en los archivos y enlaces no da el resultado que debería, está un 0 en vez de un 1, les paso el código con la función funcionando correctamente y unos pequeños cambios😄

    #include <stdio.h> int power(int base, int n); int main() { int i, n = 2; for (i = 0; i < 10; i++) { printf("%d ^ %d = %d\n",n , i, power(n,i)); } return 0; } int power(int base, int n) { int i, p; p = 1; for (i = 1; i <= n; i++) { p = p * base; } return p; }
      Luis Alejandro Vera Hernandez

      Luis Alejandro Vera Hernandez

      student•
      hace 5 años

      Gracias!

      bruno guerra solano

      bruno guerra solano

      student•
      hace 4 años

      si ya se me hacia raro, tanto a si que me hizo reconsiderar mis bases en matemáticas

    Cristian Blandón

    Cristian Blandón

    student•
    hace 5 años

    ¡Hola! Les comparto una bella implementación recursiva :) Aquí el Repl.

    #include <stdio.h> int numberPower(unsigned int base, unsigned int exponente){ if(exponente == 0) return 1; if(exponente == 1) return base; return base * numberPower(base, exponente - 1); } int main(void) { unsigned int base; unsigned int exponente; int resultado; printf("Ingresa la base:\n"); scanf("%u", &base); printf("Ingresa el exponente:\n"); scanf("%u", &exponente); resultado = numberPower(base, exponente); printf("\nEl resultado es: %d", resultado); return 0; }
      Javi Felices

      Javi Felices

      student•
      hace 4 años

      Muy práctico y muy bien llevado el ejemplo, gracias :)

    Adrián de los Reyes

    Adrián de los Reyes

    student•
    hace 4 años

    No me parecio un buen ejemplo la verdad, se pierde el hilo de lo que se quiere explicar

    Raúl Esteban Santacruz Gómez

    Raúl Esteban Santacruz Gómez

    student•
    hace 4 años

    me he esforzado bastante para lograr entender al instructor.

      Sebastian Garcia Ospina

      Sebastian Garcia Ospina

      student•
      hace 3 años

      Es que siento que no se da a entender mucho, deberia utilizar programas que a uno le ayuden a que sea mas sencillo, power point, cualquier cosa

    Matias Arce

    Matias Arce

    student•
    hace 3 años

    Cómo usar las funciones

    Primero que nada debemos mencionar que como buena practica declaramos las funciones arriba del main y abajo de este las declaramos para darle más orden. Es decir, arriba solo la nombramos con sus parametros y abajo con su codigo completo.

    Para llamar una función escribimos su nombre, luego parentesis y los parametros a enviar en caso que los tenga.

    Ejemplo de uso:

    #include <stdio.h> int power(int base, int n); int main() { int i; for (i = 0; i < 10; i++) { printf("n = %d El resultado de la potencia = %d\n",i, power(2,i) ); } return 0; } int power(int base, int n) { int i, p; p = 1; for (i = 1; i <= n; i++) { p = p * base; } return p; }
      Iván Roberto Rivas Celeita

      Iván Roberto Rivas Celeita

      student•
      hace 2 años

      en python o javascript primero se declaran (construyen) y luego se invocan o ejecutan

    Leandro Tenjo

    Leandro Tenjo

    student•
    hace 5 años

    ¿Por qué no declarar e inicializar la función en un solo lugar?

      Anthony Smith Quispe De la cruz

      Anthony Smith Quispe De la cruz

      student•
      hace 5 años

      Lo que hace el profesor es una convención de C, pero también puedes declararlas e inicializarlas por supuesto. Hay que decir que en C cuando estas trabajando con varios módulos de códigos tendrás que generar dos archivos:

      • Un fichero de cabecera(header) de extensión .h
      • Un fichero de implementación de extensión .c

      En los ficheros de cabecera lo que harás será declarar los prototipos de la función y en los ficheros de implementación se escribe los cuerpos de nuestras funciones.

      Leandro Tenjo

      Leandro Tenjo

      student•
      hace 5 años

      Excelente dato. Gracias. Si había probado que si servia, pero no sabia si era una mala practica o algo así.

    José Manuel Sánchez Lazo

    José Manuel Sánchez Lazo

    student•
    hace 5 años

    También es valido poner solo el tipo de dato en los parámetros dónde se declara la función:

    int potencyOfNumber(int, int); //Se declara la función
      Pol Valle

      Pol Valle

      student•
      hace 4 años

      Y como sabras luego cual es la variable que tendras que usar?

    Santiago Tellez Hernandez

    Santiago Tellez Hernandez

    student•
    hace 3 años
    • Las funciones se deben declarar en la parte superior junto con las variables, ya que sirve para que el compilador sepa que esa función existe y si se usa mas adelante en el código sepa que es.
    • Siempre que se escribe código se debe decir que variables son las que se van a retornar, sino va a tomar el primer dato que se encuentre.
    Camila Balbuena

    Camila Balbuena

    student•
    hace 3 años

    No sé para qué pago esto, entiendo mejor en youtube

    Leonardo Véliz

    Leonardo Véliz

    student•
    hace 4 años

    Buena explicación de cómo funcionan las potencias pero se te olvidó que TODO número elevado a n potencia SIEMPRE comienza elevándose por el exponente CERO (0), tal cual como aparece en tu código, en la primera iteración el exponente cero (2⁰) es MENOR (i =1 > n = 0) que la condición del for, por lo tanto en esta primera vuelta no se cumple la condición y da 1 porque la variable está inicializada en 1 al inicio de la función. Podrá ser un dato poco interesante porque en la práctica nunca elevamos el exponente a la cero pero tuve que ver la explicación dos veces para entender cómo funciona ya que hasta ahora no había entendido porque todo número elevado a la cero siempre daba uno y el código que escribiste en la función de la potencia lo explica perfectamente bien.

    Irving Juárez

    Irving Juárez

    student•
    hace 5 años

    Les dejo mi ejemplo, yo lo hice un poco mas didáctico

    #include <stdio.h> int potencia(int base, int potencia){ unsigned int resultado = base; for(int i = 1; i < potencia; i++){ resultado *= base; } return resultado; } int main(void){ int base, power; printf("Ingresa la base: "); scanf("%d", &base); printf("Ingresa la potencia: "); scanf("%d", &power); printf("El resultado es: %d \n", potencia(base, power)); return 0; }
    Eban Sayago Melián

    Eban Sayago Melián

    student•
    hace 5 años

    Agregué al código la posibilidad de elegir la base y el exponente. Ademas, trabajé con un ciclo while, que me resulta mas cómodo para este tipo de operaciones.

    #include <stdio.h> int power(int base, int n); int main() { int i; printf("Eliga la base para la potencia: "); scanf("%d", &i); int p; printf("Ahora, elija el exponente: "); scanf("%d", &p); printf("El numero elegido es %d, el exponente %d, por lo tanto el resultado de la potencia es %d\n", i, p, power(i, p)); return 0; } int power(int base, int e) { int i = 1, result = 0; while (i<e) { if (result<base) { result = base * base; } else { result = result * base; } i++; } return result; }```
    Hector Murcia Forero

    Hector Murcia Forero

    student•
    hace 8 días

    La declaración de función se requiere solamente para evitar la generación de errores al compilar, solo en algunos casos, al no considerar el orden en que se definen las funciones. Veamos ejemplos para comprender:

    #include <stdio.h> void repetir_potencia(int base, int pot1, int pot2) { for (int i = pot1; i <= pot2; i++) printf("%d elevado a la %d es igual a %d\n", base, i, potencia(base, i)); } int potencia(int base, int ex) { if (base == 0 && ex == 0) { printf("Error: base y potencia iguales a cero!\n"); return -1; } if (ex < 0) { printf("Error: potencia menor a cero!\n"); return -2; } int result = 1; while (ex--) result *= base; return result; } int main() { int t; t = potencia(0, 0); t = potencia(0, -1); int b = 3, p = 3; t = potencia(b, p); printf("%d elevado a la %d es igual a %d.\n", b, p, t); repetir_potencia(2, 0, 4); return 0; }

    En el ejemplo anterior se genera error al compilar debido a que la función llamada (potencia) está definida después de la función llamadora (repetir_potencia). Si se intercambia el orden de sus definiciones el error desaparece.

    Los anterior evidencia que toda función llamada debe definirse antes de la función llamadora y esto suele ser un dolor de cabeza en casos en que se incrementa la cantidad de funciones que se llaman entre sí. La solución es sencilla: declarar todas las funciones al comienzo y posteriormente definirlas en cualquier orden. Ya no se presentará dicho problema.

    #include <stdio.h> void repetir_potencia(int, int, int); int potencia(int, int); void repetir_potencia(int base, int pot1, int pot2) { for (int i = pot1; i <= pot2; i++) printf("%d elevado a la %d es igual a %d\n", base, i, potencia(base, i)); } int potencia(int base, int ex) { if (base == 0 && ex == 0) { printf("Error: base y potencia iguales a cero!\n"); return -1; } if (ex < 0) { printf("Error: potencia menor a cero!\n"); return -2; } int result = 1; while (ex--) result *= base; return result; } int main() { int t; t = potencia(0, 0); t = potencia(0, -1); int b = 3, p = 3; t = potencia(b, p); printf("%d elevado a la %d es igual a %d.\n", b, p, t); repetir_potencia(2, 0, 4); return 0; }
    Gabriel Obregón

    Gabriel Obregón

    student•
    hace 3 meses

    📘Función power en C

    🏷️ Declaración inicial

    #include <stdio.h>

    int power(int base, int n);

    🔹 Se incluye la librería estándar de entrada/salida.

    🔹 Se declara la función power que calculará potencias.

    🛠️ Función main

    📌 Qué hace: controla el programa y muestra resultados.

    🔄 Bucle for (i = 0 → 9):

    ➡️ Llama a power(2, i)

    ➡️ Imprime en pantalla:

    n = <i> El resultado de la potencia = <resultado>

    👉 Objetivo: mostrar las potencias de 2 desde 202^0 hasta 292^9.

    ⚡ Función power

    int power(int base, int n)

    {

        int i, p;

        p = 1;

        for (i = 1; i <= n; i++)

        {

            p = p * base;

        }

        return p;

    }

    🔎 Paso a paso

    1. Inicializa p = 1.
    2. Repite un ciclo desde 1 hasta n.
    3. En cada vuelta: p = p * base.
    4. Devuelve el valor acumulado.

    👉 Traducción matemática:

    power(base,n)=basenpower(base, n) = base^n

    🖥️ Ejemplo de salida en consola

    n = 0 El resultado de la potencia = 1

    n = 1 El resultado de la potencia = 2

    n = 2 El resultado de la potencia = 4

    n = 3 El resultado de la potencia = 8

    ...

    n = 9 El resultado de la potencia = 512

    💡 Idea clave

    🔹 La función power implementa el cálculo de potencias a mano con un bucle multiplicativo.

    🔹 Muestra cómo construir una operación matemática sin usar la función pow() de <math.h>.

    Eduardo Vladimir Azanza Lutsak

    Eduardo Vladimir Azanza Lutsak

    student•
    hace 2 años

    Alguien me podría ayudar con la explicacion del porque:

    i <= n? n no es igual a cero y i igual a 1?

    O que valor toma n en la primera iteración?

    Juana Saavedra

    Juana Saavedra

    student•
    hace 4 años

    Como puedo integrar un scanf al código? Es decir, para que el valor de la base lo ponga el usuario

      CRISTIAN BARBERO PÉREZ

      CRISTIAN BARBERO PÉREZ

      student•
      hace 4 años

      Hola, lo puedes hacer así:

      int base; printf("Ingresa la base por favor: "); scanf("%d", &base);
    Jose Fernando Peréz

    Jose Fernando Peréz

    student•
    hace un año

    Le quite la función que se declaro al principio debajo de la biblioteca de pronto porque en la ultima version de C, C23 ya no es necesario, al retirarla funcion de esa zona permitio compilar y lo hizo correctamente.

    FABIAN PEREZ

    FABIAN PEREZ

    student•
    hace un año

    Supongo que se usa un ciclo for para introducirnos en los ciclos, pero se pudo haber hecho mucho mas sencillo elevando la potencia a la "n"

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads