Mudanças entre as edições de "Programação para Redes de Computadores (técnico) (diário 2012-1) - Prova 1"
Ir para navegação
Ir para pesquisar
Linha 26: | Linha 26: | ||
* A parcela média. | * A parcela média. | ||
* A quantidade de juro final pago. | * A quantidade de juro final pago. | ||
+ | |||
+ | ==Uma possível resposta== | ||
+ | <syntaxhighlight lang=bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # ${1} será o valor do empréstimo | ||
+ | # ${2} será a quantidade de parcelas | ||
+ | # ${3} será o valor do juro em número inteiro (%) | ||
+ | |||
+ | # Primeiro teste: se o programa tem os três valores para calcular | ||
+ | if [ "${3}" = "" ] | ||
+ | then | ||
+ | echo "Use: ${0} (empréstimo) (parcelas) (juro em %)" | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | # Segundo teste: se digitou a quantidade certa de parcelas: 1 a 12. | ||
+ | if [ "${2}" -lt "0" -o "${2}" -gt "12" ] | ||
+ | then | ||
+ | echo "O número de parcelas (${2}) está fora dos limites: 1 a 12." | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | parcelaSemJuro=$(echo "scale=2; ${1} / ${2}" | bc) | ||
+ | echo "Empréstimo de R$ ${1} em ${2} parcelas com juros a ${3}%." | ||
+ | echo "" | ||
+ | |||
+ | # 1o. mês | ||
+ | parcela=${parcelaSemJuro} | ||
+ | somatorio=${parcela} | ||
+ | echo "1o. mês: R$ ${parcela} (sem juros)." | ||
+ | |||
+ | # Outros meses (2 em diante) | ||
+ | for numParcela in $(seq 2 ${2}) | ||
+ | do | ||
+ | parcela=$(echo "scale=2; ${parcela} * (1 + ${3} / 100)" | bc) | ||
+ | somatorio=$(echo "scale=2; ${somatorio} + ${parcela}" | bc) | ||
+ | echo "${numParcela}o. mês: R$ ${parcela}." | ||
+ | done | ||
+ | |||
+ | # Escrever a parcela média | ||
+ | echo "" | ||
+ | echo "A parcela média é R$ $(echo "scale=2; ${somatorio} / ${2}" | bc)." | ||
+ | |||
+ | # Escrever o juro pago ao final de todas as prestações | ||
+ | echo "O juro pago é de R$ $(echo "scale=2; ${somatorio} - ${1}" | bc)." | ||
+ | echo "" | ||
+ | </syntaxhighlight> | ||
=Questão 3= | =Questão 3= |
Edição das 19h40min de 10 de maio de 2012
Questão 1
Desenvolva um programa de computador que emita o seguinte relatório para todos os usuários. Considere, para os itens abaixo, seus arquivos pessoais no diretório /home:
- Nome do usuário.
- Quantidade de arquivos.
- Tamanho do espaço em disco ocupado.
Uma possível resposta
#!/bin/bash
cd /home
for usuario in $(find . -mindepth 1 -maxdepth 1 -type d | cut -c 3-)
do
echo -n "Usuário ${usuario}"
# Listar arquivos
echo -n " possui $(find ${usuario} 2> /dev/null| wc -l) arquivo(s)"
# Espaço em disco ocupado
echo " e de disco $(du -hc ${usuario} 2> /dev/null | tail -1 | cut -d t -f 1)"
done
Questão 2
Desenvolva um programa que calcula a parcela média de um investimento com juros compostos - até 12 parcelas. Informe:
- O valor de cada parcela sem juro.
- O valor de cada parcela acrescida de juro.
- A parcela média.
- A quantidade de juro final pago.
Uma possível resposta
#!/bin/bash
# ${1} será o valor do empréstimo
# ${2} será a quantidade de parcelas
# ${3} será o valor do juro em número inteiro (%)
# Primeiro teste: se o programa tem os três valores para calcular
if [ "${3}" = "" ]
then
echo "Use: ${0} (empréstimo) (parcelas) (juro em %)"
exit
fi
# Segundo teste: se digitou a quantidade certa de parcelas: 1 a 12.
if [ "${2}" -lt "0" -o "${2}" -gt "12" ]
then
echo "O número de parcelas (${2}) está fora dos limites: 1 a 12."
exit
fi
parcelaSemJuro=$(echo "scale=2; ${1} / ${2}" | bc)
echo "Empréstimo de R$ ${1} em ${2} parcelas com juros a ${3}%."
echo ""
# 1o. mês
parcela=${parcelaSemJuro}
somatorio=${parcela}
echo "1o. mês: R$ ${parcela} (sem juros)."
# Outros meses (2 em diante)
for numParcela in $(seq 2 ${2})
do
parcela=$(echo "scale=2; ${parcela} * (1 + ${3} / 100)" | bc)
somatorio=$(echo "scale=2; ${somatorio} + ${parcela}" | bc)
echo "${numParcela}o. mês: R$ ${parcela}."
done
# Escrever a parcela média
echo ""
echo "A parcela média é R$ $(echo "scale=2; ${somatorio} / ${2}" | bc)."
# Escrever o juro pago ao final de todas as prestações
echo "O juro pago é de R$ $(echo "scale=2; ${somatorio} - ${1}" | bc)."
echo ""
Questão 3
Configure automaticamente o domínio DNS, e seu reverso, de acordo com as seguintes informações:
- Domínio: prc.com.br
- Servidor DHCP: 192.168.1.2
- Servidor Web: 192.168.1.1
- Servidor DNS: 192.168.1.2
- Servidor SSH: 192.168.1.1
Obs.: cada servidor pode ter, no máximo, 1 registro A e vários apelidos (CNAME).
Questão 4
Ainda sobre o problema da questão anterior, teste o servidor e mostre os resultados de sucesso e fracasso.