CursosEmpresasBlogLiveConfPrecios

Struct para calcular

Clase 33 de 34 • Curso de Programación en Go 2016

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    Introducción a Go

    Introducción a Go

    05:24
  • 2
    Instalación de Go: Instalación de Go en Ubuntu

    Instalación de Go: Instalación de Go en Ubuntu

    04:39
  • 3
    Instalación de Go: Instalación de Go en Mac

    Instalación de Go: Instalación de Go en Mac

    01:53
  • 4
    Instalación de Go: Instalación de Go en Windows

    Instalación de Go: Instalación de Go en Windows

    02:24
Primeros pasos
  • 5
    Organizando el entorno de trabajo

    Organizando el entorno de trabajo

    04:01
  • 6
    Hola mundo

    Hola mundo

    05:27
  • 7
    Recibir valores del usuario

    Recibir valores del usuario

    05:46
  • 8
    Declaración de variables y constantes

    Declaración de variables y constantes

    08:15
  • 9
    Funciones

    Funciones

    07:47
  • 10
    Tipos de datos numéricos en Go: enteros, flotantes

    Tipos de datos numéricos en Go: enteros, flotantes

    08:39
  • 11
    Cadenas de texto básico

    Cadenas de texto básico

    06:27
  • 12
    Array y Slice

    Array y Slice

    07:45
  • 13
    Condicionales

    Condicionales

    05:43
  • 14
    For, break

    For, break

    06:20
Intermedio
  • 15
    Operaciones con cadenas

    Operaciones con cadenas

    08:17
  • 16
    Uso de la instrucción: Switch

    Uso de la instrucción: Switch

    05:03
  • 17
    Manejo de Paquetes

    Manejo de Paquetes

    15:54
  • 18
    Map

    Map

    10:19
  • 19
    Structs

    Structs

    06:46
  • 20
    Methods

    Methods

    03:09
  • 21
    Interfaces

    Interfaces

    10:04
  • 22
    defer

    defer

    02:49
  • 23
    Errores

    Errores

    12:09
Avanzados
  • 24
    Punteros

    Punteros

    08:28
  • 25
    Goroutines

    Goroutines

    06:06
  • 26
    Canales

    Canales

    14:47
  • 27
    Ejemplos de Canales

    Ejemplos de Canales

    11:52
  • 28
    Bibliotecas de Go

    Bibliotecas de Go

    11:48
  • 29
    Consumiendo una API externa

    Consumiendo una API externa

    12:21
  • 30
    Errores comunes en Go

    Errores comunes en Go

    05:03
  • 31
    Cierre del curso

    Cierre del curso

    01:33
Contenido Bonus
  • 32
    Cambiar el string

    Cambiar el string

    00:23
  • 33
    Struct para calcular

    Struct para calcular

    00:21
  • 34
    Leer un archivo del disco

    Leer un archivo del disco

    00:26
    Diego Forero

    Diego Forero

    Team Platzi•
    hace 8 años

    Así lo hice yo 😃

    package main import "fmt" // Definimos la estructura type Rectangle struct { base int height int } // Función para recibir la información del usuario, retorna una instancia de Rectangle func getInfo() *Rectangle { // Creamos una instancia de la struct rectangle := new(Rectangle) fmt.Println("Calcular el area de un rectangulo") fmt.Println("Ingrese el valor de la Base") // Recibimos el valor y lo almacenamos en la struct fmt.Scanf("%d", &rectangle.base) fmt.Println("Ingrese el valor de la Altura") // Recibimos el valor y lo almacenamos en la struct fmt.Scanf("%d", &rectangle.height) return rectangle } // Definimos el metodo del struct para calcular el area func (r Rectangle) getArea() { area := r.base * r.height fmt.Printf("El área del cuadrado de base %d y altura %d es: %d\n", r.base, r.height, area) } // Definimos el metodo del struct para calcular el perímetro func (r Rectangle) getPerimeter() { perimeter := 2 * (r.base + r.height) fmt.Printf("El perímetro del cuadrado de base %d y altura %d es: %d\n", r.base, r.height, perimeter) } func main() { // Almacenamos en r la struct que retorna get info r := getInfo() // Llamamos a los metodos de la struct r.getArea() r.getPerimeter() }
      Yohan Graterol

      Yohan Graterol

      teacher•
      hace 8 años

      Está muy bien! Que bueno de verdad.

      Iván Toro

      Iván Toro

      student•
      hace 7 años

      ¡Muy bueno!

    Guillermo de la Iglesia

    Guillermo de la Iglesia

    student•
    hace 8 años

    Ejemplo de calculo de area y perímetro:

    archivo main.go

    package main import example "github.com/zguillez/tools/geometry" func main() { example.Rectangle() }

    archivo geometry/rectangle.go

    package strings import ( "fmt" "os" "strconv" ) func Rectangle() { rectangle := Shape{} width := UserInput{Request:"Insert rectangle width"} height := UserInput{Request:"Insert rectangle height"} complete := make(chan bool) go func() { width.RequestHandler() height.RequestHandler() rectangle.Width = width.Value rectangle.Height = height.Value rectangle.Area = width.Value * height.Value rectangle.Perimeter = width.Value * 2 + height.Value * 2 complete <- true }() for <-complete { fmt.Println("[output] Rectangle area:", rectangle.Area) fmt.Println("[output] Rectangle perimeter:", rectangle.Perimeter) os.Exit(1) } } type Shape struct { Width float64 Height float64 Area float64 Perimeter float64 } type UserInput struct { Request string Insert string Value float64 } func (req *UserInput) RequestHandler() { fmt.Printf("[input] " + req.Request + ": ") fmt.Scanf("%s", &req.Insert) number, err := strconv.ParseFloat(req.Insert, 64) if err != nil { panic(err) } else { req.Value = number } }

    Resultado:

    [input] Insert rectangle width: 30 [input] Insert rectangle height: 25 [output] Rectangle area: 750 [output] Rectangle perimeter: 110 exit status 1
    Maday Choque

    Maday Choque

    student•
    hace 7 años

    package main

    import (
    “fmt”
    )

    func main(){
    dimensiones := getDimension()
    dimensiones.getArea()
    dimensiones.getPerimetro()
    }

    type dimensionCuadrado struct {
    base int
    altura int
    }

    func getDimension() *dimensionCuadrado {
    dimensionCuadrado := new(dimensionCuadrado)

    fmt.Println("Ingrese el valor de la base: ") fmt.Scanf("%d", &dimensionCuadrado.base) fmt.Println("Ingrese el valor de la altura: ") fmt.Scanf("%d", &dimensionCuadrado.altura) return dimensionCuadrado

    }

    func (d dimensionCuadrado) getArea(){
    area := d.base * d.altura
    fmt.Println(“El área del cuadrado es: %d”, area)
    }

    func (d dimensionCuadrado) getPerimetro(){
    perimetro := 2*(d.base + d.altura)
    fmt.Println(“El perimetro del cuadrado es: %d”, perimetro)
    }

    Alexander Armúa Abregu

    Alexander Armúa Abregu

    student•
    hace 6 años
    type Square struct{ Height float32 Width float32 } func (s *Square) calcArea() float32 { return s.Height * s.Width }```
    David Hernandez

    David Hernandez

    student•
    hace 7 años

    El desafio 2 aqui esta

    package main import "fmt" type Cuadrado struct { Alto, Ancho float64 } func (c Cuadrado) Area() float64 { return c.Alto * c.Ancho } func (c Cuadrado) Perimetro() float64 { return (2 * c.Alto) + (2 * c.Ancho) } func (c Cuadrado) ToSting() { fmt.Println("Cuadrado:", c) fmt.Println("Area:", c.Area()) fmt.Println("Perimetro:", c.Perimetro()) } func main() { Cuadrado{Alto: 3, Ancho: 3}.ToSting() Cuadrado{Alto: 3, Ancho: 4}.ToSting() Cuadrado{Alto: 5, Ancho: 9}.ToSting() }

    resutado

    Cuadrado: {3 3} Area: 9 Perimetro: 12 Cuadrado: {3 4} Area: 12 Perimetro: 14 Cuadrado: {5 9} Area: 45 Perimetro: 28 Process finished with exit code 0

    Saludos

    Manuel Alejandro Pamplona Rosado

    Manuel Alejandro Pamplona Rosado

    student•
    hace 7 años

    package main

    import (
    “fmt”
    )

    func main() {
    var height int
    var width int
    fmt.Println(“Escribe base para cuadrado: “)
    fmt.Scanf(”%d”, &height)
    fmt.Println(“Escribe altura para cuadrado: “)
    fmt.Scanf(”%d”, &width)
    fmt.Printf(“El área es %d\n”, calculateArea(height, width))
    fmt.Printf(“El perímetro es %d\n”, calculatePerimeter(height, width))
    }

    func calculateArea(height int, width int) int {
    return height * width
    }

    func calculatePerimeter(height int, width int) int {
    return (height * 2) + (width * 2)
    }

    Ernesto Gabriel Mejía Montero

    Ernesto Gabriel Mejía Montero

    student•
    hace 7 años
    package main import "fmt" // Declarando el tipo rectangulo type Rectangle struct { width int heigh int } // Obtener el ancho y el alto del rectangulo func getParameters(rect *Rectangle) { fmt.Print("Ingrese el ancho: ") fmt.Scanf("%d", &rect.width) fmt.Print("Ahora el alto: ") fmt.Scanf("%d", &rect.heigh) } // Calcular y devolver el area y el perimetro func areaAndperimeter(w int, h int) (int, int) { return w * h, 2 * w + 2 * h } func main() { rect := new(Rectangle) getParameters(rect) area, perimeter := areaAndperimeter(rect.width, rect.heigh) fmt.Printf("Area: %d\n", area) fmt.Printf("Perimetro: %d\n", perimeter) }
    David Gutierrez

    David Gutierrez

    student•
    hace 7 años
    package main import ( "fmt" ) type Rectangles struct { width float32 height float32 } func main() { //rec := Rectangles{height: 10, width: 20} rectangle := getInfo() fmt.Println("el perimetro del rectangulo es = ", rectangle.perimeter()) fmt.Println("el area del rectangulo es = ", rectangle.area()) } func getInfo() *Rectangles { rec := new(Rectangles) fmt.Println("ingresa el ancho del rectangulo:") fmt.Scanf("%f", &rec.width) fmt.Println("ingresa el alto del rectangulo:") fmt.Scanf("%f", &rec.height) return rec } func (rec Rectangles) area() float32 { area := rec.width * rec.height return area } func (rec Rectangles) perimeter() float32 { per := 2*rec.width + 2*rec.height return per }
    John Carlos Espitia Rivera

    John Carlos Espitia Rivera

    student•
    hace 6 años

    Mi ejemplo https://github.com/johnksft/bases-go-platzi/tree/master/github.com/johnksft/reto2cuadrado

    Ernesto Ventas Fernandez

    Ernesto Ventas Fernandez

    student•
    hace 6 años
    cuadradoGo.png
    cuadradoGoRun.png
    Julio Cesar Estrada Marcial

    Julio Cesar Estrada Marcial

    student•
    hace 6 años
    package main import ( "github.com/yulio94/changestring/squarecalcs" ) func main() { // texto := replacestring.GetString() // replacestring.ReplaceString(texto) squarecalcs.Calcs() }
    package squarecalcs import "fmt" type square struct { size float32 } type area struct { area float32 } type perimeter struct { perimeter float32 } //Calcs make and return the calcs. func Calcs() { square := squareSize() area := calcArea(square) perimeter := calcPerimeter(square) fmt.Println("The area is: ", area) fmt.Println("The perimeter is: ", perimeter) } func squareSize() square { var size float32 fmt.Print("Type the square size: ") fmt.Scanf("%g\n", &size) square := square{size: size} return square } func calcArea(size square) area { result := size.size * size.size area := area{area: result} return area } func calcPerimeter(size square) perimeter { result := 4 * size.size perimeter := perimeter{perimeter: result} return perimeter }
    Bruno Tenaglia

    Bruno Tenaglia

    student•
    hace 8 años
    package main import ( "fmt" ) type Rectangulo struct { base, altura int } func main() { rect := new(Rectangulo) fmt.Println("Escriba la base:") fmt.Scanf("%d", &rect.base) fmt.Println("Escriba la altura:") fmt.Scanf("%d", &rect.altura) fmt.Println("El área es: ", calculateArea(rect.base, rect.altura)) fmt.Println("El perímetro es: ", calculatePerimetro(rect.base, rect.altura)) } func calculateArea(base, altura int) int { return base * altura } func calculatePerimetro(base, altura int) int { return (2 * base) + (2 * altura) }
    Osmandi Gomez

    Osmandi Gomez

    student•
    hace 8 años

    Por ser un cuadrado consideré más eficiente solo pedir un lado y calcular área y perímetro en una misma función.

    package main import "fmt" func main() { desafio2() } type cuadrado struct { Lado int } func desafio2() { ladoStruct := new(cuadrado) fmt.Println("Ingrese el valor de lado de un cuadrado") fmt.Scanf("%d", &ladoStruct.Lado) area, perimetro := AreaPerimetro(ladoStruct.Lado) fmt.Printf("El área es %d y \nel perímetro es %d\n", area, perimetro) } // AreaPerimetro determina área y perímetro de un cuadrado func AreaPerimetro(lado int) (int, int) { return lado * lado, lado * 4 }
    Jorge Alonso Gastelum Gonzalez

    Jorge Alonso Gastelum Gonzalez

    student•
    hace 8 años
    package main import "fmt" type cuadrado struct { lado float32 } func (cuadrado) calculaArea(l float32) float32 { return l * l } func (cuadrado) calculaPerimetro(l float32) float32 { return l * 4 } func main() { cuadro := new(cuadrado) fmt.Print("Ingrese cuando mide un lado de su cuadrado: ") fmt.Scanf("%f", &cuadro.lado) fmt.Printf("El area de su cuadrado es: %f\n", cuadro.calculaArea(cuadro.lado)) fmt.Printf("El perimetro de su cuadrado es: %f\n", cuadro.calculaPerimetro(cuadro.lado)) }
    Juan Camilo Sarmiento Reyes

    Juan Camilo Sarmiento Reyes

    student•
    hace 8 años

    Aquí está el mió! 😃

    package main import "fmt" type Cuadrado struct { Alto float32 Ancho float32 } func main() { var alto, ancho float32 fmt.Printf("Escribe el alto del cuadrado: ") fmt.Scanf("%f\n", &alto) fmt.Printf("Escribe el ancho del cuadrado: ") fmt.Scanf("%f", &ancho) cuadrado := Cuadrado{Alto: alto, Ancho: ancho} fmt.Printf("Área del cuadrado: %f\n", calcularArea(cuadrado)) fmt.Printf("Perímetro del cuadrado: %f\n", calcularPerimetro(cuadrado)) } // El área del cuadrado es el producto de la base(ancho) por la altura func calcularArea(cuadrado Cuadrado) float32 { return cuadrado.Alto * cuadrado.Ancho } // El perímetro del cuadrado es la suma de la longitud de cada uno de sus lados func calcularPerimetro(cuadrado Cuadrado) float32 { return 2.0 * (cuadrado.Alto + cuadrado.Ancho) }
    Rafael Antonio Hidalgo Romero

    Rafael Antonio Hidalgo Romero

    student•
    hace 8 años
    /* estructura cuadrado que reciba el alto y ancho metodos area y perimetro */ package Bonus type Cuadrado struct { Alto float64 Ancho float64 } func (p Cuadrado) CalcArea() float64 { return p.Alto * p.Ancho } func (p Cuadrado) CalcPerim() float64 { return 2 * (p.Alto + p.Ancho) }
    Juan Antonio Sopale

    Juan Antonio Sopale

    student•
    hace 8 años

    Defino mis geometrías:

    package geometria //Interfaz de la figura type Figura interface { area() float64 perimetro() float64 } //Definición del rectángulo type Rectangulo struct { Alto, Ancho float64 } //Cálculo del área del rectángulo func (r Rectangulo) area() float64 { return r.Alto * r.Ancho } //Cálculo del perímetro del rectángulo func (r Rectangulo) perimetro() float64 { return 2*r.Alto + 2*r.Ancho } //Cálculo del área de la figura geométrica func AreaFigura(f Figura) float64 { return f.area() } //Cálculo del perímetro de la figura geométrica func PerimetroFigura(f Figura) float64 { return f.perimetro() }

    Ejecuto ejemplo en el main:

    package main import ( "fmt" "github.com/usuario/platzi/geometria" ) func main() { r := geometria.Rectangulo{4, 5} fmt.Println("Rectángulo:", r) fmt.Println("Área del rectángulo:", geometria.AreaFigura(r)) fmt.Println("Perímetro del rectángulo", geometria.PerimetroFigura(r)) }

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