Saltar a contenido

Ejercicios 2. Arrays, Slice, for, if

Puedes organizar todo el código segun el siguiente ejemplo:

package main
import (
    "fmt"
)
/**
* Ejercicios 2
**/

// Aqui tipos y variables globales

func main(){
    for {
        // Mostrar el menú
        fmt.Println("\n=== Menú Principal ===")
        fmt.Println("1. Ejercicio 1")
        fmt.Println("2. Salir")
        fmt.Print("Seleccione una opción: ")

        // Leer la opción del usuario
        var opcion int
        fmt.Scanln(&opcion)

        // Evaluar la opción seleccionada
        switch opcion {
        case 1:
            ejercicio1()
        case 2:
            fmt.Println("Saliendo del programa. ¡Hasta luego!")
            return // Termina el programa
        default:
            fmt.Println("Opción no válida. Inténtelo de nuevo.")
        }
    }
}

/**
* Hacer un programa que inicialice un vector de 20 números con valores aleatorios, 
* y posterior ordene los elementos de menor a mayor
**/
func ejercicio1(){

}

Ejercicios cortos de Arrays

Ejercicio 1
Hacer un programa que inicialice un vector de 20 números con valores aleatorios, y posterior ordene los elementos de menor a mayor.
En go está el módulo sort que ordena un array:

    sort.Ints(numeros)  
Pero hazlo sin usar esta función. En esta web explican varios metodos , usa el de la burbuja

Ejercicio 2

Programa que declare tres vectores ‘vector1’, ‘vector2’ y ‘vector3’ de cinco enteros cada uno, pida valores para ‘vector1’ y ‘vector2’ y calcule vector3=vector1+vector2.
Pista:
puedes crear una función que lea vectores, no es imprescindible pero ahorra tiempo.

Ejercicio 3
Queremos guardar los nombres y la edades de los alumnos de un curso. Realiza un programa que introduzca el nombre y la edad de cada alumno. El proceso de lectura de datos terminará cuando se introduzca como nombre un asterisco (*) Al finalizar se mostrará los siguientes datos:

Todos lo alumnos mayores de edad. El alumno de mayor edad

Ejercicio 4

De una empresa de transporte se quiere guardar el nombre de los conductores que tiene, y los kilómetros que conducen cada día de la semana.

Para guardar esta información se van a utilizar dos arreglos:

  • Nombre: Vector para guardar los nombres de los conductores.
  • kms: Tabla para guardar los kilómetros que realizan cada día de la semana.
    Se quiere generar un nuevo vector (“total_kms”) con los kilómetros totales que realza cada conductor.

Al finalizar se muestra la lista con los nombres de conductores y los kilómetros que ha realizado.
Pista:
Aqui en lugar de struct se hace algo parecido con dos arrays de forma que en la posición i del array de nombres se corresponde con el i de los km

Ejercicio 5

Crear un programa de ordenador para gestionar los resultados de la quiniela de fútbol. Para ello vamos a utilizar dos tablas:

  • Equipos: Que es una tabla de cadenas donde guardamos en cada columna el nombre de los equipos de cada partido. En la quiniela se indican 15 partidos.
  • Resultados: Es una tabla de enteros donde se indica el resultado.

También tiene dos columnas, en la primera se guarda el número de goles del equipo que está guardado en la primera columna de la tabla anterior, y en la segunda los goles del otro equipo.
El programa ira pidiendo los nombres de los equipos de cada partido y el resultado del partido, a continuación se imprimirá la quiniela de esa jornada.

¿Qué modificación habría que hacer en las tablas para guardar todos los resultados de todas las jornadas de la temporada?

Ejercicio 6

Crea un programa que pida al usuario una contraseña, de forma repetitiva mientras que no introduzca “asdasd”. Cuando finalmente escriba la contraseña correcta, se le dirá “Bienvenido” y terminará el programa.

Ejercicio 7

Crea una aplicación que permita adivinar un número. La aplicación genera un número aleatorio del 1 al 100. A continuación va pidiendo números y va respondiendo si el número a adivinar es mayor o menor que el introducido,a demás de los intentos que te quedan (tienes 10 intentos para acertarlo).

El programa termina cuando se acierta el número (además te dice en cuantos intentos lo has acertado), si se llega al limite de intentos te muestra el número que había generado.
s Ejercicio 8

Algoritmo que pida números hasta que se introduzca un cero. Debe imprimir la suma y la media de todos los números introducidos.

Ejercicio 9

Realizar un algoritmo que pida números (se pedirá por teclado la cantidad de números a introducir). El programa debe informar de cuantos números introducidos son mayores que 0, menores que 0 e iguales a 0.

Ejercicio 10

Escribe un programa que diga si un número introducido por teclado es o no primo. Un número primo es aquel que sólo es divisible entre él mismo y la unidad.
Nota: Es suficiente probar hasta la raíz cuadrada del número para ver si es divisible por algún otro número.

Ejercicio 11

Una empresa tiene el registro de las horas que trabaja diariamente un empleado durante la semana (seis días) y requiere determinar el total de éstas, así como el sueldo que recibirá por las horas trabajadas.

Ejercicio 12

Escribe un programa en Go que solicite al usuario ingresar un número entero positivo y luego imprima si cada número desde 1 hasta el número ingresado es par o impar. Debes usar un bucle para recorrer los números y una instrucción if para determinar si son pares o impares.

Ejemplo de salida:

Ingrese un número entero positivo: 10
1 es impar
2 es par
3 es impar
4 es par
5 es impar
6 es par
7 es impar
8 es par
9 es impar
10 es par

Ejercicio 13

Escribe un programa en Go que solicite al usuario un número entero positivo y luego imprima la tabla de multiplicar de ese número desde 1 hasta 10.

Ejemplo de salida:

Ingrese un número entero positivo: 5
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50

Ejercicio 14

Escribe un programa en Go que modele un coche utilizando una estructura (struct). La estructura debe tener los siguientes campos:

  • Marca (string): La marca del coche (por ejemplo, "Toyota", "Ford").
  • Modelo (string): El modelo del coche (por ejemplo, "Corolla", "Mustang").
  • Año (int): El año de fabricación del coche.
  • Kilometraje (int): El kilometraje actual del coche.
  • EnVenta (bool): Indica si el coche está en venta o no.

El programa debe permitir al usuario:

  • Crear una lista de coches (slice de struct).
  • Agregar coches a la lista ingresando los datos desde la consola.
  • Mostrar todos los coches disponibles en la lista.
  • Filtrar y mostrar solo los coches que están en venta.
  • Permitir actualizar el kilometraje de un coche específico.

Ejemplo de salida:

Ingrese la cantidad de coches que desea añadir: 2

Ingrese la marca del coche 1: Toyota
Ingrese el modelo del coche 1: Corolla
Ingrese el año del coche 1: 2018
Ingrese el kilometraje del coche 1: 50000
¿Está en venta el coche 1? (true/false): true

Ingrese la marca del coche 2: Ford
Ingrese el modelo del coche 2: Mustang
Ingrese el año del coche 2: 2020
Ingrese el kilometraje del coche 2: 20000
¿Está en venta el coche 2? (true/false): false

Coches ingresados:
Marca: Toyota, Modelo: Corolla, Año: 2018, Kilometraje: 50000, EnVenta: true
Marca: Ford, Modelo: Mustang, Año: 2020, Kilometraje: 20000, EnVenta: false

Coches en venta:
Marca: Toyota, Modelo: Corolla, Año: 2018, Kilometraje: 50000, EnVenta: true

Ingrese el nombre del coche para actualizar el kilometraje (o 'salir' para terminar): Toyota
Ingrese el nuevo kilometraje: 55000

Coches actualizados:
Marca: Toyota, Modelo: Corolla, Año: 2018, Kilometraje: 55000, EnVenta: true
Marca: Ford, Modelo: Mustang, Año: 2020, Kilometraje: 20000, EnVenta: false