LP2

LP2

LP2

profile-pic

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)

Gabarito sugerido
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.

Gabarito sugerido
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.

Gabarito sugerido
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

Gabarito sugerido
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.

Gabarito sugerido
int indiceMaior = 0;

for (int i = 1; i < contagens.Length; i++)
{
    if (contagens[i] > contagens[indiceMaior])
    {
        indiceMaior = i;
    }
}

Console.WriteLine(epocas[indiceMaior]);
Observação

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.