articulo

Go | Golang – Ejercicios propuestos y resuelto

No se puede aprender lo básico de un lenguaje sin una serie de ejercicios, se procede a resolver los clásicos y no tanto tomados de aquí.

1. Cree un programa que le pida su nombre al usuario y y lo salude por su nombre.

package main
import (
   "fmt"
   "strings"
)
   var nombre string
func main (){
     fmt.Println("Escribe tu nombre: ")
     fmt.Scanln(&nombre)
     fmt.Println("Hola ",nombre)
}

Imagen 1. Solicitar su nombre al usuario y saludarlo en Go.

2. Cree un programa que solicite el radio de un circulo y entregue como salida el perímetro y el área del mismo.

Para la solución de este ejercicio se hace uso de la librería strconv, para convertir el valor de una variable tipo cadena a decimal y se utiliza el identificador (_) guión bajo, que se utiliza para ignorar la declaración de alguna variable así como no tomar en cuenta algún valor que se de en caso de error de alguna función.

package main
import (
    "fmt"
    "strconv"
)
func main (){
    var radio string
    var r, peri, area float64
    const pi = 3.1416
    fmt.Println("Escribe el radio del circulo")
    fmt.Scanln(&radio)
    r,_ = strconv.ParseFloat(radio,64)
   peri=2*pi*r
   area=(r*r)*pi
   fmt.Println("El perimetro del circulo es: ",peri)
   fmt.Println("El area del circulo es: ",area)
}
Imagen 2. Código y ejecución del calculo del perímetro y área de un circulo en go. Fuente: Tomado de tumblr.com

3. Cree un programa que permita calcular el promedio de cuatro calificaciones ingresadas por el usuario.

package main
import (
    "fmt"
    "strconv"
)
func main () {
    var cal1, cal2, cal3, cal4 string
    var prom, c1, c2, c3, c4 float64
    fmt.Println("Escribe la primera calificacion")
    fmt.Scanln(&cal1)
    c1,_=strconv(cal1,64)
    fmt.Println("Escribe la segunda calificacion")
    fmt.Scanln(&cal2)
    c2,_ = strconv(cal2,64)
    fmt.Println("Escribe la tercera calificacion")
    fmt.Scanln(&cal3)
    c3,_=strconv(cal3,64)
    fmt.Println("Escribe la calificación cuatro")
    fmt.Scanln(&cal4)
    c4,_=strconv(cal4,64)
    prom=(c1+c2+c3+c4)/4
    fmt.Println("El promedio de las cuatro calificaciones es: ",prom)
}
Imagen 3. Código y ejecución del calculo del promedio de cuatro calificaciones.

4. Cree un programa que convierta de centímetros a pulgadas. Una pulgada es igual a 2.56 centímetros.

package main
import (
    "fmt"
    "strconv"
)
func main () {
    var cm string
    var cmapl float64
    var cmt = 2.56
    fmt.Println("Escriba los centimetros a convertir: ")
    fmt.Scanln(&cm)
    cmapl,_ = strconv(cm,64)
    cmapl = cmapl / cmt
    fmt.Println("Las pulgadas son: ", cmapl)
}
Imagen 4. Código fuente y ejecución en go para convertir centímetros a pulgadas. Fuente: Tomada de tumblr.com

5. Escriba un programa que reciba como entrada las longitudes de los dos catetos aa y bb de un triángulo rectángulo, y que entregue como salida el largo de la hipotenusa cc del triángulo, dado por el teorema de Pitágoras.

Nota: en este ejercicio se hace uso de la librería de matemáticas, donde se hace uso de la función del calculo de la raíz cuadrada con sqrt().

package main
import (
   "fmt"
   "strconv"
   "math"
)
func main () {
    var ca, cb hipo float64
    var Ca, Cb string
    fmt.Println("Escribe el valor del cateto a: ")
    fmt.Scanln(&Ca)
    ca,_ = strconv.ParseFloat(Ca,64)
    fmt.Println("Escriba el valor del cateto b: ")
    fmt.Scanln(&Cb)
    cb,_ =strconv.ParseFloat(Cb,64)
    ca = ca * ca
    cb = cb * cb
    hipo = math.Sqrt(ca + cb)
    fmt.Println("El calculo de la hipotenusa es: ",hipo)
} 
Image 5. Código fuente y ejecución del calculo de la hipotenusa en Go. Fuente: Tomado de tumblr.com

6. Cree un programa que pregunte al usuario la hora actual t del reloj y un número entero de horas h, que indique qué hora marcará el reloj dentro de h horas.

package main
import (
   "fmt"
   "strconv"
)
func main () {
    var hactual, hfutura string
    var ha, hf, int
    fmt.Println("Escribe el valor entero de la hora actual")
    fmt.Scanln(&hactual)
    ha,_=strconv.Atoi(hactual)
    fmt.Println("Escribe la cantidad de horas")
    fmt.Scanln(&hfutura)
    hf,_=strconv.Atoi(hfutura)
    hf = hf + ha
    fmt.Println("La hora futura será: ", hf)
}
Imagen 6. Código fuente y ejecución del calculo de la hora futura. Fuente: Tomado de tumblr.com

7. Cree un programa que solicite al usuario su edad y el programa le muestre las décadas, lustros, años, meses, semana, días, horas y minutos vividos.

package main
import (
   "fmt"
   "strconv"
)
func main () {
   var ed string
   var edad  int
   fmt.Println("Escribe tu edad: ")
   fmt.Scanln(&ed)
   edad,_ = strconv.Atoi(ed)
   fmt.Println("Decadas vividas: ", edad/10)
   fmt.Println("Lustros vividos: ", edad/5)
   fmt.Println("Años vididos: ",edad)
   fmt.Println("Meses vividos: ",edad *12)
   fmt.Println("Semana vividas: ",edad * 52)
   fmt.Println("Dias vividos: ",edad * 365)
   fmt.Println("Horas vividas: ",(edad *(365*24)))
   fmt.Println("Minutos vividos: ",(edad * (365*24)*60))
}
Imagen 7. Código fuente y ejecución del calculo minutos, horas, semanas, meses, años, lustros y décadas vividas en Go. Fuente: Tomada de tumblr.com

8. Cree un programa que solicite al usuario el valor de un lado de un cuadrado, calcule el área y el perímetro de un cuadrado.

package main
import (
    "fmt"
    "strconv"
)
func main () {
	var lado string
	var l, area, perimetro int
	fmt.Println("Escribe el valor del lado del cuadrado:")
	fmt.Scanln(&lado)
	l,_ = strconv.Atoi(lado)
	area = l * l
	perimetro = l * 4
	fmt.Println("El area del cuadrado es: ",area)
	fmt.Println("El perimetro del cuadro es: ",perimetro)
}
Imagen 8. Código fuente y ejecución del calculo del área y perímetro de un cuadrado en Go. Fuente: Tomado de Tumblr.com

9. Cree un programa que solicite al usuario la base de un triángulo y su altura, calcule el área del triángulo.

package main
import (
	"fmt"
	"strconv"
)
func main () {
	var altura, base string
	var a,b, area int
	fmt.Println("Escribe el valor entero de la base del triangulo")
	fmt.Scanln(&base)
	b,_ = strconv.Atoi(base)
	fmt.Println("Escribe el valor entero de la altura")
	fmt.Scanln(&altura)
	a,_ = strconv.Atoi(altura)
	area = (b*a)/2
	fmt.Println("El valor del area es: ",area)
}
Imagen 9. Código fuente y ejecución para calcular el área de un triángulo en Go. Fuente: Tomado de tumblr.com

10. Cree un programa que permita calcular el promedio de los siguientes número: 19, 17, 21, 09, 12, 07.

package main
import (
   "fmt"
)
func main () {
	var prom int
	prom = (19+17+21+9+12+7) / 6
	fmt.Println("El promedio es:", prom)
}
Imagen 10. Código fuente y ejecución del calculo de promedio de valores dados en Go. Fuente: Tomada de tumblr.com

11. Cree un programa que permita convertir kilogramos a libras (1 kilogramo = 2.2 libras).

package main
import (
	"fmt"
	"strconv"
)
func main () {
	var kilos string
	var lib float64
	fmt.Println("Introduce los kilogramaos a convertir a libras")
	fmt.Scanln(&kilos)
	lib,_ =strconv.ParseFloat(kilos,64)
	lib = lib * 2.2
	fmt.Println("El total de libras es: ",lib)

}
Imagen 11. Ejecución del código fuente para la conversión de kilogramos a libras en Go. Fuente: Tomado de tumblr.com

12. Elabore un programa que permita recibir dos números y mostrar la suma, resta, multiplicación y división de esos dos números.

package main
import (
	"fmt"
	"strconv"
)
func main () {
	var num1, num2 string
	var n1, n2 int
	fmt.Println("Escribe el primer valor entero")
	fmt.Scanln(&num1)
	n1,_ = strconv.Atoi(num1)
	fmt.Println("Escribe el segundo valor entero")
	fmt.Scanln(&num2)
	n2,_ = strconv.Atoi(num2)
	fmt.Println("La suma es: ",n1+n2)
	fmt.Println("la resta es: ", n1 - n2)
	fmt.Println("la multiplicación es: ",n1 * n2)
	fmt.Println("la división es: ",n1 / n2)
}
Imagen 12. Ejecución y código fuente para el calculo de operaciones básicas en Go. Fuente: Tomado de tumblr.com

13. Un obrero trabaja 8 horas diarias por quincena y le pagan 50 pesos la hora y de su salario tiene una compensación del 2% y un descuento del 1.5% del IMSS Y 1.2% del ISPT. Escriba un programa que permita calcular el salario neto del trabajador.

package main
import (
	"fmt"
	"strconv"
)
func main () {
	var salario string
	var Salario float64
	fmt.Println("Escribe la cantidad de horas trabajadas")
	fmt.Scanln(&salario)
	Salario,_ = strconv.ParseFloat(salario,64)
	Salario = Salario * 50
	Salario = Salario + (Salario * 0.02)
	Salario = Salario - ((Salario * 0.015) + (Salario * 0.012))
	fmt.Println("El salario neto del trabajador es: ",Salario)
}
Imagen 13. Código fuente y ejecución de un programa que permite calcular el salario neto de un trabajador. Fuente: Tomado de tumblr.com

14. Cree un programa que permita convertir Convertir X pies a M metros. P=0.3048.

package main
import (
	"fmt"
	"strconv"
)
func main () {
	var pies string
	var mts float64
	fmt.Println("Escribe el numero de pies a convertir")
	fmt.Scanln(&pies)
	mts,_ = strconv.ParseFloat(pies,64)
	mts = mts /3.2808
	fmt.Println("La cantidad de metros es: ",mts)
}
Imagen 14. Código fuente y ejecución para calcular cuantos metros hay en determinados pies. Fuente: Tomado de tumblr.com

15. Cree un programa que permita convertir N pulgadas a M metros. 1 Pulgada = 2.54 cm/100 = 0.0254.

package main
import (
	"fmt"
	"strconv"
)
func main () {
	var pulgada string
	var pl float64
	fmt.Println("Escribel la cantidad de pulgadas a convertir")
	fmt.Scanln(&pulgada)
	pl,_ = strconv.ParseFloat(pulgada,64)
	pl = pl / 39.370
	fmt.Println("La cantidad en metros es: ",pl)
}
Imagen 15. Ejecución y codificación para convertir pulgadas a metros. Fuente: Tomada de tumblr.com

16. Cree un programa que permita convertir X pies a N pulgadas. 1 pie = a 12 pulgadas.

package main
import (
	"fmt"
	"strconv"
)
func main () {
	var pies string
	var pl float64
	fmt.Println("Escribe la cantidad de pies a convertir")
	fmt.Scanln(&pies)
	pl,_ =strconv.ParseFloat(pies,64)
	pl = pl * 12.00
	fmt.Println("El total de pulgadas es: ",pl)
}
Imagen 16. Ejecución y código que permite convertir pies a pulgadas. Fuente: Tomada tumblr.com

17. Cree un programa que permita convertir G galones a L litros.

package main
import (
	"fmt"
	"strconv"
)
func main () {
	var galon string
	var lts float64
	fmt.Println("Escribe la cantidad de galones a convertir a litros")
	fmt.Scanln(&galon)
	lts,_ = strconv.ParseFloat(galon,64)
	lts = lts / 0.21997
	fmt.Println("La cantidad de litros es: ",lts)
}
Imagen 17. Ejecución y código fuente que convierte galones a litros. Fuente: Tomada de tumblr.com

18. Cree un programa que permita convertir grados centígrados a grados Fahrenheit. (0 °C × 9/5) + 32 = 32 °F.

package main 
import (
	"fmt"
	"strconv"
)
func main () {
	var centi string
	var fahr float64
	fmt.Println("Escribe la cantidad de gradados centigrados a convertir")
	fmt.Scanln(&centi)
	fahr,_=strconv.ParseFloat(centi,64)
	fahr = (fahr * 1.8000)+32.00
	fmt.Println("la conversión a grados Fahrenheit es de:",fahr)
}
Imagen 18. Ejecución y código fuente para convertir grados centígrados a fharenhiet. Fuente: Tomado de tumblr.com

19. Cree un programa que imprima sus iniciales en mayúsculas de imprenta, de manera que apunten hacia la parte inferior de la página (acostadas). Construya cada mayúscula de imprenta con la letra que ésta representa.

package main
import (
	"fmt"
)
func main (){
	fmt.Println("AAAAAAAAAAAAAAAAAA")
	fmt.Println("        A        A")
	fmt.Println("        A        A")
	fmt.Println("        A        A")
	fmt.Println("AAAAAAAAAAAAAAAAAA")
	fmt.Println(" ")
	fmt.Println("JJJJJJJ")
	fmt.Println("J")
	fmt.Println("J")
	fmt.Println("J")
	fmt.Println("JJJJJJJJJJJJJJJJJJJ")
}
Imagen 19. Ejecución y codificación que responde a la solución del ejercicio 19. Fuente: Tomada de tumblr.com

Leave a Reply

Your email address will not be published. Required fields are marked *