Teste 01 — Enunciado e Gabarito
Teste 01
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 — Ponto no plano cartesiano
No plano cartesiano, cada ponto é representado por um par ordenado (x, y). Faça um programa de Console C# que receba um ponto qualquer como entrada e indique se esse ponto está acima do eixo x, abaixo do eixo x ou sobre o eixo x.
Em seguida, continue a implementação: ao fim de cada verificação, o programa deve perguntar se o usuário deseja fazer uma nova consulta. Caso a resposta seja não, o programa encerra.
Exemplos
Entrada:
x = -3
y = 2
Saída:
Acima!
Entrada:
x = 6
y = -3
Saída:
Abaixo!
Para decidir se o ponto está acima ou abaixo do eixo x, o valor realmente relevante é
a coordenada y. O x continua sendo lido porque faz parte do ponto,
mas a classificação em relação ao eixo x depende apenas do sinal de y.
string resposta = "S";
while (resposta == "S" || resposta == "SIM")
{
Console.Write("x: ");
int x = Convert.ToInt32(Console.ReadLine());
Console.Write("y: ");
int y = Convert.ToInt32(Console.ReadLine());
if (y > 0)
{
Console.WriteLine("Acima!");
}
else if (y < 0)
{
Console.WriteLine("Abaixo!");
}
else
{
Console.WriteLine("No eixo x!");
}
Console.Write("Deseja continuar? ");
resposta = Console.ReadLine();
}
Exercício 02 — Doação de sangue
A doação de sangue segue critérios básicos de elegibilidade. Considere as regras:
- A pessoa deve ter entre 16 e 69 anos, inclusive.
- A pessoa deve pesar no mínimo 50 kg.
Implemente um programa de Console em C# que leia a idade e o peso e informe na tela "Pode doar sangue" ou "Não pode doar sangue".
Exemplos
Entrada:
20
60
Saída:
Pode doar sangue
Entrada:
30
45
Saída:
Não pode doar sangue
Console.Write("Idade: ");
int idade = Convert.ToInt32(Console.ReadLine());
Console.Write("Peso: ");
double peso = Convert.ToDouble(Console.ReadLine());
if (idade >= 16 && idade <= 69 && peso >= 50)
{
Console.WriteLine("Pode doar sangue");
}
else
{
Console.WriteLine("Não pode doar sangue");
}
Exercício 03 — Interruptor e lâmpada
Considere uma lâmpada inicialmente apagada e um interruptor que alterna seu estado sempre que é pressionado. O usuário deve digitar sucessivamente 1 para apertar o interruptor e, ao final, digitar 0 para encerrar a execução.
O programa deve indicar, ao término, se a lâmpada está acesa ou apagada.
Exemplo
Entrada:
1
1
1
0
Saída:
Acesa
bool acesa = false;
while (true)
{
int entrada = Convert.ToInt32(Console.ReadLine());
if (entrada == 0)
{
break;
}
if (entrada == 1)
{
acesa = !acesa;
}
}
if (acesa)
{
Console.WriteLine("Acesa");
}
else
{
Console.WriteLine("Apagada");
}
Outra forma de pensar é contar quantas vezes o valor 1 foi digitado.
Cada 1 representa um aperto no interruptor. Se a quantidade de apertos
for ímpar, a lâmpada termina acesa. Se for par, termina
apagada.
int quantidadeDeApertos = 0;
while (true)
{
int entrada = Convert.ToInt32(Console.ReadLine());
if (entrada == 0)
{
break;
}
if (entrada == 1)
{
quantidadeDeApertos++;
}
}
if (quantidadeDeApertos % 2 != 0)
{
Console.WriteLine("Acesa");
}
else
{
Console.WriteLine("Apagada");
}
Questão 04 — Erros de compilação
Sublinhe as 4 linhas do código abaixo que apresentam erro de compilação e explique como corrigi-las.
double bas;
double alt;
Console.WriteLine("Entre com a base do triângulo:")
bas = Console.ReadLine();
Console.WriteLine("Entre com a altura do triângulo:");
alt = Convert.ToInt(Console.ReadLine());
Console.WriteLine('O valor da área do triângulo vale:');
Console.WriteLine(bas * alt / 2);
Console.ReadLine();
Console.WriteLine("Entre com a base do triângulo:")— falta o ponto e vírgula no final.bas = Console.ReadLine();—Console.ReadLine()devolve texto; é preciso converter paradouble.alt = Convert.ToInt(Console.ReadLine());— o método está incorreto; aqui o mais coerente é usarConvert.ToDouble(...).Console.WriteLine('O valor da área do triângulo vale:');— texto deve usar aspas duplas, não aspas simples.
double bas;
double alt;
Console.WriteLine("Entre com a base do triângulo:");
bas = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Entre com a altura do triângulo:");
alt = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("O valor da área do triângulo vale:");
Console.WriteLine(bas * alt / 2);
Console.ReadLine();
Questão 05 — Associação de tipos de dados
Assinale a alternativa que associa corretamente os tipos string, double,
char, int e bool com os valores interpretados em tempo de execução.
Alternativas
A) bianca, 3.0, "b", 0, false
B) "joao", 6, 'j', 7.0, 0
C) "flavio", 7.8, 'f', 4, 1
D) "claudio", 4.1, 'c', -3, false
A alternativa correta é a D:
"claudio", 4.1, 'c', -3, false.
stringusa texto entre aspas duplas.doubleaceita valor decimal, como4.1.charusa um único caractere entre aspas simples, como'c'.intaceita inteiro, positivo ou negativo, como-3.boolaceitatrueoufalse.
Questão 06 — O que será mostrado no Console?
Observe o código C# abaixo e indique o que será mostrado no Console.
É importante acompanhar os valores armazenados em a, b e c.
double a = 3;
double b = 4;
double c = 2;
a = ((b * b) - (c + a));
b = c + 2;
c *= -1;
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
a = 3, b = 4, c = 2
a = ((b * b) - (c + a)) = (16 - 5) = 11
b = c + 2 = 2 + 2 = 4
c *= -1 faz c = c * -1, então c = -2
11 4 -2


