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.

(9) comentários

muriloJuly 29th, 2011 at 00:38

Uma melhoria trivial: if (nota > 10.0) nota = 10.0;

muriloJuly 29th, 2011 at 00:42

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;
}

muriloJuly 29th, 2011 at 00:43

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)

MCJuly 29th, 2011 at 11:26

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…

Lucas ArbizaJuly 29th, 2011 at 11:50

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.

Lucas ArbizaJuly 29th, 2011 at 11:50

MC, eu estava editando a página.
Agora tá correto.

Lucas ArbizaJuly 31st, 2011 at 13:49

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.

muriloJuly 31st, 2011 at 14:11

Lucas deve ser o i > 16 que deveria ser < eheheheh :)

Lucas ArbizaJuly 31st, 2011 at 14:16

Sim, era isto mesmo. Só modifiquei o código que tu sugeriu para deixar um pouco mais legível.

Comente este post.

Seu comentário:

*obrigatório/required