Challenge 01 - Calcula la mitjana d’una llista de nombres enters
En aquest repte, es demana calcular la mitjana d’una llista de nombres enters utilitzant Bash. Heu de considerar les següents restriccions:
- Tots els valors s’entren per la entrada estàndard (stdin).
- La primera línia conté un enter, indicant el nombre de nombres enters que es volen calcular.
- Les següents
nlínies contenen un enter cada una. - La sortida ha de mostrar la mitjana dels
nnombres enters, arrodonida a tres decimals. - La mitjana s’ha de mostrar sempre amb tres decimals, encara que siguin redundants (p. ex., 0.000 en lloc de 0).
- La sortida ha de ser mostrada per la sortida estàndard (stdout).
- S’ha de verificar que el nombre d’enters estiguin entre 1 i 500. En cas contrari, no es mostrarà cap sortida.
- S’ha de verificar que els enters estiguin entre -10000 i 10000. En cas contrari, no es mostrarà cap sortida.
Per crear la vostra solució, heu de crear un fitxer anomenat ch1.sh amb el següent contingut:
#!/bin/bash
// Your code herePer validar la vostra solució, podeu utilitzar el següent test:
!#/bin/bash
declare -a inputs=("input1" "input2" "input3" "input4" "input5")
declare -a expecteds=("5.000" "5175.240" "4696.947" "" "")
for i in ${!inputs[@]}; do
output=$(bash ch1.sh < ${inputs[$i]})
if [ "$output" == "${expecteds[$i]}" ]; then
echo "Test $i passed"
else
echo "Test $i failed"
echo "Expected: ${expecteds[$i]}"
echo "Got: $output"
fi
doneEls inputs són fitxers de text que us podeu baixar: