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") }