Exercício: encontrar o maior de cinco números

Fala galera da programação, tudo beleza?
Vamos a um novo exercício de algoritmos:
Exercício: Encontrando o Maior Número com Leitura de Entrada em uma Única Variável
Objetivo:
Neste exercício, você vai criar um programa em que lê 5 números fornecidos pelo usuário e determina qual é o maior número entre eles. A primeira leitura do número será usada para inicializar a variável que armazenará o maior número.
Descrição:
- Inicialização:
- Leia o primeiro número do usuário e armazene-o na variável que será usada para armazenar o maior número.
- Leitura e Comparação:
- Utilize um loop para ler os outros 4 números fornecidos pelo usuário. Em cada iteração do loop, compare o número lido com o valor armazenado na variável de maior número. Se o número lido for maior, atualize a variável de maior número.
- Saída:
- Após a leitura dos 5 números, exiba o maior número encontrado.
Requisitos:
- A primeira leitura do número deve inicializar a variável de maior número.
- Utilize apenas uma variável para armazenar o número lido e a variável de maior número.
Passos para Implementação:
- Leia o primeiro número do usuário e inicialize a variável
maior. - Crie um loop para ler os outros 4 números do usuário.
- Compare cada número lido com o valor atual de
maiore atualize se necessário. - Exiba o maior número encontrado.
Vamos aos códigos:
Exemplo em C++
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
#include <iostream>
int main() {
int maior; // Variável para armazenar o maior número
int numero; // Variável para armazenar o número lido
// Lê o primeiro número e inicializa 'maior'
std::cout << "Digite um número: ";
std::cin >> maior;
// Loop para ler os outros 4 números
for (int i = 1; i < 5; ++i) {
std::cout << "Digite um número: ";
std::cin >> numero;
// Verifica se o número atual é maior que o valor armazenado em 'maior'
if (numero > maior) {
maior = numero;
}
}
std::cout << "O maior número é: " << maior << std::endl;
return 0;
}
O programa em C++ começa lendo o primeiro número do usuário e o utiliza para inicializar a variável maior, que armazenará o maior número encontrado. Em seguida, um loop for é usado para ler os outros 4 números fornecidos pelo usuário. Durante cada iteração do loop, o número lido é comparado com o valor atual de maior; se for maior, maior é atualizado com esse novo valor. Após a leitura de todos os números, o programa exibe o maior número encontrado. Este código é eficiente e simples, utilizando apenas uma variável para armazenar a entrada do usuário e determinar o maior valor entre os números fornecidos.
Exemplo em C Puro
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
#include <stdio.h>
int main() {
int maior; // Variável para armazenar o maior número
int numero; // Variável para armazenar o número lido
// Lê o primeiro número e inicializa 'maior'
printf("Digite um número: ");
scanf("%d", &maior);
// Loop para ler os outros 4 números
for (int i = 1; i < 5; ++i) {
printf("Digite um número: ");
scanf("%d", &numero);
// Verifica se o número atual é maior que o valor armazenado em 'maior'
if (numero > maior) {
maior = numero; // Atualiza 'maior' se o número lido for maior
}
}
printf("O maior número é: %d\n", maior);
return 0;
}
Este código em C funciona da mesma forma que a versão em C++, determinando o maior número a partir de 5 entradas do usuário.
Exemplo em Pascal / Delphi / Lazarus
(*
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*)
program MaiorNumero;
var
maior, numero: integer;
i: integer;
begin
{ Lê o primeiro número e inicializa 'maior' }
write('Digite um número: ');
readln(maior);
{ Loop para ler os outros 4 números }
for i := 1 to 4 do
begin
write('Digite um número: ');
readln(numero);
{ Verifica se o número atual é maior que o valor armazenado em 'maior' }
if numero > maior then
maior := numero;
end;
writeln('O maior número é: ', maior);
end.
Este código em Pascal segue a mesma lógica das versões em C e C++, determinando o maior número a partir de 5 entradas do usuário.
Exemplo em Python
'''
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
'''
# Solicita e lê o primeiro número, inicializando 'maior'
maior = int(input("Digite um número: "))
# Loop para ler os outros 4 números
for _ in range(4):
numero = int(input("Digite um número: "))
# Verifica se o número atual é maior que o valor armazenado em 'maior'
if numero > maior:
maior = numero
# Exibe o maior número encontrado
print("O maior número é:", maior)
Explicação do Código:
O código em Python começa lendo o primeiro número fornecido pelo usuário e o utiliza para inicializar a variável maior, que armazenará o maior número encontrado. Em seguida, um loop for é usado para ler os outros 4 números. Durante cada iteração, o número lido é comparado com o valor atual de maior; se o número lido for maior, maior é atualizado. Finalmente, após o loop, o código imprime o maior número encontrado. Esse código é eficiente e direto, utilizando uma abordagem simples e clara para determinar o maior número entre as entradas fornecidas.
Exemplo em C# / C Sharp
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
using System;
class Program
{
static void Main()
{
int maior; // Variável para armazenar o maior número
int numero; // Variável para armazenar o número lido
// Lê o primeiro número e inicializa 'maior'
Console.Write("Digite um número: ");
maior = int.Parse(Console.ReadLine());
// Loop para ler os outros 4 números
for (int i = 1; i < 5; ++i)
{
Console.Write("Digite um número: ");
numero = int.Parse(Console.ReadLine());
// Verifica se o número atual é maior que o valor armazenado em 'maior'
if (numero > maior)
{
maior = numero; // Atualiza 'maior' se o número lido for maior
}
}
Console.WriteLine("O maior número é: " + maior);
}
}
Explicação do Código:
O programa em C# começa lendo o primeiro número do usuário e o utiliza para inicializar a variável maior. Em seguida, um loop for é utilizado para ler os outros 4 números do usuário. Durante cada iteração do loop, o número lido é comparado com o valor atual de maior; se for maior, maior é atualizado. Após o loop, o programa exibe o maior número encontrado. O uso de Console.ReadLine() para ler entradas e int.Parse() para converter as entradas para o tipo int permite manipular os números de forma simples e eficiente.
Exemplo em Java
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
import java.util.Scanner;
public class MaiorNumero {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Lê o primeiro número e inicializa 'maior'
System.out.print("Digite um número: ");
int maior = scanner.nextInt();
// Loop para ler os outros 4 números
for (int i = 1; i < 5; ++i) {
System.out.print("Digite um número: ");
int numero = scanner.nextInt();
// Verifica se o número atual é maior que o valor armazenado em 'maior'
if (numero > maior) {
maior = numero; // Atualiza 'maior' se o número lido for maior
}
}
System.out.println("O maior número é: " + maior);
scanner.close();
}
}
Explicação do Código:
O programa em Java inicia lendo o primeiro número do usuário e o usa para inicializar a variável maior, que será usada para armazenar o maior número encontrado. Em seguida, um loop for é usado para ler os outros 4 números fornecidos pelo usuário. Dentro do loop, o número lido é comparado com o valor atual de maior; se o número lido for maior, maior é atualizado. Após a conclusão do loop, o programa exibe o maior número encontrado. O uso da classe Scanner para a entrada e o método nextInt() para ler inteiros permite que o programa funcione de forma clara e eficiente. O método scanner.close() é chamado no final para fechar o Scanner e liberar os recursos.
Exemplo em Rust
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
use std::io;
fn main() {
let mut input = String::new();
// Lê o primeiro número e inicializa 'maior'
println!("Digite um número: ");
io::stdin().read_line(&mut input).expect("Falha ao ler a linha");
let mut maior: i32 = input.trim().parse().expect("Por favor, digite um número inteiro");
input.clear(); // Limpa o buffer de entrada
// Loop para ler os outros 4 números
for _ in 1..5 {
println!("Digite um número: ");
io::stdin().read_line(&mut input).expect("Falha ao ler a linha");
let numero: i32 = input.trim().parse().expect("Por favor, digite um número inteiro");
input.clear(); // Limpa o buffer de entrada
// Verifica se o número atual é maior que o valor armazenado em 'maior'
if numero > maior {
maior = numero; // Atualiza 'maior' se o número lido for maior
}
}
println!("O maior número é: {}", maior);
}
Explicação do Código:
O programa em Rust começa lendo o primeiro número fornecido pelo usuário e o utiliza para inicializar a variável maior. Para isso, ele usa io::stdin().read_line() para ler a entrada do usuário, e trim().parse() para converter a entrada para um número inteiro. Em seguida, um loop for é utilizado para ler os outros 4 números. Durante cada iteração, o número lido é comparado com o valor atual de maior; se for maior, maior é atualizado. Após o loop, o programa imprime o maior número encontrado. O uso de input.clear() é necessário para limpar o buffer de entrada após cada leitura, garantindo que o próximo valor lido não seja afetado pela entrada anterior. O tratamento de erros é feito com expect() para garantir que a entrada seja válida e o programa continue funcionando conforme esperado.
Exemplo em Go
/******************************************************************************
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*******************************************************************************/
package main
import (
"fmt"
)
func main() {
var maior, numero int
// Lê o primeiro número e inicializa 'maior'
fmt.Print("Digite um número: ")
fmt.Scan(&maior)
// Loop para ler os outros 4 números
for i := 1; i < 5; i++ {
fmt.Print("Digite um número: ")
fmt.Scan(&numero)
// Verifica se o número atual é maior que o valor armazenado em 'maior'
if numero > maior {
maior = numero // Atualiza 'maior' se o número lido for maior
}
}
fmt.Printf("O maior número é: %d\n", maior)
}
Explicação do Código
O programa em Go inicia lendo o primeiro número fornecido pelo usuário e o utiliza para inicializar a variável maior. Isso é feito com fmt.Scan(&maior), que lê a entrada do usuário e armazena o valor na variável maior. Em seguida, um loop for é usado para ler os outros 4 números. Durante cada iteração do loop, o número lido é comparado com o valor atual de maior; se for maior, maior é atualizado. Após a conclusão do loop, o programa imprime o maior número encontrado usando fmt.Printf. Este código é direto e utiliza funções básicas de entrada e saída para realizar a tarefa de forma eficiente.
Exemplo em PHP
<?php
/*
Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br
*/
// Função para ler um número do usuário
function lerNumero($prompt) {
echo $prompt;
return trim(fgets(STDIN));
}
// Lê o primeiro número e inicializa 'maior'
$maior = (int) lerNumero("Digite um número: ");
// Loop para ler os outros 4 números
for ($i = 1; $i < 5; $i++) {
$numero = (int) lerNumero("Digite um número: ");
// Verifica se o número atual é maior que o valor armazenado em 'maior'
if ($numero > $maior) {
$maior = $numero; // Atualiza 'maior' se o número lido for maior
}
}
// Exibe o maior número encontrado
echo "O maior número é: $maior\n";
?>
Explicação do Código:
O programa em PHP começa definindo uma função lerNumero para ler um número do usuário. Essa função usa fgets(STDIN) para capturar a entrada e trim() para remover espaços em branco ao redor. O primeiro número é lido e armazenado na variável $maior. Em seguida, um loop for é utilizado para ler os outros 4 números. Durante cada iteração, o número lido é comparado com o valor atual de $maior; se for maior, $maior é atualizado. Após o loop, o programa imprime o maior número encontrado usando echo. O código utiliza práticas simples e claras para manipulação de entrada e saída em PHP.
Exemplo em COBOL
*> ***************************************
*> Criado pelo Professor Giovani Da Cruz
*> https://giovanidacruz.com.br
*> ***************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. MaiorNumero.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MAIOR PIC 9(5) VALUE 0.
01 NUMERO PIC 9(5) VALUE 0.
01 I PIC 9(1) VALUE 0.
PROCEDURE DIVISION.
DISPLAY 'Digite um número: '
ACCEPT MAIOR
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
DISPLAY 'Digite um número: '
ACCEPT NUMERO
IF NUMERO > MAIOR
MOVE NUMERO TO MAIOR
END-IF
END-PERFORM
DISPLAY 'O maior número é: ' MAIOR
STOP RUN.
Explicação das Correções:
- Formatação de Indentação:
- Certifique-se de que as divisões e os parágrafos estejam alinhados corretamente e que o código esteja alinhado com a coluna 7 (a coluna de indicadores).
- Uso de Indicadores:
- A formatação COBOL tradicional requer que as palavras-chave estejam na coluna 7 (ou coluna de indicadores). Em ambientes modernos, muitas vezes essa formatação é mais flexível, mas alguns compiladores COBOL ainda podem exigir a formatação tradicional.
- Estrutura de Blocos:
- Garantir que o código esteja estruturado corretamente, com
PERFORM,IF, eEND-IFcorretamente alinhados e formatados.
- Garantir que o código esteja estruturado corretamente, com
O que podemos aprender neste exercício?
Neste exercício, podemos aprender várias coisas importantes sobre a programação e o desenvolvimento de software, independentemente da linguagem utilizada:
- Controle de Fluxo e Loops: O exercício demonstra o uso de loops (
forouwhile) para iterar um número específico de vezes, o que é essencial para tarefas repetitivas e processamento de dados. - Manipulação de Variáveis: Aprendemos a inicializar e atualizar variáveis para manter o controle do estado do programa. Neste caso, a variável
maioré atualizada com base em comparações sucessivas. - Entrada e Saída de Dados: O exercício envolve a leitura de entrada do usuário e a exibição de resultados. Em diferentes linguagens, isso é feito com funções específicas (
scanf,input(),Console.ReadLine(), etc.). - Comparação e Condicionamento: Utilizamos instruções condicionais (
if) para comparar valores e decidir qual valor deve ser mantido como o maior. - Conversão de Tipos: Em várias linguagens, é necessário converter a entrada do usuário para o tipo apropriado (por exemplo, de
Stringparaint) para realizar operações matemáticas. - Erros e Validações: A manipulação de entradas pode revelar a necessidade de validar e tratar possíveis erros, como entradas inválidas, para garantir que o programa funcione corretamente.
- Simplicidade e Eficiência: O exercício mostra como resolver um problema de forma simples e direta, o que é uma boa prática em programação. A solução deve ser clara e eficiente para ser fácil de entender e manter.
- Diferenças de Sintaxe: Observando a mesma lógica implementada em diferentes linguagens, podemos comparar e aprender as diferenças de sintaxe e as peculiaridades de cada linguagem.
Esse exercício é um bom exemplo de como conceitos básicos de programação são aplicados de maneira consistente através de diferentes linguagens, ajudando a consolidar o entendimento dos fundamentos da programação.
Beleza pessoal? Espero que tenham gostado.
Dúvidas ou sugestões de outras linguagens? Poste nos comentários!
Um abraço e até o próximo post. Valeu!
#Algoritmos
#Exercícios
#ADS
#GiovaniDaCruz