Exercício: exibir valores reais conforme um código (a, b, c)

Oi turma, tudo bem com vocês? Vamos a um interessante exercício para aprimorar nossas habilidades com os testes condicionais alinhados (Se, Senão e Se). Este exercício também terá um menu simples. Segue abaixo o texto do problema:
Desenvolva um programa que solicite ao usuário informar um conjunto de 4 valores reais nomeados i, a, b, c.
O i é um valor inteiro e positivo que indica a forma como os números devem ser mostrados na tela.
Os valores a, b, c são valores reais que devem ser mostrados na tela na seguinte ordem:
- Se i=1 mostrar os 3 valores a, b, c em ordem crescente;
- Se i=2 mostrar os 3 valores a, b, c em ordem decrescente;
- Se i=3 mostrar os 3 valores de forma que o maior valor entre a, b, c fique entre os outros dois.
Dica para resolver o exercício:
Independente da ordem que os valores devem ser mostrados na tela, crie três variáveis auxiliares para armazenar o maior, o menor e o valor intermediário. Depois que estas variáveis já possuírem os valores corretos, basta escrever os valores de acordo com a ordem solicitada pelo usuário.
Resposta em Portugol com Portugol Studio
/*
*
* Criado pelo Professor Giovani Da Cruz
* https://giovanidacruz.com.br
*
*/
programa
{
funcao inicio()
{
inteiro i
real a, b, c
real menor, meio, maior
escreva("Informe o valor de i: ")
leia(i)
escreva("Informe o valor de a: ")
leia(a)
escreva("Informe o valor de b: ")
leia(b)
escreva("Informe o valor de c: ")
leia(c)
// Ordenar os valores em ordem crescente
se (a <= b e a <= c) {
menor = a
se (b <= c) {
meio = b
maior = c
} senao {
meio = c
maior = b
}
} senao se (b <= a e b <= c) {
menor = b
se (a <= c) {
meio = a
maior = c
} senao {
meio = c
maior = a
}
} senao {
menor = c
se (a <= b) {
meio = a
maior = b
} senao {
meio = b
maior = a
}
}
// Exibir os números na ordem especificada
se (i == 1) {
escreva( menor, ", ", meio, ", ", maior)
} senao se (i == 2) {
escreva( maior, ", ", meio, ", ", menor)
} senao se (i == 3) {
escreva( meio, ", ", maior, ", ", menor)
} senao {
escreva( "Valor inválido para i.")
}
}
}
Explicação
O código acima, tem como objetivo receber do usuário um conjunto de 4 valores: um valor inteiro i e três valores reais a, b e c. Em seguida, o programa realiza as seguintes etapas:
- Declaração das variáveis:
ido tipo inteiro ea,b,c,menor,meioemaiordo tipo real. - Solicita ao usuário que informe o valor de
ie lê o valor digitado. - Solicita ao usuário que informe o valor de
ae lê o valor digitado. - Solicita ao usuário que informe o valor de
be lê o valor digitado. - Solicita ao usuário que informe o valor de
ce lê o valor digitado. - Realiza a ordenação dos valores
a,becem ordem crescente, armazenando os valores emmenor,meioemaior. - Verifica o valor de
ipara exibir os números de acordo com a ordem especificada.- Se
ifor igual a 1, exibemenor,meioemaiorseparados por vírgula. - Se
ifor igual a 2, exibemaior,meioemenorseparados por vírgula. - Se
ifor igual a 3, exibemeio,maioremenorseparados por vírgula. - Caso contrário, exibe a mensagem “Valor inválido para i.”
- Se
O código utiliza a estrutura condicional “se… senao” para realizar a ordenação dos valores e exibir os números na ordem especificada. Ele fornece uma solução clara e estruturada para o problema proposto.
Resposta em Pascal
(*
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*)
program OrdenarNumeros;
var
i: integer;
a, b, c: real;
menor, meio, maior: real;
begin
writeln('Informe o valor de i: ');
readln(i);
writeln('Informe o valor de a: ');
readln(a);
writeln('Informe o valor de b: ');
readln(b);
writeln('Informe o valor de c: ');
readln(c);
// Ordenar os valores em ordem crescente
if (a <= b) and (a <= c) then
begin
menor := a;
if b <= c then
begin
meio := b;
maior := c;
end
else
begin
meio := c;
maior := b;
end;
end
else if (b <= a) and (b <= c) then
begin
menor := b;
if a <= c then
begin
meio := a;
maior := c;
end
else
begin
meio := c;
maior := a;
end;
end
else
begin
menor := c;
if a <= b then
begin
meio := a;
maior := b;
end
else
begin
meio := b;
maior := a;
end;
end;
// Exibir os números na ordem especificada
if i = 1 then
writeln(menor, ', ', meio, ', ', maior)
else if i = 2 then
writeln(maior, ', ', meio, ', ', menor)
else if i = 3 then
writeln(meio, ', ', maior, ', ', menor)
else
writeln('Valor inválido para i.');
end.
Nesse código em Pascal, foi realizada a adaptação do programa para ordenar números em ordem crescente. O programa solicita ao usuário os valores de i, a, b e c, e em seguida, ordena os valores em ordem crescente, armazenando em menor, meio e maior. Por fim, exibe os números na ordem especificada de acordo com o valor de i. Caso o valor de i não seja válido, exibe a mensagem “Valor inválido para i.”.
Resposta em C++
/********************************************************
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
***********************************************************/
#include <iostream>
using namespace std;
int main() {
int i;
float a, b, c;
float menor, meio, maior;
cout << "Informe o valor de i: ";
cin >> i;
cout << "Informe o valor de a: ";
cin >> a;
cout << "Informe o valor de b: ";
cin >> b;
cout << "Informe o valor de c: ";
cin >> c;
// Ordenar os valores em ordem crescente
if (a <= b && a <= c) {
menor = a;
if (b <= c) {
meio = b;
maior = c;
} else {
meio = c;
maior = b;
}
} else if (b <= a && b <= c) {
menor = b;
if (a <= c) {
meio = a;
maior = c;
} else {
meio = c;
maior = a;
}
} else {
menor = c;
if (a <= b) {
meio = a;
maior = b;
} else {
meio = b;
maior = a;
}
}
// Exibir os números na ordem especificada
if (i == 1) {
cout << menor << ", " << meio << ", " << maior;
} else if (i == 2) {
cout << maior << ", " << meio << ", " << menor;
} else if (i == 3) {
cout << meio << ", " << maior << ", " << menor;
} else {
cout << "Valor inválido para i.";
}
return 0;
}
Neste código, o usuário informa o valor de i e os três valores a, b e c. Em seguida, é feita uma verificação do valor de i para determinar qual ação deve ser executada. Dependendo do valor de i, os valores a, b e c são mostrados na tela em ordem crescente, decrescente ou com o maior valor entre os outros dois.
Resposta em Python
'''
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
'''
# Solicitar os valores do usuário
i = int(input("Informe o valor de i: "))
a = float(input("Informe o valor de a: "))
b = float(input("Informe o valor de b: "))
c = float(input("Informe o valor de c: "))
# Ordenar os valores em ordem crescente
if a <= b and a <= c:
menor = a
if b <= c:
meio = b
maior = c
else:
meio = c
maior = b
elif b <= a and b <= c:
menor = b
if a <= c:
meio = a
maior = c
else:
meio = c
maior = a
else:
menor = c
if a <= b:
meio = a
maior = b
else:
meio = b
maior = a
# Exibir os números na ordem especificada
if i == 1:
print(menor, ", ", meio, ", ", maior)
elif i == 2:
print(maior, ", ", meio, ", ", menor)
elif i == 3:
print(meio, ", ", maior, ", ", menor)
else:
print("Valor inválido para i.")
Nesse código em Python, foi realizada a adaptação do programa em C++ para Python. Ele realiza as mesmas etapas do código original:
- Solicita ao usuário os valores de
i,a,bec. - Ordena os valores em ordem crescente, armazenando em
menor,meioemaior. - Exibe os números na ordem especificada de acordo com o valor de
i. - Caso o valor de
inão seja válido, exibe a mensagem “Valor inválido para i.”.
Essa versão em Python possui uma sintaxe específica da linguagem, como a utilização da função input para receber os valores do usuário e a função print para exibir os resultados na tela.
Resposta em C#
/********************************************************
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
***********************************************************/
using System;
class Program
{
static void Main()
{
int i;
float a, b, c;
float menor, meio, maior;
Console.WriteLine("Informe o valor de i: ");
i = int.Parse(Console.ReadLine());
Console.WriteLine("Informe o valor de a: ");
a = float.Parse(Console.ReadLine());
Console.WriteLine("Informe o valor de b: ");
b = float.Parse(Console.ReadLine());
Console.WriteLine("Informe o valor de c: ");
c = float.Parse(Console.ReadLine());
// Ordenar os valores em ordem crescente
if (a <= b && a <= c)
{
menor = a;
if (b <= c)
{
meio = b;
maior = c;
}
else
{
meio = c;
maior = b;
}
}
else if (b <= a && b <= c)
{
menor = b;
if (a <= c)
{
meio = a;
maior = c;
}
else
{
meio = c;
maior = a;
}
}
else
{
menor = c;
if (a <= b)
{
meio = a;
maior = b;
}
else
{
meio = b;
maior = a;
}
}
// Exibir os números na ordem especificada
if (i == 1)
Console.WriteLine("{0}, {1}, {2}", menor, meio, maior);
else if (i == 2)
Console.WriteLine("{0}, {1}, {2}", maior, meio, menor);
else if (i == 3)
Console.WriteLine("{0}, {1}, {2}", meio, maior, menor);
else
Console.WriteLine("Valor inválido para i.");
}
}
Nesse código em C#, foi realizada a adaptação do programa para ordenar números em ordem crescente. O programa solicita ao usuário os valores de i, a, b e c, e em seguida, ordena os valores em ordem crescente, armazenando em menor, meio e maior. Por fim, exibe os números na ordem especificada de acordo com o valor de i. Caso o valor de i não seja válido, exibe a mensagem “Valor inválido para i.”.
Resposta em Java
/********************************************************
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
***********************************************************/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i;
float a, b, c;
float menor, meio, maior;
System.out.print("Informe o valor de i: ");
i = scanner.nextInt();
System.out.print("Informe o valor de a: ");
a = scanner.nextFloat();
System.out.print("Informe o valor de b: ");
b = scanner.nextFloat();
System.out.print("Informe o valor de c: ");
c = scanner.nextFloat();
// Ordenar os valores em ordem crescente
if (a <= b && a <= c) {
menor = a;
if (b <= c) {
meio = b;
maior = c;
} else {
meio = c;
maior = b;
}
} else if (b <= a && b <= c) {
menor = b;
if (a <= c) {
meio = a;
maior = c;
} else {
meio = c;
maior = a;
}
} else {
menor = c;
if (a <= b) {
meio = a;
maior = b;
} else {
meio = b;
maior = a;
}
}
// Exibir os números na ordem especificada
if (i == 1) {
System.out.println(menor + ", " + meio + ", " + maior);
} else if (i == 2) {
System.out.println(maior + ", " + meio + ", " + menor);
} else if (i == 3) {
System.out.println(meio + ", " + maior + ", " + menor);
} else {
System.out.println("Valor inválido para i.");
}
}
}
Nesse código em Java, o programa solicita ao usuário os valores de i, a, b e c utilizando a classe Scanner. Em seguida, os valores são ordenados em ordem crescente e armazenados nas variáveis menor, meio e maior. Por fim, os números são exibidos na ordem especificada de acordo com o valor de i. Caso o valor de i não seja válido, é exibida a mensagem “Valor inválido para i.”.
Beleza Pessoal?
Dúvidas ou sugestão de outras linguagens? Deixe o seu comentário!
Um abraço e até o próximo post. Valeu!