Desta vez o aplicativo de notas e médias de alunos foi escrito no Notepad++ para ser interpretado com o Cygwin, uma espécie de emulador de terminal Linux. A escolha do editor de código fonte foi feita levando-se em consideração que o Cygwin não tem suporte direto para Unicode ou qualquer conjunto de caracteres a não ser os códigos de páginas do Windows – ver Wikipedia. Mesmo assim, não esqueça de configurar o Notepad++ através do menu “Editar > Conversão final de linha > Converter para formato Unix”.
- Design-time:
echo -n "Informe o numero de alunos: " read a echo -n "Informe o numero de notas: " read n declare -A nota for ((i=0;i<a;i++)) do sn=0 echo -n "Aluno: " read nome[i] for ((j=0;j<n;j++)) do echo -n "Nota: " read nota[$i,$j] sn=$((sn+nota[$i,$j])) done media[$i]=$((sn/n)) sm=$((sm+media[$i])) done echo -n -e "Aluno\t" for ((j=1;j<=a;j++)) do echo -n -e "Aluno"$j$"\t" done echo "Media" for ((i=0;i<a;i++)) do echo -n -e ${nome[i]}$"\t" for ((j=0;j<n;j++)) do echo -n -e ${nota[$i,$j]}$"\t" done echo ${media[$i]} done
- Runtime:
-
- Observações:
-
- O array bidimensional nota foi declarado como um array associativo – ver a quinta linha na listagem acima (declare -A nota).
- Expressões (operações com operandos e operadores) são envoltas em parênteses duplos: ((…)) e seus valores (resultados) são obtidos precedendo-as com o caractere cifrão: $((…)).
- Valores de variáveis são obtidos envolvendo-as com cifrão (e adicionalmente chaves): ${nome_da_variável}.
- O comando echo tem as opções -n (para evitar newline) e -e (para uso dos caracteres de escape, como \n e \t por exemplo).