logotipo Blog Giovani Da Cruz
Algoritmos Sequenciais

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

14 min de leitura 492 visualizações

Aprenda a Programar

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:

  1. 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.
  2. 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.
  3. 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:

  1. Leia o primeiro número do usuário e inicialize a variável maior.
  2. Crie um loop para ler os outros 4 números do usuário.
  3. Compare cada número lido com o valor atual de maior e atualize se necessário.
  4. 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:

  1. 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).
  2. 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.
  3. Estrutura de Blocos:
    • Garantir que o código esteja estruturado corretamente, com PERFORM, IF, e END-IF corretamente alinhados e formatados.

 

 

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:

  1. Controle de Fluxo e Loops: O exercício demonstra o uso de loops (for ou while) para iterar um número específico de vezes, o que é essencial para tarefas repetitivas e processamento de dados.
  2. 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.
  3. 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.).
  4. Comparação e Condicionamento: Utilizamos instruções condicionais (if) para comparar valores e decidir qual valor deve ser mantido como o maior.
  5. Conversão de Tipos: Em várias linguagens, é necessário converter a entrada do usuário para o tipo apropriado (por exemplo, de String para int) para realizar operações matemáticas.
  6. 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.
  7. 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.
  8. 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

Deixe um comentário

Seu e-mail não será publicado.