← problemas

W1.BOSS: Ficha segura modular

- **category**: `opcional-maestria` ### statement ```markdown ## Objetivo ¡Bienvenido al desafío cumbre de Mundo 1! La infraestructura crítica del reactor de investigación necesita generar fichas de seguridad encriptadas y calibradas. Para superar este reto debes aplicar **abstracción modular**: crea tu propia función en **Mis funciones** llamada \`generarFichaSegura(codigo, x, y, valA, valB)\` que empaqueta todas las herramientas matemáticas y de texto aprendidas. El flujo principal del programa solo debe leer los datos, delegar la construcción de la ficha a tu función e imprimir el resultado. ## La función modular: \`generarFichaSegura\` Tu función debe recibir 5 parámetros: - \`codigo\` (texto): Código de protocolo sin normalizar (ej. \`"SEC#9041#A"\`). - \`x\` (número): Coordenada de posición $X$. - \`y\` (número): Coordenada de posición $Y$. - \`valA\` (número): Lectura del sensor primario de contención. - \`valB\` (número): Lectura del sensor de referencia de contención. Dentro de \`generarFichaSegura\`, calcula los siguientes elementos: 1. **Identificador limpio**: Sustituye todos los delimitadores \`"#"\` por guiones \`"-"\` usando \`reemplazar\`. 2. **Sector**: Extrae los primeros 3 caracteres de \`codigo\` usando \`subtexto\` (posición \`0\`, longitud \`3\`). 3. **Longitud**: Obtén la cantidad total de caracteres del \`codigo\` original usando \`longitud\`. 4. **Radio de seguridad**: Calcula la distancia radial redondeada al entero más cercano usando \`redondear(raiz(potencia(x, 2) + potencia(y, 2)))\`. 5. **Nivel de riesgo**: Mide la discrepancia absoluta entre los sensores con \`abs(valA - valB)\`, divide el resultado entre \`10\`, y aplica la función \`techo\` para determinar el escalón entero de contención: \`techo(abs(valA - valB) / 10)\`. La función debe retornar exactamente la cadena con la ficha armada: \`"FICHA: " + codigo_limpio + " | SECTOR: " + sector + " | LONGITUD: " + longitud + " | RADIO: " + radio + " | NIVEL: " + nivel\` ## Flujo Principal En el programa principal (\`main\`): 1. Lee las 5 líneas de la entrada estándar (\`stdin\`): \`codigo\`, \`x\`, \`y\`, \`valA\`, \`valB\`. 2. Invoca mediante el bloque **Llamar función** a \`generarFichaSegura\` pasándole los 5 argumentos. 3. Escribe en la salida estándar (\`stdout\`) la ficha devuelta por la función. ## Ejemplo **Entrada:** \`\`\` SEC#9041#A 3 4 42 18 \`\`\` **Salida:** \`\`\` FICHA: SEC-9041-A | SECTOR: SEC | LONGITUD: 10 | RADIO: 5 | NIVEL: 3 \`\`\` *(Explicación: Desviación $|42 - 18| = 24$. $24 / 10 = 2.4$. \`techo(2.4)\` otorga Nivel 3. Radio $\sqrt{3^2 + 4^2} = 5$).* ``` ### cases

Ejemplos

Entrada
SEC#9041#A
3
4
42
18
Salida
FICHA: SEC-9041-A | SECTOR: SEC | LONGITUD: 10 | RADIO: 5 | NIVEL: 3