Ansiedade e desenvolvimento
Neste dias tenho passado por situações onde tenho sido testado como desenvolvedor. O nervosismo, a ansiedade e a inexperiência tem me atrapalhado bastante.
Na primeira situação tive que escrever um programa (em papel) que lia arquivos de textos contento uma lista de alunos e suas notas. Às notas somava-se 0,5, porém a soma não poderia passar de 10. Depois os resultados eram escritos em um arquivo de saída.
Fiz um programa. Diante da situação fiz o mais simples possível com a leitura do arquivo sendo feito desviando a entrada padrão.
Protejam os olhos, o código é este:
A única coisa que está diferente do código acima para o que fiz no papel é que na linha 13 eu esqueci o ios::out. Este detalhe faz com que o programa seja inútil, pois não cria o arquivo de saída. Em casa, bem mais tranquilo, eu reescrevi o programa, o que rendeu um código bem melhor:
Em outra situação, tive que escrever uma função, também em papel, que recebesse uma word de 16 bits e retornasse o número de “1″ contidos na word. Não sabia o que significava word de 16 bits, logo não escrevi nada.
Assim que pude vi o que é a tal da word e em poucos minutos escrevi este programa:
Não sei se é isto o que foi pedido, mas pelo que entendi é sim.
Se alguém tiver alguma sugestão de melhoria dos códigos, por favor, faça nos comentários.
Uma melhoria trivial: if (nota > 10.0) nota = 10.0;
No conta, você pode utilizar operadores bit-a-bit pra fazer o cálculo mais rápido:
int conta(short inteiro) {
for (int i = 0; i > i) & 1) c++;
return c;
}
No conta, você pode utilizar operadores bit-a-bit pra fazer o cálculo mais rápido:
int conta(short inteiro) {
int c = 0;
for (int i = 0; i > 16; ++i) if ((inteiro>> i) & 1) c++;
return c;
}
(Saiu cortado no post acima)
O código do numero de 1′s em uma palavra (lembra de arquitetura e organização de computadores?) é igual ao da leitura de notas…
Valeu, Murilo.
Na primeira correção fiquei pasmo. Como não vi isso?!
A segunda não funcionou, deve ser algum detalhe. Vou tentar corrigir e depois posto aqui.
MC, eu estava editando a página.
Agora tá correto.
Agora sim, código corrigido e melhorado.
Como não recordo se o que me foi pedido foi o número de bits 1 ou o número de números 1 em um número, deixei as duas funções, uma para contar números e outra para contar bits.
Lucas deve ser o i > 16 que deveria ser < eheheheh :)
Sim, era isto mesmo. Só modifiquei o código que tu sugeriu para deixar um pouco mais legível.