Ejercicio Parte I. Script para gestión del Impuesto Predial · Sistemes Operatius I UB 2020
Tema: Programación de scripts en Bash · Del examen Examen Final Diciembre 2020: Impuesto Predial y Administración del Sistema (2020)
Enunciado
1 Parte I. Script para gestión del Impuesto Predial
La administración municipal requiere automatizar la liquidación del impuesto predial. Se dispone de un archivo de entrada con registros separados por punto y coma (;) denominado ImpoPredial, con los siguientes campos por línea:
Matrícula inmobiliaria;nombre dueño;Dirección Predio;Valor básico impuesto;Valor bomberos;Valor arborización;Descuento Reglas de cálculo:
Valor neto impuesto a pagar = Impuesto básico + Bomberos + Arborización − Descuento
El campo Descuento contiene el valor SI (aplica descuento) o NO (no aplica descuento).
Si aplica descuento ( SI), este corresponde al 10% del valor del impuesto básico; en caso contrario, es 0.
El programa interactivo debe mostrar el siguiente menú de opciones:
MUNICIPIO XYZ
IMPUESTO PREDIAL 2020
OPCIONES:
1. Listar predial con descuento
2. Listar predial sin descuento
3. Terminar
Digite la opción deseada: Según la selección del usuario, el sistema imprimirá la tabla de registros correspondientes con el siguiente encabezado y formato tabular:
Matricula · Dirección Predio · Nombre Dueño Predio · Imp Básico · Bombero · Arborización · Descuento · Total Pagar
xxxxxxxxx · xxxxxxxxxxxxx · xxxxxxxxxxxxxxxxxxx · 999999999 · 9999999 · 9999999999 · 9999999 · 99999999
Los datos contenidos en el fichero ImpoPredial son:
11111;Edgan Perez;Cra 9 54 - 15;100000;5000;10000;SI
22222;Olga Valdez;Calle 14 10 - 34;300000;20000;15000;NO
33333;Lenith Quintero;Calle 12 20 - 38;400000;60000;15000;SI
44444;Johanna Diaz;Diagonal 1 13 - 20;250000;15000;12000;SI
55555;Dreinis Gomez;Avenida 15 20 - 98; 328000;28000;18000;NO Escriba un script en Bash (o combinando Bash con AWK) que implemente la lógica descrita y procese el archivo según la opción ingresada.

Solución
Según los criterios oficiales de corrección
Escriba un script en Bash (o combinando Bash con AWK) que implemente la lógica descrita y procese el archivo según la opción ingresada.
Solución: ```bash #!/bin/bash ARCHIVO="ImpoPredial" if [ ! -f "$ARCHIVO" ]; then echo "Error: No se encuentra el archivo $ARCHIVO" exit 1 fi opcion=0 while [ "$opcion" -ne 3 ]; do echo "=====================================" echo " MUNICIPIO XYZ" echo " IMPUESTO PREDIAL 2020" echo "=====================================" echo "OPCIONES:" echo " 1. Listar predial con descuento" echo " 2. Listar predial sin descuento" echo " 3. Terminar" read -p "Digite la opción deseada: " opcion case $opcion in 1|2) if [ "$opcion" -eq 1 ]; then filtro="SI" echo -e "\n--- PREDinstruction: PREDIO CON DESCUENTO ---" else filtro="NO" echo -e "\n--- PREDIOS SIN DESCUENTO ---" fi awk -F';' -v f="$filtro" ' BEGIN { printf "%-10s %-25s %-20s %12s %10s %14s %11s %13s\n", "Matricula", "Direccion Predio", "Nombre Dueño Predio", "Imp Basico", "Bombero", "Arborizacion", "Descuento", "Total Pagar"; print "------------------------------------------------------------------------------------------------------------------"; } { # Campos: 1=Matricula, 2=Nombre, 3=Direccion, 4=Basico, 5=Bomberos, 6=Arborizacion, 7=Aplica gsub(/^[ \t]+|[ \t]+7); if ($7 == f) { basico = $4 + 0; bombero = $5 + 0; arbor = $6 + 0; if ($7 == "SI") { desc = basico * 0.10; } else { desc = 0; } total = basico + bombero + arbor - desc; printf "%-10s %-25s %-20s %12.0f %10.0f %14.0f %11.0f %13.0f\n", 3, $2, basico, bombero, arbor, desc, total; } }' "$ARCHIVO" echo "" ;; 3) echo "Finalizando la ejecución del programa." ;; *) echo "Opción no válida. Intente de nuevo." ;; esac done ```
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.
Ejercicio I. Procesamiento de archivo de Premios… · Juny 2020 ›