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)
}
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)
}
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)
}
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)
}
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)
}
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)
}
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))
}
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)
}
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)
}
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)
}
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)
}
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)
}
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)
}
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)
}
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)
}
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)
}
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)
}
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(¢i)
fahr,_=strconv.ParseFloat(centi,64)
fahr = (fahr * 1.8000)+32.00
fmt.Println("la conversión a grados Fahrenheit es de:",fahr)
}
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")
}