Teste 02 — Enunciado e Gabarito
Teste 02
Colégio Pedro II — U. E. São Cristóvão III
Professor: João Luiz Lagôas
Coordenação: Flavio Costa
Exercício 01 — Torricelli em Windows Forms
Implemente o clique do botão btnCalcularVelocidade para calcular a velocidade final
usando a equação de Torricelli. Caso o valor dentro da raiz quadrada seja negativo, mostre
Erro em lblResultado.
Fórmula
v = Math.Sqrt(v0 * v0 + 2 * a * deltaS)
private void btnCalcularVelocidade_Click(object sender, EventArgs e)
{
double velocidadeInicial = Convert.ToDouble(txtVelocidadeInicial.Text);
double aceleracao = Convert.ToDouble(txtAceleracao.Text);
double deslocamento = Convert.ToDouble(txtDeslocamento.Text);
double valorDentroDaRaiz = (velocidadeInicial * velocidadeInicial) +
(2 * aceleracao * deslocamento);
if (valorDentroDaRaiz < 0)
{
lblResultado.Text = "Erro";
}
else
{
double velocidadeFinal = Math.Sqrt(valorDentroDaRaiz);
lblResultado.Text = velocidadeFinal.ToString();
}
}
Exercício 02a — Eventos por século
Receba um século no Console e imprima todos os eventos históricos que ocorreram naquele século. Se nenhum evento for encontrado, imprima a mensagem indicada no enunciado.
Console.Write("Século: ");
int seculo = Convert.ToInt32(Console.ReadLine());
int anoInicial = ((seculo - 1) * 100) + 1;
int anoFinal = seculo * 100;
bool encontrou = false;
for (int i = 0; i < anos.Length; i++)
{
if (anos[i] >= anoInicial && anos[i] <= anoFinal)
{
Console.WriteLine(anos[i] + " - " + eventos[i]);
encontrou = true;
}
}
if (!encontrou)
{
Console.WriteLine("Nenhum evento encontrado para este século.");
}
Exercício 02b — Evento mais antigo
Percorra todo o vetor para encontrar o menor ano e, ao final, imprima o ano e o evento correspondente.
int indiceMaisAntigo = 0;
for (int i = 1; i < anos.Length; i++)
{
if (anos[i] < anos[indiceMaisAntigo])
{
indiceMaisAntigo = i;
}
}
Console.WriteLine(anos[indiceMaisAntigo] + " - " + eventos[indiceMaisAntigo]);
Exercício 02c — Contagem por época histórica
Conte a quantidade de eventos por época histórica. A contagem deve ser feita obrigatoriamente em um terceiro vetor.
Épocas históricas
Idade Antiga: até 476
Idade Média: 477 até 1453
Idade Moderna: 1454 até 1789
Idade Contemporânea: 1790 em diante
string[] epocas = {
"Idade Antiga",
"Idade Média",
"Idade Moderna",
"Idade Contemporânea"
};
int[] contagens = new int[4];
for (int i = 0; i < anos.Length; i++)
{
if (anos[i] <= 476)
{
contagens[0]++;
}
else if (anos[i] <= 1453)
{
contagens[1]++;
}
else if (anos[i] <= 1789)
{
contagens[2]++;
}
else
{
contagens[3]++;
}
}
for (int i = 0; i < epocas.Length; i++)
{
Console.WriteLine(epocas[i] + ": " + contagens[i] + " evento(s)");
}
Exercício 02d — Época com mais eventos
Usando o vetor de contagens do item anterior, imprima a época com a maior quantidade de eventos. Em caso de empate, mantenha a primeira época encontrada.
int indiceMaior = 0;
for (int i = 1; i < contagens.Length; i++)
{
if (contagens[i] > contagens[indiceMaior])
{
indiceMaior = i;
}
}
Console.WriteLine(epocas[indiceMaior]);
Como a comparação usa apenas >, um empate não troca o índice salvo.
Assim, a primeira época com a maior quantidade permanece como resposta.


