Pseudocodigo - Introducción Al Uso De Librerias
La estrategia implementada para resolver el algoritmo fue la utilización de una estructura de Secuencia de “Cambios de Turnos”.
El Usuario ingresara los datos correspondientes a un abonado dentro de un turno, hasta que decida cambiar de turno y seguirá haciéndolo hasta que no existan más turnos disponibles en el día. Además se le brinda la opción de poder dejar de cargar datosy salir del programa en caso de que no posea más datos para seguir ingresando.
La carga y validación del abonado es realizada en bloque. Si se identifica un error en uno de los miembros de la estructura abonado, se desechara el bloque completo y se pedirá el reingreso del mismo.
Una vez validado el abonado, se tratara el mismo. El tratamiento del abonado tiene como objetivo determinar lacantidad de minutos excedidos dentro de su plan de abono y el total a pagar por dicho consumo.
Una vez obtenida la información requerida, sera impresa en un archivo de destino, en formato de lista. Antes de continuar con la solicitud de ingreso de un nuevo abonado, se le preguntara al usuario si existen más datos para ingresar y de no existir el programa terminara.
Tipos
T_Abonado = Registronom: Cadena de 20 Caracteres
dom: Cadena de 25 Carecteres
plan: Caracter
consumo: Entero
cel: Entero
Fin
T_Plan = Registro
costo: Entero
min_libres: Entero
costo_exc: Real
Fin
Acción Principal
Accion Tratar_Abonado Es
Variables
plan: T_Plan
abonado: T_Abonado
cont_turno: Entero
cant_min: Entero
min_exc: Entero
total_a_pagar: Realturno_actual: Cadena
Inicio
cont_turno <- 1
Asignar_turno (cont_turno, turno_actual)
Mientras cont_turno < 4 Y Hay_Datos Hacer
Ingresar_abonado_valido (abonado)
Si abonado.cel != 0 Entonces
Inicializar_plan (plan,abonado.plan)
cant_min Transformar_Consumo_Minutos (abonado.consumo)
Monto_a_abonar (plan,cant_min,min_exc,total_a_pagar)
Escribir (abonado.nom,"",abonado.dom," ",plan.min_libres," ",min_exc," $",total_a_pagar)
sino
Si cont_turno = 3 Entonces
Si NO Hay_Datos Entonces
cont_turno cont_turno + 1
FSi
sino
cont_turno cont_turno + 1
Asignar_turno (cont_turno, turno_actual)
FSi
FSi
FMientras
Mostrar ("Está saliendo del programa. Adiós")
Fin
Funciones y ProcedimientosProcedimiento Asignar_turno (Valor cont: Entero, Ref turno: Cadena de Caracteres)
Inicio
Segun cont Hacer
1: turno 'Mañana'
2: turno 'Tarde'
3: turno 'Noche'
FSegun
Escribir ("Turno: ",turno)
Escribir ("Nombre Abonado Dirección Minutos Libres Minutos Excedidos Monto Total a Abonar")
Fin
FProcedimiento
Procedimiento Ingresar_abonado_valido (Ref abon: T_Abonado)
InicioIngresar_abonado (abon)
Mientras NO abonado_valido (abon) Hacer
Mostrar ("Los datos ingresados del abonado son incorrectos, reingrese: ")
Ingresar_abonado (abon)
FMientras
Fin
FProcedimiento
Procedimiento Ingresar_abonado (Ref abon: T_Abonado)
Inicio
Mostrar ("Ingrese el número de celular del abonado: ")
Ingresar (abon.cel)
Si abon.cel != 0 Entonces
Mostrar ("Ingrese elnombre del abonado: ")
Ingresar (abon.nom)
Mostrar ("Ingrese el domicilio del abonado: ")
Ingresar (abon.dom)
Mostrar ("Ingrese el tipo de plan del abonado A/B/C/D/E: ")
Ingresar (abon.plan)
abon.plan MAYUSCULA (abon.plan)
Mostrar ("Ingrese la cantidad de tiempo consumido por el usuario HHMM: ")
Ingresar (abon.consumo)
FSi
Fin
FProcedimiento
Funcion abonado_valido(Ref abon: T_Abonado):Booleano
Variables
es_valido: Booleano
Inicio
es_valido Verdadero
Si (abon->cel != 0 && abon.cel < 100000000) O abon.cel > 999999999 Entonces
es_valido Falso
Si abon.cel != 0 entonces
Si es_valido Y (abon.plan != 'A' Y abon.plan != 'B' Y abon.plan != 'C' Y abon.plan != 'D' Y abon.plan != 'E') Entonces...
Regístrate para leer el documento completo.