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.
- 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);
}