Exercício: o maior e o menor de cinco números (em ordem)

Fala galera da programação, tudo beleza?
🚀 Hoje vamos desenvolver um programa simples em diversas linguagens de programação para encontrar o maior e o menor número dentre cinco fornecidos pelo usuário! 🤓💻
Dicas para o exercício
Utilizar variáveis adicionais para armazenar o maior e para armazenar o menor.
Comparar cada número lido com cada uma dessas variáveis adicionais.
Lembre-se de atribuir um valor inicial para as variáveis adicionais, que pode ser, por exemplo, o primeiro número lido.
O que podemos aprender neste exercício?
Este exercício em C++ nos ensina alguns conceitos importantes:
Uso de variáveis: Aprendemos como declarar e usar variáveis em C++, incluindo a atribuição de valores e a atualização dessas variáveis durante a execução do programa.
Estruturas de controle de fluxo: O uso do loop for nos permite iterar sobre um conjunto de números predefinido, enquanto as estruturas condicionais if e else if nos permitem comparar e atualizar variáveis com base em condições específicas.
Algoritmo de encontrar o maior e o menor número: Este exercício nos mostra uma maneira simples de encontrar o maior e o menor número em um conjunto de números fornecidos pelo usuário, usando variáveis adicionais para acompanhar esses valores durante a execução do programa.
Entrada e saída básicas: Aprendemos a usar cin para obter entrada do usuário e cout para exibir saída na tela.
Boas práticas de programação: O exercício também destaca a importância de usar variáveis descritivas e comentários claros para tornar o código mais compreensível e fácil de dar manutenção.
Vamos aos códigos!
Exemplo em C++
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
#include <iostream>
using namespace std;
int main() {
int numero, maior, menor;
// Lê o primeiro número e o considera tanto o maior quanto o menor
cout << "Digite o 1º número: ";
cin >> numero;
maior = numero;
menor = numero;
// Loop para ler os próximos 4 números e atualizar o maior e o menor
for (int i = 2; i <= 5; ++i) {
cout << "Digite o " << i << "º número: ";
cin >> numero;
if (numero > maior) {
maior = numero;
} else if (numero < menor) {
menor = numero;
}
}
// Mostra o maior e o menor número
cout << "O maior número é: " << maior << endl;
cout << "O menor número é: " << menor << endl;
return 0;
}
Este programa solicita ao usuário que insira 5 números e, à medida que os números são inseridos, verifica se são maiores ou menores do que os valores atuais armazenados nas variáveis maior e menor, atualizando-as conforme necessário. No final, imprime o maior e o menor número inserido.
A estratégia utilizada no programa foi a seguinte:
- Inicialização das variáveis: Começamos declarando três variáveis inteiras:
numero,maioremenor. A variávelnumeroserá usada para ler os números fornecidos pelo usuário, enquantomaioremenorserão usadas para armazenar o maior e o menor número, respectivamente. - Leitura do primeiro número: O programa solicita ao usuário que insira o primeiro número e armazena esse valor nas variáveis
maioremenor, pois, no início, esse número é o único e, portanto, o maior e o menor. - Loop para os próximos números: Utilizando um loop
for, o programa lê os próximos quatro números fornecidos pelo usuário. Começando do segundo número, até o quinto, ele compara cada número com os valores armazenados emmaioremenor. - Atualização de
maioremenor: Se o número lido for maior do que o valor atual demaior,maioré atualizado com esse número. Se o número lido for menor do que o valor atual demenor,menoré atualizado com esse número. - Exibição do resultado: Após a leitura de todos os números, o programa exibe o maior e o menor número lido.
Essa abordagem garante que, a cada iteração do loop, os valores de maior e menor são atualizados conforme necessário, resultando nos valores corretos no final da execução do programa.
Exemplo em C
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
#include <stdio.h>
int main() {
int numero, maior, menor, i;
// Lê o primeiro número e o considera tanto o maior quanto o menor
printf("Digite o 1º número: ");
scanf("%d", &numero);
maior = numero;
menor = numero;
// Loop para ler os próximos 4 números e atualizar o maior e o menor
for (i = 2; i <= 5; ++i) {
printf("Digite o %dº número: ", i);
scanf("%d", &numero);
if (numero > maior) {
maior = numero;
} else if (numero < menor) {
menor = numero;
}
}
// Mostra o maior e o menor número
printf("O maior número é: %d\n", maior);
printf("O menor número é: %d\n", menor);
return 0;
}
Este programa realiza exatamente as mesmas operações que o programa em C++ que escrevi anteriormente, mas utiliza a sintaxe da linguagem C. As diferenças principais incluem a troca de cout e cin por printf e scanf, respectivamente, e a remoção do namespace std. O restante da lógica permanece a mesma.
Exemplo em Pascal / Delphi / Lazarus
{
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
}
program EncontrarMaiorMenor;
var
numero, maior, menor, i: integer;
begin
// Lê o primeiro número e o considera tanto o maior quanto o menor
writeln('Digite o 1º número: ');
readln(numero);
maior := numero;
menor := numero;
// Loop para ler os próximos 4 números e atualizar o maior e o menor
for i := 2 to 5 do
begin
writeln('Digite o ', i, 'º número: ');
readln(numero);
if numero > maior then
maior := numero
else if numero < menor then
menor := numero;
end;
// Mostra o maior e o menor número
writeln('O maior número é: ', maior);
writeln('O menor número é: ', menor);
end.
Este programa em Pascal faz a mesma tarefa que os programas anteriores: lê 5 números do usuário, encontra o maior e o menor entre eles e os exibe na tela. A sintaxe em Pascal é um pouco diferente das outras linguagens, mas a lógica geral é a mesma.
Exemplo em Python
'''
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
'''
# Lê o primeiro número e o considera tanto o maior quanto o menor
numero = int(input("Digite o 1º número: "))
maior = numero
menor = numero
# Loop para ler os próximos 4 números e atualizar o maior e o menor
for i in range(2, 6):
numero = int(input("Digite o {}º número: ".format(i)))
if numero > maior:
maior = numero
elif numero < menor:
menor = numero
# Mostra o maior e o menor número
print("O maior número é:", maior)
print("O menor número é:", menor)
Este programa em Python realiza a mesma tarefa que os programas anteriores: lê 5 números do usuário, encontra o maior e o menor entre eles e os exibe na tela. A sintaxe em Python é mais simples e legível, o que torna o código mais fácil de entender.
Exemplo em C# / C Sharp
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
using System;
class Program
{
static void Main(string[] args)
{
int numero, maior, menor;
// Lê o primeiro número e o considera tanto o maior quanto o menor
Console.Write("Digite o 1º número: ");
numero = Convert.ToInt32(Console.ReadLine());
maior = numero;
menor = numero;
// Loop para ler os próximos 4 números e atualizar o maior e o menor
for (int i = 2; i <= 5; i++)
{
Console.Write("Digite o {0}º número: ", i);
numero = Convert.ToInt32(Console.ReadLine());
if (numero > maior)
{
maior = numero;
}
else if (numero < menor)
{
menor = numero;
}
}
// Mostra o maior e o menor número
Console.WriteLine("O maior número é: {0}", maior);
Console.WriteLine("O menor número é: {0}", menor);
}
}
Este programa em C# realiza a mesma tarefa que os programas anteriores: lê 5 números do usuário, encontra o maior e o menor entre eles e os exibe na tela. A sintaxe em C# é semelhante à de outras linguagens como Java e C++, mas com algumas diferenças na maneira como a entrada e saída são tratadas.
Exemplo 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 numero, maior, menor;
// Lê o primeiro número e o considera tanto o maior quanto o menor
System.out.print("Digite o 1º número: ");
numero = scanner.nextInt();
maior = numero;
menor = numero;
// Loop para ler os próximos 4 números e atualizar o maior e o menor
for (int i = 2; i <= 5; i++) {
System.out.print("Digite o " + i + "º número: ");
numero = scanner.nextInt();
if (numero > maior) {
maior = numero;
} else if (numero < menor) {
menor = numero;
}
}
// Mostra o maior e o menor número
System.out.println("O maior número é: " + maior);
System.out.println("O menor número é: " + menor);
scanner.close();
}
}
Este programa em Java realiza a mesma tarefa que os programas anteriores: lê 5 números do usuário, encontra o maior e o menor entre eles e os exibe na tela. Java possui uma sintaxe semelhante à de C#, mas com algumas diferenças na manipulação de entrada e saída e na estrutura do loop.
Exemplo em Rust
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
use std::io;
fn main() {
let mut maior;
let mut menor;
// Lê o primeiro número e o considera tanto o maior quanto o menor
println!("Digite o 1º número:");
let mut numero = String::new();
io::stdin().read_line(&mut numero).expect("Falha ao ler a entrada");
let numero: i32 = numero.trim().parse().expect("Entrada inválida");
maior = numero;
menor = numero;
// Loop para ler os próximos 4 números e atualizar o maior e o menor
for i in 2..=5 {
println!("Digite o {}º número:", i);
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Falha ao ler a entrada");
let numero: i32 = input.trim().parse().expect("Entrada inválida");
if numero > maior {
maior = numero;
} else if numero < menor {
menor = numero;
}
}
// Mostra o maior e o menor número
println!("O maior número é: {}", maior);
println!("O menor número é: {}", menor);
}
Este programa em Rust realiza a mesma tarefa que os programas anteriores: lê 5 números do usuário, encontra o maior e o menor entre eles e os exibe na tela. Rust possui uma sintaxe única e segura, com um sistema de tipos poderoso que garante a segurança do programa em tempo de compilação.
Exemplo em Go
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
package main
import (
"fmt"
)
func main() {
var numero, maior, menor int
// Lê o primeiro número e o considera tanto o maior quanto o menor
fmt.Print("Digite o 1º número: ")
fmt.Scanln(&numero)
maior = numero
menor = numero
// Loop para ler os próximos 4 números e atualizar o maior e o menor
for i := 2; i <= 5; i++ {
fmt.Printf("Digite o %dº número: ", i)
fmt.Scanln(&numero)
if numero > maior {
maior = numero
} else if numero < menor {
menor = numero
}
}
// Mostra o maior e o menor número
fmt.Println("O maior número é:", maior)
fmt.Println("O menor número é:", menor)
}
Este programa em Go realiza a mesma tarefa que os programas anteriores: lê 5 números do usuário, encontra o maior e o menor entre eles e os exibe na tela. A sintaxe em Go é diferente de outras linguagens, mas é bastante simples e intuitiva.
Conclusão
O exercício de desenvolver um programa para encontrar o maior e o menor número entre cinco fornecidos pelo usuário foi uma ótima oportunidade para explorar e comparar diferentes linguagens de programação. Ao escrever o mesmo algoritmo em linguagens como C++, C, Pascal, Python, C#, Java, Rust e Go, pude perceber as nuances e diferenças entre essas linguagens, além de fortalecer meu entendimento sobre os conceitos fundamentais de programação.
Este exercício demonstra a versatilidade e a diversidade de opções disponíveis para os desenvolvedores ao escolherem uma linguagem para resolver um determinado problema. Cada linguagem tem sua própria sintaxe, estilo e conjunto de recursos, mas todas compartilham a capacidade de expressar soluções para problemas complexos de maneira clara e eficiente.
Além disso, essa experiência reforçou a importância do pensamento algorítmico e da lógica de programação, habilidades essenciais que transcendem a linguagem específica utilizada. Independentemente da linguagem escolhida, a capacidade de quebrar um problema em etapas menores, identificar padrões e desenvolver soluções eficazes é fundamental para o sucesso na programação.
Em resumo, este exercício foi uma oportunidade valiosa para aprimorar minhas habilidades de programação, expandir meu conhecimento sobre diferentes linguagens e reforçar princípios fundamentais de desenvolvimento de software.
Beleza pessoal? Espero que tenham gostado.
Dúvidas ou sugestões? Deixe o seu comentário!
Um abraço e até o próximo post. Valeu!
#Programação
#Desenvolvimento
#Aprendizado
#Coding
#Tech
#LinguagensDeProgramação
#GiovaniDaCruz