Programando em C#
Um preparador físico deseja medir a capacidade física de um grupo de 30 atletas. Para tanto, ele mandou os atletas percorrerem 1500 metros e anotou o tempo gasto por cada um. Ele decidiu que os atletas com tempos abaixo da média do grupo deveriam ser submetidos a um programa de treinamento intensivo e os que estão acima da média a um programa de treinamento de manutenção apenas. Escreva um programa que auxilie o preparador físico a determinar, imprimindo, quais atletas estão abaixo e acima da média e quais o mais bem e o mais mal preparados.
Abordagem top-down
Função principal do programa (“sistema”):
Auxiliar um preparador físico a determinar, imprimindo, quais atletas estão abaixo e acima da média e quais o mais bem e o mais mal preparados em um grupo de trinta atletas.
Primeiro refinamento: 1. Ler os dados: nome e tempo de cada atleta; 2. Calcular a média dos tempos; 3. Determinar o mais bem e o mais mal preparados; 4. Verificar, imprimindo, quem está acima e abaixo da média.
Dado o problema, vamos utilizar um vetor para armazenar o nome de cada atleta e um outro para os tempos. Como o problema é bastante simples, já podemos escrever o segundo refinamento em linguagem algorítmica.
Segundo refinamento: // 1. Ler os dados: nome e tempo de cada atleta; para i = 0 até MAX_ATLETAS - 1 faça leia( nomesAtletas[i], temposAtletas[i] ); somaTempos = somaTempos + temposAtletas[i]; fim para
// 2. Calcular a média dos tempos; somaTempos = 0.0; para i = 0 até MAX_ATLETAS - 1 faça somaTempos = somaTempos + temposAtletas[i]; fim para
média somaTempos / MAX_ATLETAS;
// 3. Determinar o mais bem e o mais mal preparados; piorTempo = 0.0; // tempo em minutos!!! melhorTempo = 30.0; // NÚMERO MÁGICO!!! para i = 0 até MAX_ATLETAS - 1 faça se ( temposAtletas[i] < melhorTempo ) então melhorTempo = temposAtletas[i]; melhorCondição = i; se ( temposAtletas[i] > piorTempo )