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