Exercício: os três maiores valores em ordem crescente

Oi turma, tudo bem com vocês? Vamos a outro exercício que vai buscar o treino do uso dos comandos condicionais (Se e Senão). Também podemos utilizar um laço para nos ajudar. Borá Lá!
Faça um programa que solicite ao usuário digitar quatro números inteiros. O programa deverá mostrar na tela os 3 (três) maiores valores em ordem crescente!
Exemplo para teste
Caso o usuário informar os números 23, 16, 42 e 35 deverá ser mostrado na tela a mensagem “Os três maiores números em ordem crescente: 23, 35, 42”.
Adicionalmente podemos mostrar o número descartado: “Descarte: 16”
Resposta em Portugol – Com Portugol Studio
Resposta em Pascal
(*
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
*)
program TresMaioresNumeros;
var
num1, num2, num3, num4: Integer;
numeros: array[1..4] of Integer;
i, j, aux: Integer;
begin
Write('Digite o primeiro número: ');
ReadLn(num1);
Write('Digite o segundo número: ');
ReadLn(num2);
Write('Digite o terceiro número: ');
ReadLn(num3);
Write('Digite o quarto número: ');
ReadLn(num4);
numeros[1] := num1;
numeros[2] := num2;
numeros[3] := num3;
numeros[4] := num4;
for i := 1 to 3 do
begin
for j := 1 to 4 - i do
begin
if numeros[j] > numeros[j + 1] then
begin
aux := numeros[j];
numeros[j] := numeros[j + 1];
numeros[j + 1] := aux;
end;
end;
end;
Write('Os três maiores números em ordem crescente: ');
for i := 2 to 4 do
begin
Write(numeros[i], ' ');
end;
WriteLn;
Write('Descarte: ', numeros[1]);
WriteLn;
end.
Explicação
- O programa define as variáveis
num1,num2,num3,num4emenorcomo do tipo inteiro. - É declarado um array chamado
numeroscom tamanho 4 para armazenar os números fornecidos pelo usuário. - O programa solicita ao usuário que digite os quatro números.
- Os valores
num1,num2,num3enum4são atribuídos às posições correspondentes do arraynumeros. - Em seguida, é utilizado um loop
foraninhado para ordenar os elementos do arraynumerosem ordem crescente. O algoritmo de ordenação usado é o Bubble Sort. - O programa exibe na tela os três maiores números em ordem crescente, percorrendo o array a partir da posição 2 até a posição 4.
- Por fim, o programa exibe o valor descartado, que é o menor número do array (vetor).
Resposta em C++
/*
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
*/
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int num1, num2, num3, num4;
cout << "Digite o primeiro número: ";
cin >> num1;
cout << "Digite o segundo número: ";
cin >> num2;
cout << "Digite o terceiro número: ";
cin >> num3;
cout << "Digite o quarto número: ";
cin >> num4;
int menor;
menor = min(num1, num2);
menor = min(num1, num3);
menor = min(num1, num4);
int numeros[] = {num1, num2, num3, num4};
int tamanho = sizeof(numeros) / sizeof(numeros[0]);
sort(numeros, numeros + tamanho);
cout << "Os três maiores números em ordem crescente: ";
for (int i = tamanho - 3; i < tamanho; i++) {
cout << numeros[i] << " ";
}
cout << endl << "Descarte: " << menor;
cout << endl;
return 0;
}
Resposta em Python
'''
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
'''
num1 = int(input("Digite o primeiro número: "))
num2 = int(input("Digite o segundo número: "))
num3 = int(input("Digite o terceiro número: "))
num4 = int(input("Digite o quarto número: "))
menor = min(num1, num2, num3, num4)
numeros = [num1, num2, num3, num4]
numeros.sort()
print("Os três maiores números em ordem crescente:", numeros[1:])
print("Descarte:", menor)
Explicação do código em Python:
- O programa solicita ao usuário que digite quatro números inteiros: num1, num2, num3 e num4.
- Em seguida, usamos a função
min()para encontrar o menor valor entre os quatro números fornecidos. A variávelmenorarmazena esse valor. - Criamos uma lista chamada
numerosque contém os quatro números fornecidos pelo usuário. - Utilizamos o método
sort()para ordenar os números da lista em ordem crescente. - Em seguida, imprimimos na tela os três maiores números em ordem crescente usando a sintaxe de fatiamento da lista:
numeros[1:]. Isso significa que estamos imprimindo os elementos da lista a partir do segundo elemento até o último. - Por fim, imprimimos o valor descartado, que é o menor número encontrado anteriormente.
Resposta em C#
/*
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
*/
using System;
class TresMaioresNumeros
{
static void Main()
{
int num1, num2, num3, num4;
int menor;
Console.Write("Digite o primeiro número: ");
num1 = int.Parse(Console.ReadLine());
Console.Write("Digite o segundo número: ");
num2 = int.Parse(Console.ReadLine());
Console.Write("Digite o terceiro número: ");
num3 = int.Parse(Console.ReadLine());
Console.Write("Digite o quarto número: ");
num4 = int.Parse(Console.ReadLine());
menor = Math.Min(num1, Math.Min(num2, Math.Min(num3, num4)));
int[] numeros = { num1, num2, num3, num4 };
Array.Sort(numeros);
Console.Write("Os três maiores números em ordem crescente: ");
for (int i = numeros.Length - 3; i < numeros.Length; i++)
{
Console.Write(numeros[i] + " ");
}
Console.WriteLine();
Console.WriteLine("Descarte: " + menor);
}
}
Resposta em Java
/*
Criado pelo professor Giovani Da Cruz
https://giovanidacruz.com.br
*/
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int num1, num2, num3, num4;
int menor;
Scanner scanner = new Scanner(System.in);
System.out.print("Digite o primeiro número: ");
num1 = scanner.nextInt();
System.out.print("Digite o segundo número: ");
num2 = scanner.nextInt();
System.out.print("Digite o terceiro número: ");
num3 = scanner.nextInt();
System.out.print("Digite o quarto número: ");
num4 = scanner.nextInt();
menor = Math.min(num1, Math.min(num2, Math.min(num3, num4)));
int[] numeros = { num1, num2, num3, num4 };
Arrays.sort(numeros);
System.out.print("Os três maiores números em ordem crescente: ");
for (int i = numeros.length - 3; i < numeros.length; i++) {
System.out.print(numeros[i] + " ");
}
System.out.println();
System.out.println("Descarte: " + menor);
}
}
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!