Ejercicios de Programación: Vectores, Estructuras de Control y Funciones

Clasificado en Informática

Escrito el en español con un tamaño de 5,12 KB

Problema 1: Búsqueda de un Elemento en un Vector

Enunciado: Lea 10 números enteros y almacénelos en un vector llamado tab. Lea un número entero cualquiera desde el teclado. Calcule e imprima cuántas veces se encuentra almacenado ese número dentro del vector.

1. ADP (Análisis y Diseño del Problema)

  • Entrada: 10 números (num), tab[10], num2
  • Proceso:
    • Repetir 10 veces (i) → leer y cargar vector (tab).
    • Leer num2.
    • Repetir 10 veces (i) → si tab[i] == num2 → contar veces (totveces).
  • Salida: num2, totveces

Algoritmo Problema 1

Algoritmo BuscarElemento {
  // declarativas
  entero tab[10];
  entero num, num2, i, totveces;
  totveces = 0;

  // cargar el vector
  para (i = 0; i <= 9; i = i + 1) {
    imprimir("Ingrese un número: ");
    leer(num);
    tab[i] = num;
  }

  // leer el número a buscar
  imprimir("Ingrese el número a buscar: ");
  leer(num2);

  // contar coincidencias
  para (i = 0; i <= 9; i = i + 1) {
    si (tab[i] == num2) {
      totveces = totveces + 1;
    }
  }

  imprimir("El número ", num2, " se repite ", totveces, " veces");
}

Problema 2: Contar Números entre 10 y 50

Enunciado: Elabore un algoritmo que solicite 20 números enteros y determine cuántos están comprendidos entre el rango de 10 y 50.

1. ADP

  • Entrada: 20 números enteros (num)
  • Proceso: Repetir 20 veces (i) → leer num → si (num >= 10 y num <= 50) → contar (cont)
  • Salida: cont

Algoritmo Problema 2

Algoritmo ContarRango {
  // declarativas
  entero num, i, cont;
  cont = 0;

  // bloque de instrucciones
  para (i = 1; i <= 20; i = i + 1) {
    imprimir("Ingrese un número: ");
    leer(num);
    si ((num >= 10) y (num <= 50)) {
      cont = cont + 1;
    }
  }

  imprimir("Cantidad de números entre 10 y 50: ", cont);
}

Problema 3: Sistema de Ventas Viva Airlines

Reglas del Negocio (extraídas del enunciado):

  • $25.00 por km, hasta los primeros 1000 km.
  • Sobre los 1000 km, el km adicional cuesta $15.00.
  • Se suma siempre un impuesto de gasolina de $150.00.
  • No se pueden vender más de 500 pasajes → si se llega al límite, se muestra un mensaje de disculpa y termina el programa.
  • El cálculo del pasaje y el promedio se implementan mediante funciones.

1. ADP

  • Entrada: nombre (cadena), km (entero), resp (carácter)
  • Proceso: Repetir mientras (resp == 's' o resp == 'S') y (cont < 500):
    • Leer nombre y km.
    • Calcular pasaje = calcularPasaje(km).
    • Acumular totalVentas.
    • Si km > 1000, contar (contar15).
    • Incrementar cont.
    Al salir: calcular promedio = calcularPromedio(totalVentas, cont).
  • Salida: nombre y pasaje (por cliente), totalVentas, contar15, promedio

Algoritmo Problema 3

Parte 1

Algoritmo VivaAirlines {
  // declarativas
  cadena nombre;
  entero km, cont, contar15;
  flotante pasaje, totalVentas, promedio;
  carácter resp;

  cont = 0;
  contar15 = 0;
  totalVentas = 0;
  resp = 's';

  imprimir("Aerolínea Viva Airlines");
  imprimir("Proceso: Cálculo del precio de pasajes vendidos");

  mientras ((resp == 's' o resp == 'S') y (cont < 500)) {
    imprimir("Ingrese el nombre del viajero: ");
    leer(nombre);
    imprimir("Ingrese los km de vuelo: ");
    leer(km);

    pasaje = calcularPasaje(km); // llamada a la función
    imprimir("Viajero: ", nombre, " - Valor del pasaje: $", pasaje);
    totalVentas = totalVentas + pasaje;

Parte 2

    si (km > 1000) {
      contar15 = contar15 + 1;
    }
    cont = cont + 1;

    si (cont < 500) {
      imprimir("¿Desea vender otro pasaje? (s/n): ");
      leer(resp);
    }
  }

  si (cont == 500) {
    imprimir("Lo sentimos, se alcanzó el límite máximo de 500 pasajes vendidos.");
    imprimir("El programa finaliza su ejecución.");
  }

  promedio = calcularPromedio(totalVentas, cont); // llamada a la función

  imprimir("----- Resumen de Ventas -----");
  imprimir("Total en concepto de pasajes vendidos: $", totalVentas);
  imprimir("Clientes que pagaron el km a $15.00: ", contar15);
  imprimir("Precio promedio de los boletos vendidos: $", promedio);
}

Parte 3

// FUNCIÓN 1: calcula el precio del pasaje según los km
flotante calcularPasaje(entero kilometros) {
  flotante valor;
  si (kilometros <= 1000) {
    valor = (kilometros * 25.00) + 150.00;
  } sino {
    valor = (1000 * 25.00) + ((kilometros - 1000) * 15.00) + 150.00;
  }
  retornar(valor);
}

// FUNCIÓN 2: calcula el promedio de los boletos vendidos
flotante calcularPromedio(flotante total, entero cantidad) {
  flotante prom;
  si (cantidad > 0) {
    prom = total / cantidad;
  } sino {
    prom = 0;
  }
  retornar(prom);
}

Entradas relacionadas: