CursosEmpresasBlogLiveConfPrecios

Funciones

Clase 9 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
    Iván Gabriel Guerra

    Iván Gabriel Guerra

    student•
    hace 8 años

    Esta es mi solucion al ejercicio planteado en el video:

    package main import "fmt" func main() { var ( num1 int32 num2 int32 suma int32 resta int32 mult int32 divis float32 ) fmt.Printf("\n-------------------\n") fmt.Printf(" CALCULADORA \n") fmt.Printf("-------------------\n\n") fmt.Print("Ingresa el primer operando: ") fmt.Scanf("%d", &num1) fmt.Print("Ingresa el segundo operando: ") fmt.Scanf("%d", &num2) suma, resta, mult, divis = calcular(num1, num2) fmt.Printf("\n-------------------\n") fmt.Printf(" RESULTADOS \n") fmt.Printf("-------------------\n\n") fmt.Printf("Suma: %d\nResta: %d\nMultiplicacion: %d \nDivision: %.3f \n", suma, resta, mult, divis) } func calcular(a int32, b int32) (int32, int32, int32, float32) { return (a + b), (a - b), (a * b), (float32(a) / float32(b)) }
      Yohan Graterol

      Yohan Graterol

      teacher•
      hace 8 años

      Muy bien!

      Hiciste un uso correcto de devolver múltiples valores en una función.

      Te felicito también por haber acotado la cantidad de decimales con %.3f

      Iván Gabriel Guerra

      Iván Gabriel Guerra

      student•
      hace 8 años

      Gracias Yohan! Excelente curso de Go, un lenguaje que tiene cosas buenas de muchos otros lenguajes. Interesante y necesario aprenderlo.

    Paolo Donato Torregrosa Navarro

    Paolo Donato Torregrosa Navarro

    student•
    hace 6 años

    Me parece un poco incomodo no poder declarar funciones dejando una linea entre la primera linea y el corchete, quiero decir:

    //Correcto func estaCosa() bool { return true } //Incorrecto func estaOtraCosa() bool { return false }

    ¿Alguien podria explicarme por favor la razon por la que go hace esto? ¿acaso es porque es interpretado?

      JUAN SEBASTIAN RODRIGUEZ JIMENEZ

      JUAN SEBASTIAN RODRIGUEZ JIMENEZ

      student•
      hace 6 años

      buen aporte hafnio

    Ivonne Rodríguez Sánchez

    Ivonne Rodríguez Sánchez

    student•
    hace 6 años

    Esto es como estar aprendiendo c otra vez jaja

    Victor Lozada

    Victor Lozada

    student•
    hace 7 años

    mi solucion a una simple calculadora:

    package main import "fmt" const initialMessage = "BIENVENIDO YA PUEDES EMPEZAR A UTILIZAR ESTA CALCULADORA \n Que tipo de operacion deseas realizar ? \n tenemos disponibles: sumar, restar, dividir, multiplicar \n introduce el nombre de la operacion que deseas:" func main() { var operation string fmt.Println(initialMessage) fmt.Scanf("%s", &operation) validate(operation) } func validate(op string) { if op == "sumar" || op == "restar" || op == "dividir" || op == "multiplicar" { fmt.Printf("La operacion: %s esta disponible \n", op) calc(op) } else { fmt.Printf("La operacion: %s no esta disponible", op) } } func calc(t string) { var a int var b int var result int fmt.Print("Primer Numero:") fmt.Scanf("%d", &a) fmt.Print("Segundo Numero:") fmt.Scanf("%d", &b) if t == "sumar" { result = a + b } else if t == "restar" { result = a - b } else if t == "dividir" { result = a / b } else if t == "multiplicar" { result = a * b } fmt.Printf("Este es el resultado : %d \n", result) }
    Matías Ezequiel Losada

    Matías Ezequiel Losada

    student•
    hace 6 años

    package main

    import "fmt"

    func main() { var num1 int32 var num2 int32 var suma1 int32 var resta1 int32 var opc int32

    fmt.Println(" ------ Calculadora -------") fmt.Println("Presione 1 si desea sumar o 2 si desea restar") fmt.Scanf("%d\n", &opc)

    fmt.Println("Ingrese el primer valor") fmt.Scanf("%d\n", &num1) fmt.Println("Ingrese el segundo valor") fmt.Scanf("%d\n", &num2)

    if opc == 1 { suma1 = Suma(num1, num2) fmt.Println("El resultado de la suma es ", suma1) }else if opc == 2 { resta1 = Resta(num1, num2) fmt.Println("El resultado de la resta es ", resta1) }else { fmt.Printf("Su opción es incorrecta") } }

    func Suma(n1 int32, n2 int32) int32 { return n1 + n2 }

    func Resta(n1 int32, n2 int32) int32 { return n1 - n2 }

      yhoiner Morales Rios

      yhoiner Morales Rios

      student•
      hace 6 años

      Debí cambiar las comillas que encierran texto por estas " " todo lo demás funciona genial

    Edward Fernandez

    Edward Fernandez

    student•
    hace 6 años

    Hola chicos, esta es la solución a mi reto:

    package main import "fmt" func main() { const EXIT_OPTION int = 5 var option int = 0 printWelcome() for option != EXIT_OPTION { option = setMenu() evaluateOption(option) } } func printWelcome() { var welcome string = fmt.Sprint( "*.......................................*\n", "* *\n", "* CALCULATOR *\n", "* *\n", "*.......................................*\n\n", "Welcome to the minimalist calculator\n", ) fmt.Println(welcome) } func setMenu() int { var option int var menu string = fmt.Sprint( "Select one option: \n", "[1] Add \n", "[2] Substract \n", "[3] Multiply \n", "[4] Divide \n", "[5] Exit \n\n", "> Select a option: ", ) fmt.Printf(menu) fmt.Scanf("%d", &option) return option } func evaluateOption(option int) { switch option { case 1: add() case 2: substract() case 3: multiply() case 4: divide() case 5: exit() default: fmt.Printf(" Wrong operation. Try again") } } func add() { var ( firstNumber int secondNumber int result int ) fmt.Print(" Your option was sum\n\n") fmt.Print(" First number: ") fmt.Scanf("%d", &firstNumber) fmt.Print(" Second number: ") fmt.Scanf("%d", &secondNumber) result = firstNumber + secondNumber fmt.Printf("\n The sum of %d and %d is %d\n\n", firstNumber, secondNumber, result) } func substract() { var ( firstNumber int secondNumber int result int ) fmt.Print(" Your option was substraction\n\n") fmt.Print(" First number: ") fmt.Scanf("%d", &firstNumber) fmt.Print(" Second number: ") fmt.Scanf("%d", &secondNumber) result = firstNumber - secondNumber fmt.Printf(" The substraction of %d and %d is %d\n\n", firstNumber, secondNumber, result) } func multiply() { var ( firstNumber int secondNumber int result int ) fmt.Print(" Your option was multiplication\n\n") fmt.Printf(" First number: ") fmt.Scanf("%d", &firstNumber) fmt.Print(" Second number: ") fmt.Scanf("%d", &secondNumber) result = firstNumber * secondNumber fmt.Printf(" The multiplication of %d and %d is %d\n\n", firstNumber, secondNumber, result) } func divide() { var ( firstNumber int secondNumber int result int modulus int ) fmt.Print(" Your option was division\n\n") fmt.Print(" First number: ") fmt.Scanf("%d", &firstNumber) fmt.Print(" Second number: ") fmt.Scanf("%d", &secondNumber) result = firstNumber / secondNumber modulus = firstNumber % secondNumber fmt.Printf(" The division of %d and %d is %d and the modulus is %d\n\n", firstNumber, secondNumber, result, modulus) } func exit() { var exitMsg = fmt.Sprint( "\nThanks for using the minimalist calculator!\n", "We hope to see you again soon :)\n", ) fmt.Println(exitMsg) }
    Eduard José Carrillo Ortega

    Eduard José Carrillo Ortega

    student•
    hace 6 años

    Cuando ejecuto mi código no hace una pausa después de pedir el primer valor sino que hace las 2 preguntas al mismo tiempo, esto hace que solo tome un solo valor. ¿Alguien sabrá por qué?

    este es mi codigo

    package main import "fmt" func main(){ seleccionDeOperacion() } func seleccionDeOperacion(){ var opcion int = 0 fmt.Println("-----CALCULADORA-----") fmt.Println("------OPERACIÓN------") fmt.Println("1 - Suma") fmt.Println("2 - Resta") fmt.Println("3 - Multiplicación") fmt.Println("4 - División") fmt.Printf("Selecciona el tipo de operación: ") fmt.Scanf("%d", &opcion) switch opcion { case 1: fmt.Println("Respuesta:", suma()) break case 2: fmt.Println("Respuesta", resta()) break case 3: fmt.Println("Respuesta", multiplicacion()) break case 4: fmt.Println("Respuesta", division()) break default: fmt.Println("No hay un valor válido") break } } func suma() int{ var ( a = 0 b = 0 ) fmt.Print("Ingrese el primer número: ") fmt.Scanf("%d", &a) fmt.Print("Ingrese el segundo número: ") fmt.Scanf("%d", &b) return a + b } func resta() int{ var ( a = 0 b = 0 ) fmt.Print("Ingrese el primer número: ") fmt.Scanf("%d", &a) fmt.Print("Ingrese el segundo número: ") fmt.Scanf("%d", &b) return a - b } func multiplicacion() int{ var ( a = 0 b = 0 ) fmt.Print("Ingrese el primer número: ") fmt.Scanf("%d", &a) fmt.Print("Ingrese el segundo número: ") fmt.Scanf("%d", &b) return a * b } func division() int{ var ( a = 0 b = 0 ) fmt.Print("Ingrese el primer número: ") fmt.Scanf("%d", &a) fmt.Print("Ingrese el segundo número: ") fmt.Scanf("%d", &b) return a / b }
    Cristian Duque

    Cristian Duque

    student•
    hace 6 años

    Que extenciones usas para Atom de go?

      Juan Castro

      Juan Castro

      teacher•
      hace 6 años

      En este tutorial te explican cómo instalar y configurar las mejores extensiones de GO para Atom: https://rominirani.com/setup-go-development-environment-with-atom-editor-a87a12366fcf. :wink:

    Raul Castro Palmett

    Raul Castro Palmett

    student•
    hace 7 años

    Esta es la solución que plateo para el problema:

    package main import ( "fmt" ) func main() { fmt.Println("********************************") fmt.Println("Calculadora V.1.0.0") fmt.Println("********************************") n1, n2 := 0, 0 fmt.Print("Digite el primer numero (N1): ") fmt.Scanf("%d", &n1) fmt.Print("Digite el segundo numero (N2): ") fmt.Scanf("%d", &n2) suma, resta := Operate(n1, n2) fmt.Println("> Resultados:") fmt.Printf("N1 + N2 = %d\n", suma) fmt.Printf("N1 - N2 = %d\n", resta) } // Operate realiza la suma y la resta de 2 valores dados func Operate(n1, n2 int) (suma int, resta int) { suma = n1 + n2 resta = n1 - n2 return suma, resta }
    Osmandi Gomez

    Osmandi Gomez

    student•
    hace 8 años

    Go es bastante divertido, aunque siento un enorme parecido a Java pero mucho más fácil de entender.

    package main import "fmt" func main(){ welcome() result() goodBye() } func welcome(){ fmt.Println(" /*************************************\\") fmt.Println("********** Bienvenido a calulator v0.1 by Platzi **********") fmt.Println(" \\*************************************/") } func getNumbers() (int,int){ var numbert1 int var numbert2 int fmt.Println("Ingresa dos números ENTEROS separados por un espacio.\nEl 0 es el valor por defecto.") fmt.Scanf("%d %d",&numbert1, &numbert2) return numbert1, numbert2 } func result(){ numbert1, numbert2 := getNumbers() fmt.Printf("Número %d y Número %d\n", numbert1, numbert2) fmt.Printf("Sumatoria = %d\n",sum(numbert1, numbert2)) fmt.Printf("Resta = %d\n",sust(numbert1, numbert2)) } func goodBye(){ fmt.Println("¡Gracias por usar! :D Go es divertido!") fmt.Println("***********************************************************") } func sum(a int, b int) int{ return a+b } func sust(a int, b int) int{ return a-b }
      Yohan Graterol

      Yohan Graterol

      teacher•
      hace 8 años

      Está muy bien la división del código en funciones creo que es lo correcto a la hora de desarrollar, “divide y vencerás”.

      Mi única sugerencia sería evitar capturar un valor del usuario en una misma ejecución, puede causar problemas de usabilidad en tu programa.

      Osmandi Gomez

      Osmandi Gomez

      student•
      hace 8 años

      ¡Muchas gracias! Así será.

    Gianfranco Manganiello

    Gianfranco Manganiello

    student•
    hace 7 años

    Mi calculadora 😄

    package main import ( "fmt" ) func main() { var tipoOperacion int8 fmt.Println("Esta es una aplicación muy básica que solo permite realizar una operación matemática entre dos números distintos....") for { fmt.Println("¿Qué tipo de operación desea efectuar?") fmt.Println("1. Suma") fmt.Println("2. Resta") fmt.Println("3. multiplicación") fmt.Println("4. División") fmt.Scanf("%d", &tipoOperacion) if tipoOperacion > 0 && tipoOperacion < 5 { break } fmt.Println("Disculpe, el número introducido no es válido") } fmt.Printf("Su resultado es: %.2f", executeOperation(tipoOperacion, getData())) } func getData() [2]float32 { var datos [2]float32 fmt.Println("Introduzca dos datos (A y B), tenga en cuenta que en la resta el dato 'A' se restará el dato 'B' y que en el caso la división el dato 'B' será el denominador del dato 'A'") fmt.Print("A: ") fmt.Scanf("%f", &datos[0]) fmt.Print("B: ") fmt.Scanf("%f", &datos[1]) return datos } func executeOperation(tipoOperacion int8, datos [2]float32) float32 { var total float32 switch tipoOperacion { case 1: total = datos[0] + datos[1] case 2: total = datos[0] - datos[1] case 3: total = datos[0] * datos[1] case 4: total = datos[0] / datos[1] } return total }
    David Hernandez

    David Hernandez

    student•
    hace 7 años

    Este es mi codigo:

    package main import "fmt" func main() { Calcular(ImprimirCalculadora()) } func ImprimirCalculadora() (int, int) { return ObtenerValor("Obtener el primer valor: ", 1), ObtenerValor("Obtener el segundo valor: ", 1) } func ObtenerValor(texto string, valor int) int { fmt.Print(texto) fmt.Scanf("%d\n", &valor) return valor } func Calcular(valorUno int, valorDos int) { ImprimirResultado("suma", valorUno, valorDos, valorUno + valorDos) ImprimirResultado("resta", valorUno, valorDos, valorUno - valorDos) ImprimirResultado("multiplicación", valorUno, valorDos, valorUno * valorDos) ImprimirResultado("División", valorUno, valorDos, valorUno / valorDos) } func ImprimirResultado(operacion string, valorUno int, valorDos int, resultado int) { fmt.Printf("\n La %s de %d y de %d es de %d", operacion, valorUno, valorDos, resultado) }

    Saludos

    Alex Fernando Montenegro Almeida

    Alex Fernando Montenegro Almeida

    student•
    hace 8 años
    package main import "fmt" const a int = 5 const b int = 10 func main(){ suma := suma(a,b) resta:= resta(a,b) fmt.Printf("El resultado de la suma es: %d\n", suma) fmt.Printf("El resultado de la resta es: %d\n", resta) } func suma(a int, b int)int{ return a+b } func resta(a int, b int)int{ return a-b }
    Rafael Antonio Hidalgo Romero

    Rafael Antonio Hidalgo Romero

    student•
    hace 8 años

    El scanf para que no salte el seguido escaner

    package main import "fmt" //textos const bienvenido string = "\nBienvenido a la calculadora de go \n" const mensaje1 string = "\nIngrese numero 1:\n" const mensaje2 string = "\nIngrese numero 2:\n" const resultado string = "\nEl resultado: {%d}. \n" const operador1 string = "\n Operacion suma:\n" const operador2 string = "\n Operacion resta:\n" const separador string = "===========================================" //============================ func main() { fmt.Printf(bienvenido) proceso() } func proceso() { //variables var numero1 int = 0 var numero2 int = 0 /////////////////////////// fmt.Printf(separador) fmt.Printf(operador1) fmt.Printf(mensaje1) fmt.Scanf("%d Scanf", &numero1) fmt.Printf(mensaje2) fmt.Scanf("%d Scanf", &numero2) fmt.Printf(resultado, suma(numero1, numero2)) fmt.Printf(separador) //inicializar numero1 = 0 numero2 = 0 /////// fmt.Printf(operador2) fmt.Printf(mensaje1) fmt.Scanf("%d Scanf", &numero1) fmt.Printf(mensaje2) fmt.Scanf("%d Scanf", &numero2) fmt.Printf(resultado, resta(numero1, numero2)) fmt.Printf(separador) } func suma(a int, b int) int { return a + b } func resta(a int, b int) int { return a - b }
    Iván Toro

    Iván Toro

    student•
    hace 7 años
    package main import "fmt" func main(){ var ( num1 int num2 int sum int subt int mult int div float32 ) fmt.Print("Type the first number: ") fmt.Scanf("%d", &num1) fmt.Print("Type the second number: ") fmt.Scanf("%d", &num2) sum, subt, mult, div = calc(num1, num2) fmt.Println("Results:") fmt.Printf("Sum: %d\n", sum) fmt.Printf("Subtraction: %d\n", subt) fmt.Printf("Multiplation: %d\n", mult) fmt.Printf("Division: %.2f\n", div) } func calc(num1 int, num2 int) (int, int, int, float32){ return num1 + num2, num1 - num2, num1 * num2, float32(num1) / float32(num2) }
    Yojan Antonio Pardo Zabala

    Yojan Antonio Pardo Zabala

    student•
    hace 7 años

    alguien sabe por que cuando trato de tomar varios datos en mi funcion get_personal_data() solo me pide el primer dato? los otros dos no los toma

    package main import "fmt" const HELLO_USER string = "Hola %s %s, Bienvenido al fascinante mundo de Go\n" func main(){ fmt.Print("Ingresa tu nombre:") name := get_text() fmt.Print("Ingresa tu apellido:") lastname := get_text() age, email,phone_number := get_personal_data() fmt.Printf(HELLO_USER, name, lastname) fmt.Printf("tu edad: %d.\ntu email: %s.\ntu numero de telefono: %s.\n",age,email,phone_number) } func get_text() string{ var text string fmt.Scanf("%s", &text) return text } func get_personal_data() (int,string,string){ var age int var email string var phone_number string fmt.Println("Que edad tienes?") fmt.Scanf("%d",age) fmt.Println("cual es tu email?") fmt.Scanf("%s",email) fmt.Println("Cual es tu numero de telefono?") fmt.Scanf("%s",phone_number) return age,email,phone_number }
      Diego Forero

      Diego Forero

      Team Platzi•
      hace 7 años

      Te falta el & para asignar las variables de age, email y phone_number en el Scanf

      Yojan Antonio Pardo Zabala

      Yojan Antonio Pardo Zabala

      student•
      hace 7 años

      gracias GOLLUM, no me habia dado cuenta de ese pequeño error

    Edwin David Sánchez Balbín

    Edwin David Sánchez Balbín

    student•
    hace 7 años

    Mi aporte

    package main import "fmt" func main() { fmt.Println("Calculadora de Operaciones Basicas") suma, resta, mulp, div := operations(getNum(), getNum()) fmt.Println("El resultado de las operaciones son:") fmt.Printf("Suma: %d\n", suma) fmt.Printf("Resta: %d\n", resta) fmt.Printf("Multiplicación: %d\n", mulp) fmt.Printf("División: %.2f\n", div) } func getNum() int { var num int num = 1 fmt.Print("Ingresa un numero: ") fmt.Scanf("%d", &num) return num } func operations(num1 int, num2 int) (int, int, int, float32) { return (num1 + num2), (num1 - num2), (num1 * num2), (float32(num1) / float32(num2)) }
    wesly hernandez

    wesly hernandez

    student•
    hace 7 años
    package main import "fmt" func main() { var ( number1 int32 number2 int32 suma int32 resta int32 ) fmt.Println("CALCULADORA") fmt.Print("Ingrese el primer numero: ") fmt.Scanf("%d", &number1) fmt.Print("Ingrese el segundo numero: ") fmt.Scanf("%d", &number2) suma, resta = calcular(number1, number2) fmt.Println("RESULTADO") fmt.Printf("Suma: %d\nResta: ", suma, resta) } func calcular(a int32, b int32) (int32, int32) { return (a + b), (a - b) }
    David Antonio Garcia Saaib

    David Antonio Garcia Saaib

    student•
    hace 7 años

    Lo hice en el mismo programa que hicimos aquí. Me apoye en el que hizo @ivanguerra10

    package main import "fmt" const helloWorld = "Hola %s %s. \nBienvenido al maravilloso mundo de GO." func main() { name := getName() lastname := getLastname() a, b, c := getVariables() number := sum(50, 50) var ( num1 int32 num2 int32 ) fmt.Printf(helloWorld, name, lastname) fmt.Print(c, b, a, number) fmt.Println("Iniciando Calculadora\n.\n..\n...\nListo") fmt.Println("Ingresa primer numero") fmt.Scanf("%d", &num1) fmt.Println("Ingresa segundo numero") fmt.Scanf("%d", &num2) suma, resta, multi, divis := calcular(num1, num2) fmt.Println("El resultado es: ") fmt.Printf("Suma: %d\nResta: %d\nMultiplicación: %d\nDivisión: %f", suma, resta, multi, divis) } func calcular(x int32, y int32) (int32, int32, int32, float32) { return (x + y), (x - y), (x * y), (float32(x) / float32(y)) } func getName() string { var name string name = "Sin nombre" fmt.Print("Ingresa tu Nombre: ") fmt.Scanf("%s", &name) return name } func getLastname() string { var lastname string lastname = "Sin nombre" fmt.Print("Ingresa tu apellido: ") fmt.Scanf("%s", &lastname) return lastname } func getVariables() (int, int, int) { return 1, 2, 3 } func sum(a int, b int) int { return a + b }
    Carlos Sánchez

    Carlos Sánchez

    student•
    hace 7 años

    Mi solución de la calculadora.

    package main import "fmt" func main() { var num1, num2 float32 var op int fmt.Printf("Ingrese el primer numero \n") fmt.Scanf("%f", &num1) fmt.Printf("Ingrese su segundo numero \n") fmt.Scanf("%f", &num2) fmt.Printf("Que operacion desea realizar. 1-suma, 2-resta, 3-multiplica, 4-divi \n") fmt.Scanf("%d", &op) result, typeOp := validate(op, num1, num2) fmt.Printf("El resultado de la %v es: %.2f \n", typeOp, result) } func validate(op int, num1 float32, num2 float32) (float32, string) { switch op { case 1: return sum(num1, num2) case 2: return rest(num1,num2) case 3: return multi(num1, num2) case 4: return divi(num1,num2) default : return sum(num1, num2) // tiene que retornar algo si no se cumple alguna opcion } } func sum(num1 float32, num2 float32) (float32, string) { return (num1 + num2 ), "suma" } func rest(num1 float32, num2 float32) (float32, string) { return (num1 - num2), ("resta") } func multi(num1 float32, num2 float32) (float32, string) { return (num1 * num2), "multiplicacion" } func divi(num1 float32, num2 float32) (float32, string) { return (num1 / num2), "division" }

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