<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>#Exercício Go &#8211; Giovani Da Cruz</title>
	<atom:link href="https://giovanidacruz.com.br/tag/exercicio-go/feed/" rel="self" type="application/rss+xml" />
	<link>https://giovanidacruz.com.br</link>
	<description>Tecnologia, Economia e Empreendedorismo</description>
	<lastBuildDate>Sun, 11 Aug 2024 02:53:32 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://giovanidacruz.com.br/wp-content/uploads/2023/03/cropped-gio-32x32.png</url>
	<title>#Exercício Go &#8211; Giovani Da Cruz</title>
	<link>https://giovanidacruz.com.br</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Faça um algoritmo e um programa que leia 5 números e informe o maior número</title>
		<link>https://giovanidacruz.com.br/faca-um-algoritmo-e-um-programa-que-leia-5-numeros-e-informe-o-maior-numero/</link>
					<comments>https://giovanidacruz.com.br/faca-um-algoritmo-e-um-programa-que-leia-5-numeros-e-informe-o-maior-numero/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Sun, 11 Aug 2024 02:53:32 +0000</pubDate>
				<category><![CDATA[Algoritmos Sequenciais]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício COBOL]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício PHP]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=4706</guid>

					<description><![CDATA[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 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-4708" src="https://giovanidacruz.com.br/wp-content/uploads/2024/08/aprender-a-programar-jpg.webp" alt="Aprenda a Programar" width="800" height="366" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/08/aprender-a-programar-jpg.webp 800w, https://giovanidacruz.com.br/wp-content/uploads/2024/08/aprender-a-programar-300x137.webp 300w, https://giovanidacruz.com.br/wp-content/uploads/2024/08/aprender-a-programar-768x351.webp 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>Fala galera da programação, tudo beleza?</p>
<p>Vamos a um novo exercício de algoritmos:</p>
<p><strong>Exercício: Encontrando o Maior Número com Leitura de Entrada em uma Única Variável </strong></p>
<p><strong>Objetivo:</strong><br />
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.</p>
<p><strong>Descrição:</strong></p>
<ol>
<li><strong>Inicialização:</strong>
<ul>
<li>Leia o primeiro número do usuário e armazene-o na variável que será usada para armazenar o maior número.</li>
</ul>
</li>
<li><strong>Leitura e Comparação:</strong>
<ul>
<li>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.</li>
</ul>
</li>
<li><strong>Saída:</strong>
<ul>
<li>Após a leitura dos 5 números, exiba o maior número encontrado.</li>
</ul>
</li>
</ol>
<p><strong>Requisitos:</strong></p>
<ul>
<li>A primeira leitura do número deve inicializar a variável de maior número.</li>
<li>Utilize apenas uma variável para armazenar o número lido e a variável de maior número.</li>
</ul>
<p><strong>Passos para Implementação:</strong></p>
<ol>
<li>Leia o primeiro número do usuário e inicialize a variável <code>maior</code>.</li>
<li>Crie um loop para ler os outros 4 números do usuário.</li>
<li>Compare cada número lido com o valor atual de <code>maior</code> e atualize se necessário.</li>
<li>Exiba o maior número encontrado.</li>
</ol>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos:</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;

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 &lt;&lt; "Digite um número: ";
    std::cin &gt;&gt; maior;

    // Loop para ler os outros 4 números
    for (int i = 1; i &lt; 5; ++i) {
        std::cout &lt;&lt; "Digite um número: ";
        std::cin &gt;&gt; numero;

        // Verifica se o número atual é maior que o valor armazenado em 'maior'
        if (numero &gt; maior) {
            maior = numero;
        }
    }

    std::cout &lt;&lt; "O maior número é: " &lt;&lt; maior &lt;&lt; std::endl;

    return 0;
}</pre>
<p>O programa em C++ começa lendo o primeiro número do usuário e o utiliza para inicializar a variável <code>maior</code>, que armazenará o maior número encontrado. Em seguida, um loop <code>for</code> é 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 <code>maior</code>; se for maior, <code>maior</code> é 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.</p>
<p>&nbsp;</p>
<p><strong>Exemplo em C Puro</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

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", &amp;maior);

    // Loop para ler os outros 4 números
    for (int i = 1; i &lt; 5; ++i) {
        printf("Digite um número: ");
        scanf("%d", &amp;numero);

        // Verifica se o número atual é maior que o valor armazenado em 'maior'
        if (numero &gt; maior) {
            maior = numero; // Atualiza 'maior' se o número lido for maior
        }
    }

    printf("O maior número é: %d\n", maior);

    return 0;
}</pre>
<p>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.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">(*

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 &gt; maior then
      maior := numero;
  end;

  writeln('O maior número é: ', maior);
end.</pre>
<p>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.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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 &gt; maior:
        maior = numero

# Exibe o maior número encontrado
print("O maior número é:", maior)</pre>
<p><strong>Explicação do Código:</strong></p>
<p>O código em Python começa lendo o primeiro número fornecido pelo usuário e o utiliza para inicializar a variável <code>maior</code>, que armazenará o maior número encontrado. Em seguida, um loop <code>for</code> é usado para ler os outros 4 números. Durante cada iteração, o número lido é comparado com o valor atual de <code>maior</code>; se o número lido for maior, <code>maior</code> é 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.</p>
<p>&nbsp;</p>
<h2>Exemplo em C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

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 &lt; 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 &gt; maior)
            {
                maior = numero; // Atualiza 'maior' se o número lido for maior
            }
        }

        Console.WriteLine("O maior número é: " + maior);
    }
}</pre>
<p><strong>Explicação do Código:</strong></p>
<p>O programa em C# começa lendo o primeiro número do usuário e o utiliza para inicializar a variável <code>maior</code>. Em seguida, um loop <code>for</code> é 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 <code>maior</code>; se for maior, <code>maior</code> é atualizado. Após o loop, o programa exibe o maior número encontrado. O uso de <code>Console.ReadLine()</code> para ler entradas e <code>int.Parse()</code> para converter as entradas para o tipo <code>int</code> permite manipular os números de forma simples e eficiente.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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 &lt; 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 &gt; maior) {
                maior = numero; // Atualiza 'maior' se o número lido for maior
            }
        }

        System.out.println("O maior número é: " + maior);

        scanner.close();
    }
}</pre>
<p><strong>Explicação do Código:</strong></p>
<p>O programa em Java inicia lendo o primeiro número do usuário e o usa para inicializar a variável <code>maior</code>, que será usada para armazenar o maior número encontrado. Em seguida, um loop <code>for</code> é 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 <code>maior</code>; se o número lido for maior, <code>maior</code> é atualizado. Após a conclusão do loop, o programa exibe o maior número encontrado. O uso da classe <code>Scanner</code> para a entrada e o método <code>nextInt()</code> para ler inteiros permite que o programa funcione de forma clara e eficiente. O método <code>scanner.close()</code> é chamado no final para fechar o <code>Scanner</code> e liberar os recursos.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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(&amp;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(&amp;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 &gt; maior {
            maior = numero; // Atualiza 'maior' se o número lido for maior
        }
    }

    println!("O maior número é: {}", maior);
}</pre>
<p><strong>Explicação do Código:</strong></p>
<p>O programa em Rust começa lendo o primeiro número fornecido pelo usuário e o utiliza para inicializar a variável <code>maior</code>. Para isso, ele usa <code>io::stdin().read_line()</code> para ler a entrada do usuário, e <code>trim().parse()</code> para converter a entrada para um número inteiro. Em seguida, um loop <code>for</code> é utilizado para ler os outros 4 números. Durante cada iteração, o número lido é comparado com o valor atual de <code>maior</code>; se for maior, <code>maior</code> é atualizado. Após o loop, o programa imprime o maior número encontrado. O uso de <code>input.clear()</code> é 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 <code>expect()</code> para garantir que a entrada seja válida e o programa continue funcionando conforme esperado.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

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(&amp;maior)

    // Loop para ler os outros 4 números
    for i := 1; i &lt; 5; i++ {
        fmt.Print("Digite um número: ")
        fmt.Scan(&amp;numero)

        // Verifica se o número atual é maior que o valor armazenado em 'maior'
        if numero &gt; maior {
            maior = numero // Atualiza 'maior' se o número lido for maior
        }
    }

    fmt.Printf("O maior número é: %d\n", maior)
}</pre>
<h3>Explicação do Código</h3>
<p>O programa em Go inicia lendo o primeiro número fornecido pelo usuário e o utiliza para inicializar a variável <code>maior</code>. Isso é feito com <code>fmt.Scan(&amp;maior)</code>, que lê a entrada do usuário e armazena o valor na variável <code>maior</code>. Em seguida, um loop <code>for</code> é usado para ler os outros 4 números. Durante cada iteração do loop, o número lido é comparado com o valor atual de <code>maior</code>; se for maior, <code>maior</code> é atualizado. Após a conclusão do loop, o programa imprime o maior número encontrado usando <code>fmt.Printf</code>. Este código é direto e utiliza funções básicas de entrada e saída para realizar a tarefa de forma eficiente.</p>
<p>&nbsp;</p>
<h2>Exemplo em PHP</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?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 &lt; 5; $i++) {
    $numero = (int) lerNumero("Digite um número: ");

    // Verifica se o número atual é maior que o valor armazenado em 'maior'
    if ($numero &gt; $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";

?&gt;</pre>
<p><strong>Explicação do Código:</strong></p>
<p>O programa em PHP começa definindo uma função <code>lerNumero</code> para ler um número do usuário. Essa função usa <code>fgets(STDIN)</code> para capturar a entrada e <code>trim()</code> para remover espaços em branco ao redor. O primeiro número é lido e armazenado na variável <code>$maior</code>. Em seguida, um loop <code>for</code> é utilizado para ler os outros 4 números. Durante cada iteração, o número lido é comparado com o valor atual de <code>$maior</code>; se for maior, <code>$maior</code> é atualizado. Após o loop, o programa imprime o maior número encontrado usando <code>echo</code>. O código utiliza práticas simples e claras para manipulação de entrada e saída em PHP.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Exemplo em COBOL</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="raw">*&gt; ***************************************

*&gt; Criado pelo Professor Giovani Da Cruz
*&gt; https://giovanidacruz.com.br

*&gt; ***************************************
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 &gt; 4
        DISPLAY 'Digite um número: '
        ACCEPT NUMERO

        IF NUMERO &gt; MAIOR
            MOVE NUMERO TO MAIOR
        END-IF
    END-PERFORM

    DISPLAY 'O maior número é: ' MAIOR

    STOP RUN.</pre>
<p><strong>Explicação das Correções:</strong></p>
<ol>
<li><strong>Formatação de Indentação:</strong>
<ul>
<li>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).</li>
</ul>
</li>
<li><strong>Uso de Indicadores:</strong>
<ul>
<li>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.</li>
</ul>
</li>
<li><strong>Estrutura de Blocos:</strong>
<ul>
<li>Garantir que o código esteja estruturado corretamente, com <code>PERFORM</code>, <code>IF</code>, e <code>END-IF</code> corretamente alinhados e formatados.</li>
</ul>
</li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p>Neste exercício, podemos aprender várias coisas importantes sobre a programação e o desenvolvimento de software, independentemente da linguagem utilizada:</p>
<ol>
<li><strong>Controle de Fluxo e Loops:</strong> O exercício demonstra o uso de loops (<code>for</code> ou <code>while</code>) para iterar um número específico de vezes, o que é essencial para tarefas repetitivas e processamento de dados.</li>
<li><strong>Manipulação de Variáveis:</strong> Aprendemos a inicializar e atualizar variáveis para manter o controle do estado do programa. Neste caso, a variável <code>maior</code> é atualizada com base em comparações sucessivas.</li>
<li><strong>Entrada e Saída de Dados:</strong> 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 (<code>scanf</code>, <code>input()</code>, <code>Console.ReadLine()</code>, etc.).</li>
<li><strong>Comparação e Condicionamento:</strong> Utilizamos instruções condicionais (<code>if</code>) para comparar valores e decidir qual valor deve ser mantido como o maior.</li>
<li><strong>Conversão de Tipos:</strong> Em várias linguagens, é necessário converter a entrada do usuário para o tipo apropriado (por exemplo, de <code>String</code> para <code>int</code>) para realizar operações matemáticas.</li>
<li><strong>Erros e Validações:</strong> 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.</li>
<li><strong>Simplicidade e Eficiência:</strong> 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.</li>
<li><strong>Diferenças de Sintaxe:</strong> Observando a mesma lógica implementada em diferentes linguagens, podemos comparar e aprender as diferenças de sintaxe e as peculiaridades de cada linguagem.</li>
</ol>
<p>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.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Poste nos comentários!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p>#Algoritmos</p>
<p>#Exercícios</p>
<p>#ADS</p>
<p>#GiovaniDaCruz</p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/faca-um-algoritmo-e-um-programa-que-leia-5-numeros-e-informe-o-maior-numero/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa que leia 5 números e escreva o maior e o menor desses 5 números, nessa ordem.</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-5-numeros-e-escreva-o-maior-e-o-menor-desses-5-numeros-nessa-ordem/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-5-numeros-e-escreva-o-maior-e-o-menor-desses-5-numeros-nessa-ordem/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Tue, 30 Apr 2024 01:24:58 +0000</pubDate>
				<category><![CDATA[Algoritmos com Laços]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[algoritmo]]></category>
		<category><![CDATA[comparação]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[entrada]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[maior]]></category>
		<category><![CDATA[menor]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[saída]]></category>
		<category><![CDATA[Variáveis]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3979</guid>

					<description><![CDATA[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! 🤓💻 &#160; 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 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="aligncenter size-full wp-image-3367" src="https://giovanidacruz.com.br/wp-content/uploads/2024/02/algoritmos-giovani-min-1-jpg.webp" alt="algoritmos giovani" width="800" height="450" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/02/algoritmos-giovani-min-1-jpg.webp 800w, https://giovanidacruz.com.br/wp-content/uploads/2024/02/algoritmos-giovani-min-1-300x169.webp 300w, https://giovanidacruz.com.br/wp-content/uploads/2024/02/algoritmos-giovani-min-1-768x432.webp 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>Fala galera da programação, tudo beleza?</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 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! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f913.png" alt="🤓" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>&nbsp;</p>
<p><strong>Dicas para o exercício </strong></p>
<p>Utilizar variáveis adicionais para armazenar o maior e para armazenar o menor.</p>
<p>Comparar cada número lido com cada uma dessas variáveis adicionais.</p>
<p>Lembre-se de atribuir um valor inicial para as variáveis adicionais, que pode ser, por exemplo, o primeiro número lido.</p>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p>Este exercício em C++ nos ensina alguns conceitos importantes:</p>
<p><strong>Uso de variáveis</strong>: 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.</p>
<p><strong>Estruturas de controle de fluxo</strong>: O uso do loop <code>for</code> nos permite iterar sobre um conjunto de números predefinido, enquanto as estruturas condicionais <code>if</code> e <code>else if</code> nos permitem comparar e atualizar variáveis com base em condições específicas.</p>
<p><strong>Algoritmo de encontrar o maior e o menor número</strong>: 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.</p>
<p><strong>Entrada e saída básicas</strong>: Aprendemos a usar <code>cin</code> para obter entrada do usuário e <code>cout</code> para exibir saída na tela.</p>
<p><strong>Boas práticas de programação</strong>: 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.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;
using namespace std;

int main() {
    int numero, maior, menor;

    // Lê o primeiro número e o considera tanto o maior quanto o menor
    cout &lt;&lt; "Digite o 1º número: ";
    cin &gt;&gt; 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 &lt;= 5; ++i) {
        cout &lt;&lt; "Digite o " &lt;&lt; i &lt;&lt; "º número: ";
        cin &gt;&gt; numero;

        if (numero &gt; maior) {
            maior = numero;
        } else if (numero &lt; menor) {
            menor = numero;
        }
    }

    // Mostra o maior e o menor número
    cout &lt;&lt; "O maior número é: " &lt;&lt; maior &lt;&lt; endl;
    cout &lt;&lt; "O menor número é: " &lt;&lt; menor &lt;&lt; endl;

    return 0;
}</pre>
<p>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 <code>maior</code> e <code>menor</code>, atualizando-as conforme necessário. No final, imprime o maior e o menor número inserido.</p>
<p>A estratégia utilizada no programa foi a seguinte:</p>
<ol>
<li><strong>Inicialização das variáveis</strong>: Começamos declarando três variáveis inteiras: <code>numero</code>, <code>maior</code> e <code>menor</code>. A variável <code>numero</code> será usada para ler os números fornecidos pelo usuário, enquanto <code>maior</code> e <code>menor</code> serão usadas para armazenar o maior e o menor número, respectivamente.</li>
<li><strong>Leitura do primeiro número</strong>: O programa solicita ao usuário que insira o primeiro número e armazena esse valor nas variáveis <code>maior</code> e <code>menor</code>, pois, no início, esse número é o único e, portanto, o maior e o menor.</li>
<li><strong>Loop para os próximos números</strong>: Utilizando um loop <code>for</code>, 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 em <code>maior</code> e <code>menor</code>.</li>
<li><strong>Atualização de <code>maior</code> e <code>menor</code></strong>: Se o número lido for maior do que o valor atual de <code>maior</code>, <code>maior</code> é atualizado com esse número. Se o número lido for menor do que o valor atual de <code>menor</code>, <code>menor</code> é atualizado com esse número.</li>
<li><strong>Exibição do resultado</strong>: Após a leitura de todos os números, o programa exibe o maior e o menor número lido.</li>
</ol>
<p>Essa abordagem garante que, a cada iteração do loop, os valores de <code>maior</code> e <code>menor</code> são atualizados conforme necessário, resultando nos valores corretos no final da execução do programa.</p>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

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", &amp;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 &lt;= 5; ++i) {
        printf("Digite o %dº número: ", i);
        scanf("%d", &amp;numero);

        if (numero &gt; maior) {
            maior = numero;
        } else if (numero &lt; 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;
}</pre>
<p>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 <code>cout</code> e <code>cin</code> por <code>printf</code> e <code>scanf</code>, respectivamente, e a remoção do <code>namespace std</code>. O restante da lógica permanece a mesma.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">{

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 &gt; maior then
      maior := numero
    else if numero &lt; 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.</pre>
<p>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.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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 &gt; maior:
        maior = numero
    elif numero &lt; menor:
        menor = numero

# Mostra o maior e o menor número
print("O maior número é:", maior)
print("O menor número é:", menor)</pre>
<p>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.</p>
<p>&nbsp;</p>
<h2>Exemplo em C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

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 &lt;= 5; i++)
        {
            Console.Write("Digite o {0}º número: ", i);
            numero = Convert.ToInt32(Console.ReadLine());

            if (numero &gt; maior)
            {
                maior = numero;
            }
            else if (numero &lt; 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);
    }
}</pre>
<p>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.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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 &lt;= 5; i++) {
            System.out.print("Digite o " + i + "º número: ");
            numero = scanner.nextInt();

            if (numero &gt; maior) {
                maior = numero;
            } else if (numero &lt; 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();
    }
}</pre>
<p>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.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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(&amp;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(&amp;mut input).expect("Falha ao ler a entrada");
        let numero: i32 = input.trim().parse().expect("Entrada inválida");

        if numero &gt; maior {
            maior = numero;
        } else if numero &lt; menor {
            menor = numero;
        }
    }

    // Mostra o maior e o menor número
    println!("O maior número é: {}", maior);
    println!("O menor número é: {}", menor);
}</pre>
<p>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.</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

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(&amp;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 &lt;= 5; i++ {
        fmt.Printf("Digite o %dº número: ", i)
        fmt.Scanln(&amp;numero)

        if numero &gt; maior {
            maior = numero
        } else if numero &lt; 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)
}</pre>
<p>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.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Programação </strong></p>
<p><strong>#Desenvolvimento </strong></p>
<p><strong>#Aprendizado </strong></p>
<p><strong>#Coding </strong></p>
<p><strong>#Tech </strong></p>
<p><strong>#LinguagensDeProgramação</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-5-numeros-e-escreva-o-maior-e-o-menor-desses-5-numeros-nessa-ordem/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Um estacionamento cobra R$ 8,00 para a primeira hora e para cada hora adicional é cobrado mais R$ 5,00. Fazer um algoritmo e um programa em que leia o tempo de estacionamento (em horas) e escreva o valor que deve ser pago.</title>
		<link>https://giovanidacruz.com.br/um-estacionamento-cobra-r-800-para-a-primeira-hora-e-para-cada-hora-adicional-e-cobrado-mais-r-500-fazer-um-algoritmo-e-um-programa-em-que-leia-o-tempo-de-estacionamento-em-horas-e-escreva-o-va/</link>
					<comments>https://giovanidacruz.com.br/um-estacionamento-cobra-r-800-para-a-primeira-hora-e-para-cada-hora-adicional-e-cobrado-mais-r-500-fazer-um-algoritmo-e-um-programa-em-que-leia-o-tempo-de-estacionamento-em-horas-e-escreva-o-va/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Thu, 18 Apr 2024 01:05:41 +0000</pubDate>
				<category><![CDATA[Algoritmos com Se, Senão e Caso]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Portugol]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[cálculo]]></category>
		<category><![CDATA[condicionais]]></category>
		<category><![CDATA[entrada]]></category>
		<category><![CDATA[Estacionamento]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[prática]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[saída]]></category>
		<category><![CDATA[sintaxe]]></category>
		<category><![CDATA[valores]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3938</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? Vamos a um novo exercício de algoritmos com desvio condicional. Desafie suas habilidades de programação com este exercício simples de cálculo de estacionamento em diversas linguagens! 🚗💻 Aprenda e pratique condicionais, entrada/saída e sintaxe em várias linguagens. Dicas para o exercício Lembrar que pode ser informado 0 no tempo [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="aligncenter size-full wp-image-3940" src="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-e-logica-de-programacao-jpg.webp" alt="algoritmos e lógica de programação" width="800" height="417" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-e-logica-de-programacao-jpg.webp 800w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-e-logica-de-programacao-300x156.webp 300w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-e-logica-de-programacao-768x400.webp 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>Fala galera da programação, tudo beleza? Vamos a um novo exercício de algoritmos com desvio condicional. Desafie suas habilidades de programação com este exercício simples de cálculo de estacionamento em diversas linguagens! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f697.png" alt="🚗" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Aprenda e pratique condicionais, entrada/saída e sintaxe em várias linguagens.</p>
<h2>Dicas para o exercício</h2>
<p>Lembrar que pode ser informado 0 no tempo e nesse caso nada é cobrado.</p>
<p>Exemplos:</p>
<p>1 hora = R$ 8;<br />
2 horas = R$ 13;<br />
3 horas = R$ 18;</p>
<p>Sugestão: Leia um numero inteiro correspondente as horas de estacionamento e escreva o valor que deve ser pago. Utilizar um comando condicional para calcular o valor a primeira hora e uma fórmula para calcular as demais.</p>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p><strong>Lógica condicional</strong>: O problema envolve a utilização de lógica condicional para tomar decisões com base nas entradas do usuário.</p>
<p><strong>Cálculos simples</strong>: O programa realiza cálculos simples para determinar o valor a ser pago com base no tempo de estacionamento fornecido pelo usuário.</p>
<p><strong>Raciocínio lógico</strong>: Este exercício ajuda a praticar o raciocínio lógico ao lidar com diferentes cenários (tempo de estacionamento igual a 0, igual a 1 ou maior que 1).</p>
<p><strong>Interação com o usuário</strong>: O programa solicita informações ao usuário e fornece resultados claros e compreensíveis.</p>
<p><strong>Abstração de problemas reais para código</strong>: Este problema é um exemplo de como podemos traduzir um problema do mundo real (cobrança de estacionamento) em código de computador.</p>
<p><strong>Prática de sintaxe de programação</strong>: Ajuda a praticar a sintaxe de programação, incluindo entrada e saída de dados, declaração de variáveis, uso de condicionais, etc.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em Portugol &#8211; Portugol Studio</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">/*

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*/
programa {
  funcao inicio() {

    inteiro horas
    real valor

    escreva("Digite o tempo de estacionamento em horas: ")
    leia(horas)

    se (horas == 0) {
        valor = 0
    } senao se (horas == 1) {
        valor = 8
    } senao {
        // Calcula o valor para as horas adicionais
        valor = 8 + (horas - 1) * 5
    }

    escreva( "Valor a ser pago: R$ ", valor)
  
  }
}</pre>
<p>Este programa solicita ao usuário o tempo de estacionamento em horas. Em seguida, ele calcula o valor a ser pago de acordo com as regras fornecidas. Se o tempo for 0, nenhum valor é cobrado. Se for 1 hora, é cobrado o valor base de R$ 8. Para mais de 1 hora, é cobrado o valor base mais R$ 5 para cada hora adicional após a primeira.</p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;
using namespace std;

int main() {
    int horas;
    float valor;

    cout &lt;&lt; "Digite o tempo de estacionamento em horas: ";
    cin &gt;&gt; horas;

    if (horas == 0) {
        valor = 0;
    } else if (horas == 1) {
        valor = 8;
    } else {
        // Calcula o valor para as horas adicionais
        valor = 8 + (horas - 1) * 5;
    }

    cout &lt;&lt; "Valor a ser pago: R$ " &lt;&lt; valor &lt;&lt; endl;

    return 0;
}</pre>
<p>A estratégia utilizada foi a seguinte:</p>
<ol>
<li>O programa solicita ao usuário o tempo de estacionamento em horas.</li>
<li>Em seguida, ele verifica se o tempo informado é igual a 0. Se for, define o valor a ser pago como 0, pois não há cobrança.</li>
<li>Se o tempo for 1 hora, o programa define o valor a ser pago como R$ 8, que é o valor base.</li>
<li>Se o tempo for maior que 1 hora, o programa calcula o valor a ser pago somando o valor base de R$ 8 com R$ 5 multiplicado pelo número de horas adicionais (horas &#8211; 1). Isso porque a primeira hora já foi cobrada pelo valor base.</li>
<li>Por fim, o programa exibe o valor a ser pago ao usuário.</li>
</ol>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

int main() {
    int horas;
    float valor;

    printf("Digite o tempo de estacionamento em horas: ");
    scanf("%d", &amp;horas);

    if (horas == 0) {
        valor = 0;
    } else if (horas == 1) {
        valor = 8;
    } else {
        // Calcula o valor para as horas adicionais
        valor = 8 + (horas - 1) * 5;
    }

    printf("Valor a ser pago: R$ %.2f\n", valor);

    return 0;
}</pre>
<p>Neste código, as funções de entrada e saída padrão da linguagem C (<code>printf</code> e <code>scanf</code>) são usadas para interagir com o usuário. A lógica do programa permanece a mesma que a versão em C++, apenas a sintaxe e as funções de entrada/saída são diferentes.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">{

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

}
program CalculoEstacionamento;

var
  horas: integer;
  valor: real;

begin
  writeln('Digite o tempo de estacionamento em horas: ');
  readln(horas);

  if horas = 0 then
    valor := 0
  else if horas = 1 then
    valor := 8
  else
    // Calcula o valor para as horas adicionais
    valor := 8 + (horas - 1) * 5;

  writeln('Valor a ser pago: R$ ', valor:0:2);
end.</pre>
<p>Este programa tem a mesma lógica dos exemplo em C++ e C, solicita ao usuário o tempo de estacionamento em horas, lê esse valor e calcula o valor a ser pago com base nas regras fornecidas. Em seguida, ele exibe o valor a ser pago ao usuário.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
horas = int(input("Digite o tempo de estacionamento em horas: "))

if horas == 0:
    valor = 0
elif horas == 1:
    valor = 8
else:
    valor = 8 + (horas - 1) * 5

print("Valor a ser pago: R$", valor)
</pre>
<p>Este programa solicita ao usuário o tempo de estacionamento em horas, lê esse valor e calcula o valor a ser pago com base nas regras fornecidas. Em seguida, ele exibe o valor a ser pago ao usuário. Python oferece estruturas de controle mais compactas, como a ausência de chaves e a identação significativa para delimitar blocos de código, tornando o código mais legível e conciso.</p>
<p>&nbsp;</p>
<h2>Exemplo em C#</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Digite o tempo de estacionamento em horas: ");
        int horas = Convert.ToInt32(Console.ReadLine());
        float valor;

        if (horas == 0)
        {
            valor = 0;
        }
        else if (horas == 1)
        {
            valor = 8;
        }
        else
        {
            // Calcula o valor para as horas adicionais
            valor = 8 + (horas - 1) * 5;
        }

        Console.WriteLine("Valor a ser pago: R$ " + valor);
    }
}</pre>
<p>Este programa em C# funciona de maneira semelhante aos programas em C e C++, mas utiliza as funcionalidades da linguagem C#. Ele solicita ao usuário o tempo de estacionamento em horas, lê esse valor e calcula o valor a ser pago com base nas regras fornecidas. Em seguida, ele exibe o valor a ser pago ao usuário.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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);
        System.out.println("Digite o tempo de estacionamento em horas: ");
        int horas = scanner.nextInt();
        float valor;

        if (horas == 0) {
            valor = 0;
        } else if (horas == 1) {
            valor = 8;
        } else {
            // Calcula o valor para as horas adicionais
            valor = 8 + (horas - 1) * 5;
        }

        System.out.println("Valor a ser pago: R$ " + valor);
    }
}</pre>
<p>Este programa em Java realiza as mesmas operações que os exemplos anteriores. Ele solicita ao usuário o tempo de estacionamento em horas, lê esse valor e calcula o valor a ser pago com base nas regras fornecidas. Em seguida, ele exibe o valor a ser pago ao usuário.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::io;

fn main() {
    println!("Digite o tempo de estacionamento em horas: ");
    let mut input = String::new();
    io::stdin().read_line(&amp;mut input).expect("Falha ao ler a entrada.");
    let horas: u32 = input.trim().parse().expect("Por favor, insira um número válido.");

    let mut valor: f32;

    if horas == 0 {
        valor = 0.0;
    } else if horas == 1 {
        valor = 8.0;
    } else {
        // Calcula o valor para as horas adicionais
        valor = 8.0 + (horas - 1) as f32 * 5.0;
    }

    println!("Valor a ser pago: R$ {:.2}", valor);
}</pre>
<p>O código em Rust solicita ao usuário o tempo de estacionamento em horas, lê a entrada do console e converte-a em um número inteiro. Em seguida, calcula o valor a ser pago com base nas regras fornecidas, considerando uma tarifa fixa para a primeira hora e um valor adicional para as horas subsequentes. O resultado é exibido na tela com duas casas decimais. O programa também trata possíveis erros de conversão da entrada do usuário para garantir que a operação ocorra sem problemas, utilizando o método <code>expect()</code>.</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
)

func main() {
    var horas int
    var valor float64

    fmt.Println("Digite o tempo de estacionamento em horas: ")
    fmt.Scan(&amp;horas)

    if horas == 0 {
        valor = 0
    } else if horas == 1 {
        valor = 8
    } else {
        // Calcula o valor para as horas adicionais
        valor = 8 + float64(horas-1)*5
    }

    fmt.Printf("Valor a ser pago: R$ %.2f\n", valor)
}</pre>
<p>No exemplo em Go, o programa solicita ao usuário o tempo de estacionamento em horas e lê a entrada do console usando <code>fmt.Scan()</code>. Em seguida, com base no tempo fornecido, calcula o valor a ser pago conforme as regras estipuladas, considerando uma tarifa fixa para a primeira hora e um valor adicional para as horas subsequentes. O resultado é exibido na tela com duas casas decimais usando <code>fmt.Printf()</code>.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>Este exercício demonstrou como implementar um programa simples para calcular o valor do estacionamento com base no tempo, seguindo regras específicas. Ao traduzir o problema do mundo real para código em diversas linguagens de programação, pudemos observar diferentes abordagens e sintaxes, destacando as características individuais de cada linguagem. Além disso, praticamos conceitos fundamentais de lógica de programação, como estruturas condicionais e cálculos simples, reforçando a compreensão desses conceitos e a habilidade de resolver problemas computacionais.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Desenvolvimento </strong></p>
<p><strong>#Programação </strong></p>
<p><strong>#Aprendizado</strong></p>
<p><strong>#DesvioCondicional</strong></p>
<p><strong>#Algoritmos</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/um-estacionamento-cobra-r-800-para-a-primeira-hora-e-para-cada-hora-adicional-e-cobrado-mais-r-500-fazer-um-algoritmo-e-um-programa-em-que-leia-o-tempo-de-estacionamento-em-horas-e-escreva-o-va/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa em que leia 4 valores, Hi, Mi, Hf, Mf, representando respectivamente a hora e minuto inicial e final de um evento, e calcule a duração do mesmo em horas e minutos. Considere que o evento pode iniciar em um dia e terminar no dia seguinte.</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-leia-4-valores-hi-mi-hf-mf-representando-respectivamente-a-hora-e-minuto-inicial-e-final-de-um-evento-e-calcule-a-duracao-do-mesmo-em-horas-e-minutos-cons/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-leia-4-valores-hi-mi-hf-mf-representando-respectivamente-a-hora-e-minuto-inicial-e-final-de-um-evento-e-calcule-a-duracao-do-mesmo-em-horas-e-minutos-cons/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Mon, 15 Apr 2024 10:00:54 +0000</pubDate>
				<category><![CDATA[Algoritmos com Se, Senão e Caso]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[cálculo]]></category>
		<category><![CDATA[Controle de fluxo]]></category>
		<category><![CDATA[Conversão]]></category>
		<category><![CDATA[Duração]]></category>
		<category><![CDATA[entrada]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[horas]]></category>
		<category><![CDATA[linguagens de programação]]></category>
		<category><![CDATA[minutos]]></category>
		<category><![CDATA[saída]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3923</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? 💻 Novo exercício na área para aprimorar a nossa lógica de programação. Dica do exercício: Para simplificar o problema, converta cada par de valores em um único valor em minutos. 🕒 &#160; O que podemos aprender neste exercício? Neste exercício, podemos aprender várias coisas: Manipulação de Entrada/Saída: Aprendemos como [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3926" src="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-tempo-decorrido-jpg.webp" alt="algoritmos tempo decorrido" width="640" height="360" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-tempo-decorrido-jpg.webp 640w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-tempo-decorrido-300x169.webp 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<p>Fala galera da programação, tudo beleza? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Novo exercício na área para aprimorar a nossa lógica de programação.</p>
<p><strong>Dica do exercício:</strong></p>
<p>Para simplificar o problema, converta cada par de valores em um único valor em minutos. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f552.png" alt="🕒" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p>Neste exercício, podemos aprender várias coisas:</p>
<ol>
<li><strong>Manipulação de Entrada/Saída</strong>: Aprendemos como ler dados de entrada do usuário e exibir resultados na saída usando diferentes linguagens de programação.</li>
<li><strong>Conversão de Tipos</strong>: Vimos como converter strings em valores numéricos adequados para cálculos, uma habilidade crucial ao lidar com entrada do usuário.</li>
<li><strong>Cálculos Básicos</strong>: Praticamos realizar cálculos simples para resolver um problema específico, como converter horas e minutos em minutos totais e calcular a diferença entre dois horários.</li>
<li><strong>Controle de Fluxo</strong>: Utilizamos estruturas de controle de fluxo, como condicionais, para lidar com diferentes cenários, como quando o evento se estende para o dia seguinte.</li>
<li><strong>Sintaxe e Semântica</strong>: Comparamos a sintaxe e a semântica de diferentes linguagens de programação, observando suas similaridades e diferenças na implementação do mesmo problema.</li>
</ol>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;

using namespace std;

int main() {
    int Hi, Mi, Hf, Mf;
    int inicio_minutos, fim_minutos, duracao_minutos;

    // Leitura dos valores de entrada
    cout &lt;&lt; "Digite a hora inicial (Hi Mi): ";
    cin &gt;&gt; Hi &gt;&gt; Mi;
    cout &lt;&lt; "Digite a hora final (Hf Mf): ";
    cin &gt;&gt; Hf &gt;&gt; Mf;

    // Convertendo hora inicial e final para minutos
    inicio_minutos = Hi * 60 + Mi;
    fim_minutos = Hf * 60 + Mf;

    // Calculando a duração do evento em minutos
    if (fim_minutos &gt; inicio_minutos) {
        duracao_minutos = fim_minutos - inicio_minutos;
    } else {
        duracao_minutos = (24 * 60 - inicio_minutos) + fim_minutos;
    }

    // Convertendo a duração de minutos para horas e minutos
    int duracao_horas = duracao_minutos / 60;
    int duracao_minutos_resto = duracao_minutos % 60;

    // Exibindo o resultado
    cout &lt;&lt; "A duração do evento é de " &lt;&lt; duracao_horas &lt;&lt; " horas e " &lt;&lt; duracao_minutos_resto &lt;&lt; " minutos." &lt;&lt; endl;

    return 0;
}</pre>
<p>Esse programa lê os valores de entrada representando a hora e minuto inicial (Hi, Mi) e a hora e minuto final (Hf, Mf) do evento. Em seguida, converte esses valores para minutos, calcula a duração do evento em minutos e, por fim, converte a duração de volta para horas e minutos, exibindo o resultado.</p>
<p>A estratégia utilizada neste programa foi:</p>
<ol>
<li>Ler os valores de entrada representando a hora e minuto inicial (Hi, Mi) e a hora e minuto final (Hf, Mf) do evento.</li>
<li>Converter esses valores de hora e minuto para minutos, para simplificar os cálculos.</li>
<li>Calcular a duração do evento em minutos, levando em consideração a possibilidade do evento começar em um dia e terminar no dia seguinte.
<ul>
<li>Se a hora final for maior que a hora inicial, a duração é simplesmente a diferença entre as duas.</li>
<li>Se a hora final for menor ou igual à hora inicial, a duração é a diferença entre 24 horas (1440 minutos) e a hora inicial, somada à hora final.</li>
</ul>
</li>
<li>Converter a duração de minutos para horas e minutos.</li>
<li>Exibir o resultado.</li>
</ol>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

int main() {
    int Hi, Mi, Hf, Mf;
    int inicio_minutos, fim_minutos, duracao_minutos;

    // Leitura dos valores de entrada
    printf("Digite a hora inicial (Hi Mi): ");
    scanf("%d %d", &amp;Hi, &amp;Mi);
    printf("Digite a hora final (Hf Mf): ");
    scanf("%d %d", &amp;Hf, &amp;Mf);

    // Convertendo hora inicial e final para minutos
    inicio_minutos = Hi * 60 + Mi;
    fim_minutos = Hf * 60 + Mf;

    // Calculando a duração do evento em minutos
    if (fim_minutos &gt; inicio_minutos) {
        duracao_minutos = fim_minutos - inicio_minutos;
    } else {
        duracao_minutos = (24 * 60 - inicio_minutos) + fim_minutos;
    }

    // Convertendo a duração de minutos para horas e minutos
    int duracao_horas = duracao_minutos / 60;
    int duracao_minutos_resto = duracao_minutos % 60;

    // Exibindo o resultado
    printf("A duração do evento é de %d horas e %d minutos.\n", duracao_horas, duracao_minutos_resto);

    return 0;
}</pre>
<p>Este programa em C faz exatamente a mesma coisa que o programa em C++. Ele lê os valores de entrada, realiza os cálculos e exibe o resultado. Enquanto C++ usa <code>cout</code> e <code>cin</code>, C usa <code>printf</code> e <code>scanf</code> para entrada/saída.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">{

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

}
program CalculaDuracaoEvento;
var
  Hi, Mi, Hf, Mf: Integer;
  inicio_minutos, fim_minutos, duracao_minutos: Integer;
  duracao_horas, duracao_minutos_resto: Integer;
begin
  // Leitura dos valores de entrada
  Write('Digite a hora inicial (Hi Mi): ');
  Readln(Hi, Mi);
  Write('Digite a hora final (Hf Mf): ');
  Readln(Hf, Mf);

  // Convertendo hora inicial e final para minutos
  inicio_minutos := Hi * 60 + Mi;
  fim_minutos := Hf * 60 + Mf;

  // Calculando a duração do evento em minutos
  if fim_minutos &gt; inicio_minutos then
    duracao_minutos := fim_minutos - inicio_minutos
  else
    duracao_minutos := (24 * 60 - inicio_minutos) + fim_minutos;

  // Convertendo a duração de minutos para horas e minutos
  duracao_horas := duracao_minutos div 60;
  duracao_minutos_resto := duracao_minutos mod 60;

  // Exibindo o resultado
  WriteLn('A duração do evento é de ', duracao_horas, ' horas e ', duracao_minutos_resto, ' minutos.');
end.</pre>
<p>Este programa em Pascal realiza as mesmas operações que os programas anteriores, lendo os valores de entrada, calculando a duração do evento e exibindo o resultado. Em Pascal, a entrada é feita usando <code>Readln</code> e a saída usando <code>Write</code> ou <code>WriteLn</code>. A declaração de variáveis vem antes do bloco principal do programa.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
# Leitura dos valores de entrada
Hi, Mi = map(int, input("Digite a hora inicial (Hi Mi): ").split())
Hf, Mf = map(int, input("Digite a hora final (Hf Mf): ").split())

# Convertendo hora inicial e final para minutos
inicio_minutos = Hi * 60 + Mi
fim_minutos = Hf * 60 + Mf

# Calculando a duração do evento em minutos
if fim_minutos &gt; inicio_minutos:
    duracao_minutos = fim_minutos - inicio_minutos
else:
    duracao_minutos = (24 * 60 - inicio_minutos) + fim_minutos

# Convertendo a duração de minutos para horas e minutos
duracao_horas = duracao_minutos // 60
duracao_minutos_resto = duracao_minutos % 60

# Exibindo o resultado
print("A duração do evento é de", duracao_horas, "horas e", duracao_minutos_resto, "minutos.")
</pre>
<p>Este programa em Python realiza as mesmas operações que os programas anteriores, lendo os valores de entrada, calculando a duração do evento e exibindo o resultado. Python é uma linguagem de alto nível, por isso não há necessidade de declaração de tipo de variável e a sintaxe é mais simplificada em comparação com C e Pascal.</p>
<p>&nbsp;</p>
<h2>Exemplo em C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;

class Program
{
    static void Main()
    {
        // Leitura dos valores de entrada
        Console.Write("Digite a hora inicial (Hi Mi): ");
        string[] inicio = Console.ReadLine().Split();
        int Hi = int.Parse(inicio[0]);
        int Mi = int.Parse(inicio[1]);

        Console.Write("Digite a hora final (Hf Mf): ");
        string[] fim = Console.ReadLine().Split();
        int Hf = int.Parse(fim[0]);
        int Mf = int.Parse(fim[1]);

        // Convertendo hora inicial e final para minutos
        int inicio_minutos = Hi * 60 + Mi;
        int fim_minutos = Hf * 60 + Mf;

        // Calculando a duração do evento em minutos
        int duracao_minutos;
        if (fim_minutos &gt; inicio_minutos)
            duracao_minutos = fim_minutos - inicio_minutos;
        else
            duracao_minutos = (24 * 60 - inicio_minutos) + fim_minutos;

        // Convertendo a duração de minutos para horas e minutos
        int duracao_horas = duracao_minutos / 60;
        int duracao_minutos_resto = duracao_minutos % 60;

        // Exibindo o resultado
        Console.WriteLine($"A duração do evento é de {duracao_horas} horas e {duracao_minutos_resto} minutos.");
    }
}</pre>
<p>Este programa em C# realiza as mesmas operações que os programas anteriores, lendo os valores de entrada, calculando a duração do evento e exibindo o resultado. C# é uma linguagem fortemente tipada, então é necessário fazer a conversão explícita dos valores lidos para os tipos desejados.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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);

        // Leitura dos valores de entrada
        System.out.print("Digite a hora inicial (Hi Mi): ");
        int Hi = scanner.nextInt();
        int Mi = scanner.nextInt();

        System.out.print("Digite a hora final (Hf Mf): ");
        int Hf = scanner.nextInt();
        int Mf = scanner.nextInt();

        // Convertendo hora inicial e final para minutos
        int inicio_minutos = Hi * 60 + Mi;
        int fim_minutos = Hf * 60 + Mf;

        // Calculando a duração do evento em minutos
        int duracao_minutos;
        if (fim_minutos &gt; inicio_minutos)
            duracao_minutos = fim_minutos - inicio_minutos;
        else
            duracao_minutos = (24 * 60 - inicio_minutos) + fim_minutos;

        // Convertendo a duração de minutos para horas e minutos
        int duracao_horas = duracao_minutos / 60;
        int duracao_minutos_resto = duracao_minutos % 60;

        // Exibindo o resultado
        System.out.println("A duração do evento é de " + duracao_horas + " horas e " + duracao_minutos_resto + " minutos.");
        
        scanner.close();
    }
}</pre>
<p>Este programa em Java realiza as mesmas operações que os programas anteriores, lendo os valores de entrada, calculando a duração do evento e exibindo o resultado. Java é uma linguagem fortemente tipada e orientada a objetos, então é necessário utilizar classes como <code>Scanner</code> para entrada de dados.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::io;

fn main() {
    // Leitura dos valores de entrada
    println!("Digite a hora inicial (Hi Mi): ");
    let mut inicio = String::new();
    io::stdin().read_line(&amp;mut inicio).expect("Falha ao ler entrada.");
    let inicio: Vec&lt;i32&gt; = inicio.trim().split_whitespace()
                                .map(|x| x.parse().expect("Valor inválido."))
                                .collect();
    let Hi = inicio[0];
    let Mi = inicio[1];

    println!("Digite a hora final (Hf Mf): ");
    let mut fim = String::new();
    io::stdin().read_line(&amp;mut fim).expect("Falha ao ler entrada.");
    let fim: Vec&lt;i32&gt; = fim.trim().split_whitespace()
                            .map(|x| x.parse().expect("Valor inválido."))
                            .collect();
    let Hf = fim[0];
    let Mf = fim[1];

    // Convertendo hora inicial e final para minutos
    let inicio_minutos = Hi * 60 + Mi;
    let fim_minutos = Hf * 60 + Mf;

    // Calculando a duração do evento em minutos
    let duracao_minutos = if fim_minutos &gt; inicio_minutos {
        fim_minutos - inicio_minutos
    } else {
        (24 * 60 - inicio_minutos) + fim_minutos
    };

    // Convertendo a duração de minutos para horas e minutos
    let duracao_horas = duracao_minutos / 60;
    let duracao_minutos_resto = duracao_minutos % 60;

    // Exibindo o resultado
    println!("A duração do evento é de {} horas e {} minutos.", duracao_horas, duracao_minutos_resto);
}</pre>
<p>Em Rust, a entrada é tratada usando a biblioteca padrão <code>std::io</code>, enquanto a conversão de tipos é mais explícita usando <code>parse()</code> e <code>expect()</code> para tratamento de erros. A linguagem enfatiza a segurança de memória e a prevenção de erros de tempo de execução.</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
)

func main() {
    // Leitura dos valores de entrada
    var Hi, Mi, Hf, Mf int

    fmt.Print("Digite a hora inicial (Hi Mi): ")
    fmt.Scan(&amp;Hi, &amp;Mi)

    fmt.Print("Digite a hora final (Hf Mf): ")
    fmt.Scan(&amp;Hf, &amp;Mf)

    // Convertendo hora inicial e final para minutos
    inicioMinutos := Hi*60 + Mi
    fimMinutos := Hf*60 + Mf

    // Calculando a duração do evento em minutos
    var duracaoMinutos int
    if fimMinutos &gt; inicioMinutos {
        duracaoMinutos = fimMinutos - inicioMinutos
    } else {
        duracaoMinutos = (24*60 - inicioMinutos) + fimMinutos
    }

    // Convertendo a duração de minutos para horas e minutos
    duracaoHoras := duracaoMinutos / 60
    duracaoMinutosResto := duracaoMinutos % 60

    // Exibindo o resultado
    fmt.Printf("A duração do evento é de %d horas e %d minutos.\n", duracaoHoras, duracaoMinutosResto)
}</pre>
<p>Este programa em Go realiza as mesmas operações que os programas anteriores, lendo os valores de entrada, calculando a duração do evento e exibindo o resultado. Go é uma linguagem compilada, concorrente e de tipagem estática, e sua sintaxe é mais simples e concisa em comparação com algumas outras linguagens.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>Neste exercício, exploramos como resolver um problema simples de cálculo de duração de evento em diferentes linguagens de programação, como C++, C, Pascal, Python, C#, Java, Rust e Go. Ao escrever e comparar as soluções em várias linguagens, pudemos observar as diferentes sintaxes, abordagens e características de cada uma. A prática nos permitiu entender melhor como lidar com entrada/saída, fazer cálculos básicos, controlar o fluxo do programa e manipular tipos de dados em cada linguagem.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado!</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Programação </strong></p>
<p><strong>#DesenvolvimentoDeSoftware </strong></p>
<p><strong>#LinguagensDeProgramação</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-leia-4-valores-hi-mi-hf-mf-representando-respectivamente-a-hora-e-minuto-inicial-e-final-de-um-evento-e-calcule-a-duracao-do-mesmo-em-horas-e-minutos-cons/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa que utilize pilha para armazenar caracteres. O programa deve apresentar um menu com as seguintes opções:</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-utilize-pilha-para-armazenar-caracteres-o-programa-deve-apresentar-um-menu-com-as-seguintes-opcoes/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-utilize-pilha-para-armazenar-caracteres-o-programa-deve-apresentar-um-menu-com-as-seguintes-opcoes/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Sat, 13 Apr 2024 17:33:30 +0000</pubDate>
				<category><![CDATA[Algoritmos com Matrizes e Estruturas]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[Estrutura de dados]]></category>
		<category><![CDATA[implementação]]></category>
		<category><![CDATA[Interatividade]]></category>
		<category><![CDATA[Iteração]]></category>
		<category><![CDATA[Linguagem de Programação]]></category>
		<category><![CDATA[Manipulação]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[Pilha]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Reutilização]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3903</guid>

					<description><![CDATA[Menu do sistema Adicionar item à pilha. Remover item da pilha. Sair do programa. O programa deve permitir ao usuário escolher uma opção do menu. Ao selecionar a opção 1, o programa deve solicitar ao usuário que insira um caractere para ser adicionado à pilha. Ao selecionar a opção 2, o programa deve remover o [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3905" src="https://giovanidacruz.com.br/wp-content/uploads/2024/04/stack-pilhas-exercicio-jpg.webp" alt="stack pilhas exercicio" width="762" height="320" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/04/stack-pilhas-exercicio-jpg.webp 762w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/stack-pilhas-exercicio-300x126.webp 300w" sizes="auto, (max-width: 762px) 100vw, 762px" /></p>
<p><strong>Menu do sistema</strong></p>
<ol>
<li>Adicionar item à pilha.</li>
<li>Remover item da pilha.</li>
<li>Sair do programa.</li>
</ol>
<p>O programa deve permitir ao usuário escolher uma opção do menu. Ao selecionar a opção 1, o programa deve solicitar ao usuário que insira um caractere para ser adicionado à pilha. Ao selecionar a opção 2, o programa deve remover o último caractere adicionado à pilha e exibi-lo na tela. Caso a pilha esteja vazia, o programa deve informar ao usuário que a pilha está vazia. A opção 3 deve encerrar o programa.</p>
<p>Ao final de cada operação (adição ou remoção), o programa deve exibir o conteúdo atual da pilha.</p>
<p><strong>Dica:</strong> Para c++, utilize a estrutura de dados <code>stack</code> da biblioteca padrão do C++ para implementar a pilha.</p>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p>Neste exercício, podemos aprender sobre o uso de pilhas e como implementar um programa simples que utiliza essa estrutura de dados. Além disso, podemos aprender sobre:</p>
<p><strong>Interatividade do usuário</strong>: O exercício envolve a interação do usuário com o programa por meio de um menu de opções. Isso nos permite entender como criar interfaces simples para interagir com o usuário.</p>
<p><strong>Manipulação de pilhas</strong>: A implementação do programa envolve a manipulação de uma pilha de caracteres, incluindo adição e remoção de elementos. Isso nos permite entender como trabalhar com pilhas na prática e entender seus métodos básicos, como <code>push</code> e <code>pop</code>.</p>
<p><strong>Tratamento de erros</strong>: O programa lida com casos em que a pilha está vazia ao tentar remover um elemento. Isso nos ensina sobre como lidar com situações de erro e fornecer feedback adequado ao usuário.</p>
<p><strong>Estrutura de repetição</strong>: O uso do loop <code>do-while</code> permite que o programa continue executando até que o usuário escolha a opção de saída. Isso nos ajuda a entender como criar estruturas de repetição controladas por usuário.</p>
<p><strong>Organização do código</strong>: O código está estruturado de forma organizada, com funções separadas para diferentes funcionalidades, como impressão da pilha e manipulação do menu. Isso nos ensina sobre boas práticas de organização e modularização do código.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;
#include &lt;stack&gt;

using namespace std;

void imprimePilha(stack&lt;char&gt; pilha) {
  cout &lt;&lt; "-------" &lt;&lt; endl;
  while (!pilha.empty()) {
    cout &lt;&lt; "|  " &lt;&lt; pilha.top() &lt;&lt; "  |" &lt;&lt; endl;
    cout &lt;&lt; "-------" &lt;&lt; endl;
    pilha.pop();
  }
}

int main() {
  stack&lt;char&gt; pilha;
  int opcao;

  do {
    cout &lt;&lt; "\nSelecione uma opção:\n";
    cout &lt;&lt; "1. Adicionar item\n";
    cout &lt;&lt; "2. Remover item\n";
    cout &lt;&lt; "3. Sair\n";
    cout &lt;&lt; "Opção: ";
    cin &gt;&gt; opcao;

    switch (opcao) {
      case 1:
        char item;
        cout &lt;&lt; "Digite o item a ser adicionado: ";
        cin &gt;&gt; item;
        pilha.push(item);
        cout &lt;&lt; "Item adicionado!" &lt;&lt; endl;
        break;

      case 2:
        if (pilha.empty()) {
          cout &lt;&lt; "Pilha vazia!" &lt;&lt; endl;
        } else {
          char elementoRemovido = pilha.top();
          pilha.pop();
          cout &lt;&lt; "Item removido: " &lt;&lt; elementoRemovido &lt;&lt; endl;
        }
        break;

      case 3:
        cout &lt;&lt; "Saindo..." &lt;&lt; endl;
        break;

      default:
        cout &lt;&lt; "Opção inválida!" &lt;&lt; endl;
    }

    imprimePilha(pilha);
  } while (opcao != 3);

  return 0;
}</pre>
<p>O programa implementa um menu para manipulação de uma pilha de caracteres em C++. As opções permitem adicionar e remover elementos da pilha, com validação para pilha vazia. O código utiliza um loop <code>do-while</code> para interação contínua com o usuário e uma função para imprimir visualmente a pilha.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::collections::LinkedList;
use std::io::{self, Write};

fn imprime_pilha(pilha: &amp;LinkedList&lt;char&gt;) {
    println!("-------");
    for item in pilha.iter().rev() {
        println!("|  {}  |", item);
        println!("-------");
    }
}

fn main() {
    let mut pilha: LinkedList&lt;char&gt; = LinkedList::new();
    let mut opcao: i32;

    loop {
        println!("\nSelecione uma opção:");
        println!("1. Adicionar item");
        println!("2. Remover item");
        println!("3. Sair");
        print!("Opção: ");
        io::stdout().flush().unwrap();
        
        let mut input = String::new();
        io::stdin().read_line(&amp;mut input).expect("Falha ao ler a entrada");
        opcao = input.trim().parse().expect("Entrada inválida");

        match opcao {
            1 =&gt; {
                print!("Digite o item a ser adicionado: ");
                io::stdout().flush().unwrap();
                let mut input = String::new();
                io::stdin().read_line(&amp;mut input).expect("Falha ao ler a entrada");
                let item = input.trim().chars().next().expect("Entrada inválida");
                pilha.push_front(item);
                println!("Item adicionado!");
            },
            2 =&gt; {
                match pilha.pop_front() {
                    Some(item) =&gt; println!("Item removido: {}", item),
                    None =&gt; println!("Pilha vazia!"),
                }
            },
            3 =&gt; {
                println!("Saindo...");
                break;
            },
            _ =&gt; println!("Opção inválida!"),
        }

        imprime_pilha(&amp;pilha);
    }
}</pre>
<p>Este código em Rust utiliza a estrutura de dados <code>LinkedList</code> para representar a pilha. Ele apresenta um menu de opções ao usuário e permite adicionar e remover itens da pilha, além de sair do programa quando desejado.</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "container/list"
    "fmt"
    "os"
    "os/exec"
)

func clearScreen() {
    cmd := exec.Command("cmd", "/c", "cls")
    cmd.Stdout = os.Stdout
    cmd.Run()
}

func imprimePilha(pilha *list.List) {
    clearScreen()
    fmt.Println("-------")
    for e := pilha.Front(); e != nil; e = e.Next() {
        fmt.Printf("|  %c  |\n", e.Value)
        fmt.Println("-------")
    }
}

func main() {
    pilha := list.New()

    for {
        fmt.Println("\nSelecione uma opção:")
        fmt.Println("1. Adicionar item")
        fmt.Println("2. Remover item")
        fmt.Println("3. Sair")
        fmt.Print("Opção: ")

        var opcao int
        fmt.Scanln(&amp;opcao)

        switch opcao {
        case 1:
            var item rune
            fmt.Print("Digite o item a ser adicionado: ")
            fmt.Scanf("%c\n", &amp;item)
            pilha.PushFront(item)
            fmt.Println("Item adicionado!")
        case 2:
            if pilha.Len() == 0 {
                fmt.Println("Pilha vazia!")
            } else {
                item := pilha.Remove(pilha.Front())
                fmt.Printf("Item removido: %c\n", item)
            }
        case 3:
            fmt.Println("Saindo...")
            return
        default:
            fmt.Println("Opção inválida!")
        }

        imprimePilha(pilha)
    }
}</pre>
<p>Este código em Go realiza as mesmas operações que o programa em C++, utilizando a estrutura de dados <code>list.List</code> da biblioteca padrão. Ele apresenta um menu de opções ao usuário e permite adicionar e remover itens da pilha, além de sair do programa quando desejado. A função <code>imprimePilha</code> é responsável por exibir a pilha visualmente no console.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>Este exercício proporcionou uma oportunidade valiosa de explorar a implementação de uma estrutura de dados fundamental, como uma pilha, em diferentes linguagens de programação. Além disso, pude destacar a importância de compreender os recursos e as bibliotecas disponíveis em cada linguagem para implementar soluções eficazes. Este exercício reforçou a compreensão dos conceitos fundamentais de programação e a habilidade de adaptar esses conceitos a diferentes ambientes de desenvolvimento.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dívidas ou sugestões? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Programação </strong></p>
<p><strong>#EstruturaDeDados </strong></p>
<p><strong>#DesafioDeProgramação</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-utilize-pilha-para-armazenar-caracteres-o-programa-deve-apresentar-um-menu-com-as-seguintes-opcoes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa que leia 5 números e informe o maior número</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-5-numeros-e-informe-o-maior-numero/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-5-numeros-e-informe-o-maior-numero/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Thu, 11 Apr 2024 02:09:28 +0000</pubDate>
				<category><![CDATA[Algoritmos com Laços]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[Adaptabilidade]]></category>
		<category><![CDATA[comparação]]></category>
		<category><![CDATA[Eficiência]]></category>
		<category><![CDATA[Entrada e saída]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[Maior número]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[sintaxe]]></category>
		<category><![CDATA[Variáveis]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3890</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? 💻✨ Vamos resolver um desafio simples: encontrar o maior número entre cinco valores utilizando apenas uma variável. 💡🔍 Que tal dar uma olhada nas diferentes abordagens em C, C++, Pascal, Python, C#, Java, Rust e Go. 🚀 Neste nosso exercício, a ideia é sem utilizar vetores, solicitar 5 números [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3891" src="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmo-ler-numeros-descobrir-maior-jpg.webp" alt="algoritmo ler números e descobrir maior" width="800" height="421" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmo-ler-numeros-descobrir-maior-jpg.webp 800w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmo-ler-numeros-descobrir-maior-300x158.webp 300w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmo-ler-numeros-descobrir-maior-768x404.webp 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>Fala galera da programação, tudo beleza?</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2728.png" alt="✨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Vamos resolver um desafio simples: encontrar o maior número entre cinco valores utilizando apenas uma variável. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Que tal dar uma olhada nas diferentes abordagens em C, C++, Pascal, Python, C#, Java, Rust e Go. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Neste nosso exercício, a ideia é sem utilizar vetores, solicitar 5 números ao usuário, descobrir e mostrar o maior número lido.</p>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p>Este exercício em C++ oferece várias lições:</p>
<p><strong>Uso eficiente de variáveis:</strong> Mostra como é possível realizar uma tarefa (encontrar o maior número entre cinco números) usando apenas uma variável (<code>maior</code>). Isso demonstra a importância de pensar de forma eficiente ao usar variáveis, evitando o uso desnecessário de memória.</p>
<p><strong>Utilização de estruturas de controle:</strong> Demonstração do uso da estrutura de controle de repetição (loop <code>for</code>) para iterar sobre os cinco números e tomar decisões com base neles.</p>
<p><strong>Lógica de programação:</strong> O exercício desenvolve a habilidade de pensar logicamente para resolver problemas. Neste caso, é necessário comparar cada número com o atual <code>maior</code> e, se for maior, atualizar o valor de <code>maior</code>.</p>
<p><strong>Entrada e saída de dados:</strong> O programa envolve entrada de dados do usuário e exibição de resultados que são práticas comuns em programação.</p>
<p><strong>Boas práticas de programação:</strong> Utilização de indentação, comentários explicativos e organização do código, que são boas práticas para tornar o código mais legível e compreensível.</p>
<p><strong>Entendimento do conceito de variáveis:</strong> Ajuda a reforçar o conceito de variáveis e seu papel em armazenar dados durante a execução de um programa.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;
using namespace std;

int main() {
    int num;
    int maior;

    cout &lt;&lt; "Digite o 1º número: ";
    cin &gt;&gt; maior; // Inicializa o maior com o primeiro número

    for(int i = 2; i &lt;= 5; ++i) {
        cout &lt;&lt; "Digite o " &lt;&lt; i &lt;&lt; "º número: ";
        cin &gt;&gt; num;
        if(num &gt; maior) {
            maior = num; // Atualiza o maior se o número atual for maior
        }
    }

    cout &lt;&lt; "O maior número é: " &lt;&lt; maior &lt;&lt; endl;

    return 0;
}</pre>
<p>Neste programa, você inicializa a variável <code>maior</code> com o primeiro número lido e, em seguida, itera sobre os próximos quatro números. A cada iteração, você compara o número lido com o valor atual de <code>maior</code> e, se for maior, atualiza <code>maior</code>. No final, a variável <code>maior</code> conterá o maior número entre os cinco lidos.</p>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

int main() {
    int num;
    int maior;

    printf("Digite o 1º número: ");
    scanf("%d", &amp;maior); // Inicializa o maior com o primeiro número

    for(int i = 2; i &lt;= 5; ++i) {
        printf("Digite o %dº número: ", i);
        scanf("%d", &amp;num);
        if(num &gt; maior) {
            maior = num; // Atualiza o maior se o número atual for maior
        }
    }

    printf("O maior número é: %d\n", maior);

    return 0;
}</pre>
<p>&nbsp;</p>
<p>Este código em C faz exatamente a mesma coisa que o código em C++. Ele lê cinco números e encontra o maior entre eles, usando apenas a variável <code>maior</code>. As diferenças principais estão na forma como a entrada e a saída são tratadas, já que em C utilizamos <code>printf</code> e <code>scanf</code> em vez de <code>cout</code> e <code>cin</code>, respectivamente.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">{

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

}
program MaiorNumero;

var
  num, maior, i: integer;

begin
  Write('Digite o 1º número: ');
  Readln(maior); // Inicializa o maior com o primeiro número

  for i := 2 to 5 do
  begin
    Write('Digite o ', i, 'º número: ');
    Readln(num);
    if num &gt; maior then
      maior := num; // Atualiza o maior se o número atual for maior
  end;

  Writeln('O maior número é: ', maior);

end.</pre>
<p>Este código em Pascal realiza a mesma tarefa que os códigos em C e C++. Ele lê cinco números e encontra o maior entre eles, utilizando apenas a variável <code>maior</code>. As principais diferenças estão na sintaxe da linguagem, como o uso de <code>Write</code> e <code>Readln</code> para entrada e saída, e a estrutura do loop <code>for</code>, que é diferente da de C e C++, utilizando a palavra-chave <code>to</code> para especificar o intervalo de valores.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
maior = int(input("Digite o 1º número: "))
for i in range(2, 6):
    num = int(input(f"Digite o {i}º número: "))
    if num &gt; maior:
        maior = num

print("O maior número é:", maior)</pre>
<p>Neste código em Python, utilizamos a função <code>input()</code> para obter os números inseridos pelo usuário. Utilizamos um loop <code>for</code> para iterar cinco vezes (de 2 a 5) e em cada iteração solicitamos um novo número. Em seguida, comparamos esse número com o atual <code>maior</code> e, se for maior, atualizamos o valor de <code>maior</code>. Por fim, exibimos o maior número encontrado. Python oferece uma sintaxe mais concisa e direta para realizar esta tarefa.</p>
<p>&nbsp;</p>
<h2>Exemplo em C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">using System;

class Program
{
    static void Main()
    {
        int maior;

        Console.Write("Digite o 1º número: ");
        maior = Convert.ToInt32(Console.ReadLine()); // Inicializa o maior com o primeiro número

        for (int i = 2; i &lt;= 5; i++)
        {
            Console.Write("Digite o {0}º número: ", i);
            int num = Convert.ToInt32(Console.ReadLine());
            if (num &gt; maior)
            {
                maior = num; // Atualiza o maior se o número atual for maior
            }
        }

        Console.WriteLine("O maior número é: " + maior);
    }
}</pre>
<p>Este código em C# faz a mesma coisa que os exemplos anteriores. Ele lê cinco números e encontra o maior entre eles, utilizando apenas a variável <code>maior</code>. As diferenças principais estão na sintaxe da linguagem, como o uso de <code>Console.WriteLine()</code> e <code>Console.ReadLine()</code> para entrada e saída, e a declaração do loop <code>for</code> segue o padrão C#.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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 maior;

        System.out.print("Digite o 1º número: ");
        maior = scanner.nextInt(); // Inicializa o maior com o primeiro número

        for (int i = 2; i &lt;= 5; i++) {
            System.out.print("Digite o " + i + "º número: ");
            int num = scanner.nextInt();
            if (num &gt; maior) {
                maior = num; // Atualiza o maior se o número atual for maior
            }
        }

        System.out.println("O maior número é: " + maior);
        scanner.close();
    }
}</pre>
<p>Neste código em Java, utilizamos a classe <code>Scanner</code> para obter os números inseridos pelo usuário. Assim como nos exemplos anteriores, usamos um loop <code>for</code> para iterar cinco vezes (de 2 a 5) e em cada iteração solicitamos um novo número. Em seguida, comparamos esse número com o atual <code>maior</code> e, se for maior, atualizamos o valor de <code>maior</code>. Por fim, exibimos o maior número encontrado.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::io;

fn main() {
    let mut maior = String::new();

    println!("Digite o 1º número: ");
    io::stdin().read_line(&amp;mut maior).expect("Falha ao ler entrada.");
    let mut maior: i32 = maior.trim().parse().expect("Por favor, digite um número.");

    for i in 2..=5 {
        let mut input = String::new();
        println!("Digite o {}º número: ", i);
        io::stdin().read_line(&amp;mut input).expect("Falha ao ler entrada.");
        let num: i32 = input.trim().parse().expect("Por favor, digite um número.");
        if num &gt; maior {
            maior = num; // Atualiza o maior se o número atual for maior
        }
    }

    println!("O maior número é: {}", maior);
}</pre>
<p>Neste código em Rust, utilizamos a biblioteca padrão <code>std::io</code> para obter os números inseridos pelo usuário. Assim como nos exemplos anteriores, usamos um loop <code>for</code> para iterar cinco vezes (de 2 a 5) e, em cada iteração, solicitamos um novo número. Em seguida, comparamos esse número com o atual <code>maior</code> e, se for maior, atualizamos o valor de <code>maior</code>. Por fim, exibimos o maior número encontrado. Rust é uma linguagem moderna que enfatiza a segurança e o desempenho, e este código demonstra a sua sintaxe robusta.</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
)

func main() {
    var maior int

    fmt.Print("Digite o 1º número: ")
    fmt.Scanln(&amp;maior) // Inicializa o maior com o primeiro número

    for i := 2; i &lt;= 5; i++ {
        var num int
        fmt.Printf("Digite o %dº número: ", i)
        fmt.Scanln(&amp;num)
        if num &gt; maior {
            maior = num // Atualiza o maior se o número atual for maior
        }
    }

    fmt.Println("O maior número é:", maior)
}</pre>
<p>Neste código em Go, utilizamos o pacote <code>fmt</code> para entrada e saída de dados. Assim como nos exemplos anteriores, usamos um loop <code>for</code> para iterar cinco vezes (de 2 a 5) e em cada iteração solicitamos um novo número. Em seguida, comparamos esse número com o atual <code>maior</code> e, se for maior, atualizamos o valor de <code>maior</code>. Por fim, exibimos o maior número encontrado. Go é uma linguagem de programação eficiente e fácil de aprender, e este código demonstra sua sintaxe simples e concisa.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Programação </strong></p>
<p><strong>#LinguagensDeProgramação </strong></p>
<p><strong>#DesenvolvimentoDeSoftware </strong></p>
<p><strong>#Aprendizado</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-5-numeros-e-informe-o-maior-numero/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa em que leia um número e escreva:  &#8220;Zero&#8221;, se o valor é zero; &#8220;Positivo&#8221;, e o valor é maior que zero; &#8220;Negativo&#8221; se o valor é negativo</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-leia-um-numero-e-escreva-zero-se-o-valor-e-zero-positivo-e-o-valor-e-maior-que-zero-negativo-se-o-valor-e-negativo/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-leia-um-numero-e-escreva-zero-se-o-valor-e-zero-positivo-e-o-valor-e-maior-que-zero-negativo-se-o-valor-e-negativo/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Wed, 10 Apr 2024 01:35:09 +0000</pubDate>
				<category><![CDATA[Algoritmos com Se, Senão e Caso]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[Aprendizado comparativo]]></category>
		<category><![CDATA[comparação]]></category>
		<category><![CDATA[Conversão de tipos]]></category>
		<category><![CDATA[Eficiência de código]]></category>
		<category><![CDATA[Entrada/saída de dados]]></category>
		<category><![CDATA[Estilos de programação]]></category>
		<category><![CDATA[Estruturas condicionais]]></category>
		<category><![CDATA[linguagens de programação]]></category>
		<category><![CDATA[Portabilidade]]></category>
		<category><![CDATA[sintaxe]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3878</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? Novo algoritmo na área com o tema desvio condicional. Hoje vamos explorar uma variedade de linguagens de programação! 🚀 Comparando diferentes abordagens para resolver um problema simples: determinar se um número é zero, positivo ou negativo. Da sintaxe às estruturas condicionais, mergulhamos na essência de cada linguagem. &#160; O [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3879" src="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-desvio-condicional1-jpg.webp" alt="Algoritmos testes if-else-if" width="743" height="418" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-desvio-condicional1-jpg.webp 743w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmos-desvio-condicional1-300x169.webp 300w" sizes="auto, (max-width: 743px) 100vw, 743px" /></p>
<p>Fala galera da programação, tudo beleza? Novo algoritmo na área com o tema desvio condicional.</p>
<p>Hoje vamos explorar uma variedade de linguagens de programação! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Comparando diferentes abordagens para resolver um problema simples: determinar se um número é zero, positivo ou negativo. Da sintaxe às estruturas condicionais, mergulhamos na essência de cada linguagem.</p>
<p>&nbsp;</p>
<h2>O que podemos aprender?</h2>
<p><strong>Lógica de Programação:</strong> Ao criar um programa simples para verificar se um número é zero, positivo ou negativo, praticamos conceitos básicos de lógica de programação, como estruturas condicionais e entrada/saída de dados.</p>
<p><strong>Conversão de Tipos de Dados:</strong> Em algumas linguagens, como Python e Rust, é necessário converter a entrada do usuário de uma string para um tipo de dados numérico, como inteiro, usando funções como <code>int()</code> (Python) ou <code>parse</code> (Rust).</p>
<p><strong>Diferenças entre Linguagens de Programação:</strong> Ao escrever o mesmo programa em várias linguagens, podemos observar as diferenças na sintaxe, nas convenções de nomenclatura e nas formas de entrada/saída de dados entre as linguagens.</p>
<p><strong>Prática de Codificação:</strong> Este exercício oferece uma oportunidade de praticar a escrita de código em diferentes linguagens, o que é útil para desenvolver habilidades de codificação e familiaridade com diversas linguagens de programação.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">#include &lt;iostream&gt;
using namespace std;

int main() {
    int numero;

    // Solicita ao usuário que insira um número
    cout &lt;&lt; "Digite um numero: ";
    cin &gt;&gt; numero;

    // Verifica se o número é zero, positivo ou negativo e imprime a mensagem correspondente
    if (numero == 0) {
        cout &lt;&lt; "Zero" &lt;&lt; endl;
    } else if (numero &gt; 0) {
        cout &lt;&lt; "Positivo" &lt;&lt; endl;
    } else {
        cout &lt;&lt; "Negativo" &lt;&lt; endl;
    }

    return 0;
}</pre>
<p>Este programa solicitará ao usuário que insira um número, e então irá determinar se é zero, positivo ou negativo, e imprimirá a mensagem correspondente.</p>
<p>A estratégia utilizada para resolver esse exercício é bastante simples. Aqui está uma explicação passo a passo:</p>
<ol>
<li><strong>Solicitação de Entrada:</strong> O programa começa solicitando ao usuário que insira um número.</li>
<li><strong>Leitura da Entrada:</strong> Em seguida, o programa lê o número inserido pelo usuário e armazena-o em uma variável.</li>
<li><strong>Verificação:</strong> O programa verifica se o número é zero, positivo ou negativo.</li>
<li><strong>Impressão da Mensagem Correspondente:</strong> Dependendo do resultado da verificação, o programa imprime a mensagem &#8220;Zero&#8221;, &#8220;Positivo&#8221; ou &#8220;Negativo&#8221;.</li>
<li><strong>Fim do Programa:</strong> O programa termina.</li>
</ol>
<p>Essencialmente, a estratégia é baseada em uma estrutura condicional (if-else) que compara o número inserido com zero e determina se é positivo ou negativo, e então imprime a mensagem correspondente.</p>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

int main() {
    int numero;

    // Solicita ao usuário que insira um número
    printf("Digite um numero: ");
    scanf("%d", &amp;numero);

    // Verifica se o número é zero, positivo ou negativo e imprime a mensagem correspondente
    if (numero == 0) {
        printf("Zero\n");
    } else if (numero &gt; 0) {
        printf("Positivo\n");
    } else {
        printf("Negativo\n");
    }

    return 0;
}</pre>
<p>Neste programa em C, a lógica é a mesma que expliquei anteriormente para o programa em C++. Ele solicita ao usuário que insira um número, lê o número inserido, verifica se é zero, positivo ou negativo e imprime a mensagem correspondente.</p>
<p>No exemplo em C, a entrada de dados é realizada com a função <code>scanf</code> e a saída com <code>printf</code>, enquanto em C++, são utilizados <code>cin</code> e <code>cout</code>.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">{

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

}
program VerificarNumero;
var
  numero: integer;

begin
  // Solicita ao usuário que insira um número
  writeln('Digite um numero: ');
  readln(numero);

  // Verifica se o número é zero, positivo ou negativo e imprime a mensagem correspondente
  if numero = 0 then
    writeln('Zero')
  else if numero &gt; 0 then
    writeln('Positivo')
  else
    writeln('Negativo');
end.</pre>
<p>Neste programa em Pascal, a lógica é a mesma que expliquei anteriormente para os programas em C e C++. Ele solicita ao usuário que insira um número, lê o número inserido, verifica se é zero, positivo ou negativo e imprime a mensagem correspondente.</p>
<p>Lembrando que em Pascal, as variáveis são declaradas com <code>var</code>, e a entrada/saída é feita com <code>readln</code> e <code>writeln</code>. As estruturas condicionais utilizam <code>if</code>, <code>else</code>, e os blocos são delimitados por <code>begin</code> e <code>end</code>.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
# Solicita ao usuário que insira um número
numero = int(input("Digite um número: "))

# Verifica se o número é zero, positivo ou negativo e imprime a mensagem correspondente
if numero == 0:
    print("Zero")
elif numero &gt; 0:
    print("Positivo")
else:
    print("Negativo")</pre>
<p>Em Python, a entrada é feita com a função <code>input</code>, que retorna uma string, então usamos <code>int()</code> para converter essa string em um número inteiro. A estrutura condicional é semelhante à do C/C++, mas em Python, não precisamos de parênteses e usamos <code>:</code> para indicar o início de um bloco de código. A função <code>print</code> é usada para exibir mensagens na tela.</p>
<p>&nbsp;</p>
<h2>Exemplo em C#</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;

class Program
{
    static void Main(string[] args)
    {
        // Solicita ao usuário que insira um número
        Console.Write("Digite um número: ");
        int numero = Convert.ToInt32(Console.ReadLine());

        // Verifica se o número é zero, positivo ou negativo e imprime a mensagem correspondente
        if (numero == 0)
        {
            Console.WriteLine("Zero");
        }
        else if (numero &gt; 0)
        {
            Console.WriteLine("Positivo");
        }
        else
        {
            Console.WriteLine("Negativo");
        }
    }
}</pre>
<p>Em C#, a entrada é feita usando <code>Console.ReadLine()</code> para obter a entrada do usuário como uma string e <code>Convert.ToInt32()</code> para converter essa string em um número inteiro. A estrutura condicional é semelhante à do C/C++, e a função <code>Console.WriteLine()</code> é usada para exibir mensagens na tela.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">/******************************************************************************

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);

        // Solicita ao usuário que insira um número
        System.out.print("Digite um número: ");
        int numero = scanner.nextInt();

        // Verifica se o número é zero, positivo ou negativo e imprime a mensagem correspondente
        if (numero == 0) {
            System.out.println("Zero");
        } else if (numero &gt; 0) {
            System.out.println("Positivo");
        } else {
            System.out.println("Negativo");
        }

        scanner.close();
    }
}</pre>
<p>Em Java, usamos a classe <code>Scanner</code> para obter entrada do usuário. O método <code>nextInt()</code> é usado para ler um número inteiro. A estrutura condicional é semelhante à do C/C++, e <code>System.out.println()</code> é usada para exibir mensagens na tela.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::io;

fn main() {
    // Solicita ao usuário que insira um número
    println!("Digite um número:");
    let mut input = String::new();
    io::stdin().read_line(&amp;mut input).expect("Falha ao ler entrada.");
    let numero: i32 = input.trim().parse().expect("Por favor, insira um número válido.");

    // Verifica se o número é zero, positivo ou negativo e imprime a mensagem correspondente
    if numero == 0 {
        println!("Zero");
    } else if numero &gt; 0 {
        println!("Positivo");
    } else {
        println!("Negativo");
    }
}</pre>
<p>Em Rust, usamos <code>println!</code> para exibir mensagens na tela e <code>std::io</code> para entrada de usuário. O método <code>read_line</code> é usado para ler uma linha da entrada do usuário, e <code>parse</code> é usado para converter a entrada em um número inteiro. A estrutura condicional é semelhante à do C/C++.</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
)

func main() {
    var numero int

    // Solicita ao usuário que insira um número
    fmt.Println("Digite um número:")
    fmt.Scanln(&amp;numero)

    // Verifica se o número é zero, positivo ou negativo e imprime a mensagem correspondente
    if numero == 0 {
        fmt.Println("Zero")
    } else if numero &gt; 0 {
        fmt.Println("Positivo")
    } else {
        fmt.Println("Negativo")
    }
}</pre>
<p>Em Go, usamos <code>fmt.Println()</code> para exibir mensagens na tela e <code>fmt.Scanln()</code> para entrada de usuário. A estrutura condicional é semelhante à do C/C++.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>Este exercício nos proporcionou uma valiosa oportunidade de explorar e comparar diferentes linguagens de programação ao resolver o mesmo problema básico: determinar se um número é zero, positivo ou negativo. Ao escrever o código em várias linguagens, pudemos observar as diferenças na sintaxe, nas convenções de nomenclatura, nas bibliotecas padrão e nos estilos de programação de cada linguagem.</p>
<p>Além disso, ao comparar as implementações, pudemos refletir sobre conceitos mais amplos de programação, como estruturas condicionais, entrada/saída de dados, conversão de tipos e eficiência de código. Essa análise nos ajudou a entender melhor as características e os pontos fortes de cada linguagem, bem como a desenvolver uma compreensão mais profunda de princípios fundamentais de programação e engenharia de software.</p>
<p>Portanto, este exercício não apenas nos permitiu praticar a lógica de programação, mas também nos proporcionou uma valiosa oportunidade de aprendizado sobre a codificação em várias linguagens.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Programação </strong></p>
<p><strong>#LinguagensDeProgramação </strong></p>
<p><strong>#Comparação </strong></p>
<p><strong>#Aprendizado</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-leia-um-numero-e-escreva-zero-se-o-valor-e-zero-positivo-e-o-valor-e-maior-que-zero-negativo-se-o-valor-e-negativo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa que leia as 3 notas de um aluno e escreva &#8220;APROVADO&#8221; caso a média aritmética for maior ou igual a 6, caso contrário escreva &#8220;REPROVADO&#8221;</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-as-3-notas-de-um-aluno-e-escreva-aprovado-caso-a-media-aritmetica-for-maior-ou-igual-a-6-caso-contrario-escreva-reprovado/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-as-3-notas-de-um-aluno-e-escreva-aprovado-caso-a-media-aritmetica-for-maior-ou-igual-a-6-caso-contrario-escreva-reprovado/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Fri, 05 Apr 2024 01:47:14 +0000</pubDate>
				<category><![CDATA[Algoritmos com Se, Senão e Caso]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[algortimo]]></category>
		<category><![CDATA[Aluno]]></category>
		<category><![CDATA[Aprovação]]></category>
		<category><![CDATA[Decisão]]></category>
		<category><![CDATA[entrada]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[média]]></category>
		<category><![CDATA[Notas]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Reprovação]]></category>
		<category><![CDATA[saída]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3866</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? Hoje vamos descubra como este simples exercício de programação em várias linguagens pode fortalecer suas habilidades de codificação! 🚀 Aprenda a calcular médias de notas e determinar a aprovação ou reprovação de alunos em C++, C, Pascal, Python, C#, Java, Rust e Go. &#160; O que podemos aprender neste [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3868" src="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmo-aluno-aprovado-reprovado-jpg.webp" alt="algoritmo aluno aprovado ou reprovado" width="800" height="420" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmo-aluno-aprovado-reprovado-jpg.webp 800w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmo-aluno-aprovado-reprovado-300x158.webp 300w, https://giovanidacruz.com.br/wp-content/uploads/2024/04/algoritmo-aluno-aprovado-reprovado-768x403.webp 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>Fala galera da programação, tudo beleza?</p>
<p>Hoje vamos descubra como este simples exercício de programação em várias linguagens pode fortalecer suas habilidades de codificação! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Aprenda a calcular médias de notas e determinar a aprovação ou reprovação de alunos em C++, C, Pascal, Python, C#, Java, Rust e Go.</p>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p>Este exercício proporciona uma oportunidade para aprender e praticar os seguintes conceitos:</p>
<ol>
<li><strong>Entrada e Saída de Dados</strong>: Você aprendeu várias maneiras de interagir com o usuário para obter informações através de entrada de dados e exibir resultados por meio de saída de dados.</li>
<li><strong>Cálculos Simples</strong>: Você implementou um cálculo básico para encontrar a média aritmética das notas fornecidas pelo usuário.</li>
<li><strong>Estruturas de Controle</strong>: Utilizou estruturas de decisão (como <code>if</code> e <code>else</code>) para determinar se o aluno estava aprovado ou reprovado com base na média calculada.</li>
<li><strong>Lidando com Erros e Exceções</strong>: Em algumas linguagens, como Python e Go, foi necessário lidar com a possibilidade de entrada de dados inválida ou inesperada, garantindo que o programa continuasse funcionando corretamente.</li>
<li><strong>Prática de Sintaxe</strong>: Este exercício permitiu praticar a sintaxe básica das linguagens de programação usadas (C++, C, Pascal, Python, C#, Java, Rust e Go).</li>
</ol>
<p>Além disso, ao comparar a implementação do mesmo problema em várias linguagens, você pode notar diferenças e semelhanças na sintaxe, paradigmas de programação e ferramentas disponíveis em cada uma delas. Isso pode ajudá-lo a entender melhor as características únicas de cada linguagem e a tomar decisões mais informadas sobre qual usar em diferentes situações.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;

using namespace std;

int main() {
    float nota1, nota2, nota3;
    float media;

    // Solicita as notas ao usuário
    cout &lt;&lt; "Digite a primeira nota: ";
    cin &gt;&gt; nota1;

    cout &lt;&lt; "Digite a segunda nota: ";
    cin &gt;&gt; nota2;

    cout &lt;&lt; "Digite a terceira nota: ";
    cin &gt;&gt; nota3;

    // Calcula a média aritmética
    media = (nota1 + nota2 + nota3) / 3;

    // Verifica se o aluno está aprovado ou reprovado
    if (media &gt;= 6.0) {
        cout &lt;&lt; "APROVADO" &lt;&lt; endl;
    } else {
        cout &lt;&lt; "REPROVADO" &lt;&lt; endl;
    }

    return 0;
}</pre>
<p>Este programa solicita ao usuário que insira as três notas do aluno e, em seguida, calcula a média aritmética dessas notas. Com base na média calculada, ele imprime &#8220;APROVADO&#8221; se a média for maior ou igual a 6, caso contrário, imprime &#8220;REPROVADO&#8221;.</p>
<p>A estratégia utilizada neste programa é bastante direta:</p>
<ol>
<li><strong>Entrada de Dados</strong>: O programa solicita ao usuário que insira as três notas do aluno, armazenando cada uma delas em variáveis separadas (<code>nota1</code>, <code>nota2</code> e <code>nota3</code>).</li>
<li><strong>Cálculo da Média</strong>: Em seguida, o programa calcula a média aritmética das três notas, somando-as e dividindo o resultado por 3. O valor da média é armazenado na variável <code>media</code>.</li>
<li><strong>Decisão de Aprovação ou Reprovação</strong>: O programa verifica se a média calculada é maior ou igual a 6. Se for, o programa imprime &#8220;APROVADO&#8221;. Caso contrário, imprime &#8220;REPROVADO&#8221;.</li>
<li><strong>Saída de Dados</strong>: O resultado da aprovação ou reprovação é exibido na tela.</li>
</ol>
<p>Essa estratégia segue de perto o enunciado do problema, que basicamente envolve a entrada de dados (notas), o cálculo da média e a decisão baseada nessa média.</p>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

int main() {
    float nota1, nota2, nota3;
    float media;

    // Solicita as notas ao usuário
    printf("Digite a primeira nota: ");
    scanf("%f", &amp;nota1);

    printf("Digite a segunda nota: ");
    scanf("%f", &amp;nota2);

    printf("Digite a terceira nota: ");
    scanf("%f", &amp;nota3);

    // Calcula a média aritmética
    media = (nota1 + nota2 + nota3) / 3;

    // Verifica se o aluno está aprovado ou reprovado
    if (media &gt;= 6.0) {
        printf("APROVADO\n");
    } else {
        printf("REPROVADO\n");
    }

    return 0;
}</pre>
<p>Neste programa em C, as funções <code>printf()</code> e <code>scanf()</code> são usadas para entrada e saída de dados, respectivamente. A lógica geral do programa permanece a mesma que na versão em C++, mas a sintaxe e algumas das funções utilizadas são diferentes para se adequarem à linguagem C.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">(*

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*)
program VerificaAprovacao;

var
  nota1, nota2, nota3: real;
  media: real;

begin
  // Solicita as notas ao usuário
  writeln('Digite a primeira nota: ');
  readln(nota1);

  writeln('Digite a segunda nota: ');
  readln(nota2);

  writeln('Digite a terceira nota: ');
  readln(nota3);

  // Calcula a média aritmética
  media := (nota1 + nota2 + nota3) / 3;

  // Verifica se o aluno está aprovado ou reprovado
  if media &gt;= 6.0 then
    writeln('APROVADO')
  else
    writeln('REPROVADO');
end.</pre>
<p>Neste programa em Pascal, usamos as instruções <code>writeln</code> e <code>readln</code> para entrada e saída de dados, respectivamente. O cálculo da média e a lógica de decisão são semelhantes aos programas anteriores, mas adaptados à sintaxe do Pascal.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
# Solicita as notas ao usuário
nota1 = float(input("Digite a primeira nota: "))
nota2 = float(input("Digite a segunda nota: "))
nota3 = float(input("Digite a terceira nota: "))

# Calcula a média aritmética
media = (nota1 + nota2 + nota3) / 3

# Verifica se o aluno está aprovado ou reprovado
if media &gt;= 6.0:
    print("APROVADO")
else:
    print("REPROVADO")</pre>
<p>Em Python, a entrada de dados é feita com a função <code>input()</code>, que retorna uma string, então usamos a função <code>float()</code> para converter a entrada em números de ponto flutuante. O cálculo da média e a lógica de decisão são bastante diretos e semelhantes aos outros exemplos.</p>
<p>&nbsp;</p>
<h2>Exemplo em C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;

class Program
{
    static void Main(string[] args)
    {
        float nota1, nota2, nota3;
        float media;

        // Solicita as notas ao usuário
        Console.Write("Digite a primeira nota: ");
        nota1 = float.Parse(Console.ReadLine());

        Console.Write("Digite a segunda nota: ");
        nota2 = float.Parse(Console.ReadLine());

        Console.Write("Digite a terceira nota: ");
        nota3 = float.Parse(Console.ReadLine());

        // Calcula a média aritmética
        media = (nota1 + nota2 + nota3) / 3;

        // Verifica se o aluno está aprovado ou reprovado
        if (media &gt;= 6.0)
        {
            Console.WriteLine("APROVADO");
        }
        else
        {
            Console.WriteLine("REPROVADO");
        }
    }
}</pre>
<p>Em C#, utilizamos a classe <code>Console</code> para entrada e saída de dados. A entrada é feita com <code>Console.ReadLine()</code>, e a conversão para <code>float</code> é realizada com <code>float.Parse()</code>. O restante do programa é semelhante à lógica dos exemplos anteriores.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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);
        float nota1, nota2, nota3;
        float media;

        // Solicita as notas ao usuário
        System.out.print("Digite a primeira nota: ");
        nota1 = scanner.nextFloat();

        System.out.print("Digite a segunda nota: ");
        nota2 = scanner.nextFloat();

        System.out.print("Digite a terceira nota: ");
        nota3 = scanner.nextFloat();

        // Calcula a média aritmética
        media = (nota1 + nota2 + nota3) / 3;

        // Verifica se o aluno está aprovado ou reprovado
        if (media &gt;= 6.0) {
            System.out.println("APROVADO");
        } else {
            System.out.println("REPROVADO");
        }

        scanner.close();
    }
}</pre>
<p>Em Java, utilizamos a classe <code>Scanner</code> para entrada de dados. As notas são lidas com o método <code>nextFloat()</code> e armazenadas em variáveis de tipo <code>float</code>. O restante do programa é semelhante à lógica dos exemplos anteriores. É importante fechar o objeto <code>Scanner</code> no final para liberar recursos.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::io;

fn main() {
    let mut input = String::new();
    let mut notas = Vec::new();

    // Solicita as notas ao usuário
    println!("Digite a primeira nota:");
    io::stdin().read_line(&amp;mut input).expect("Falha ao ler a linha");
    let nota1: f32 = input.trim().parse().expect("Por favor, insira um número válido");
    notas.push(nota1);

    input.clear();

    println!("Digite a segunda nota:");
    io::stdin().read_line(&amp;mut input).expect("Falha ao ler a linha");
    let nota2: f32 = input.trim().parse().expect("Por favor, insira um número válido");
    notas.push(nota2);

    input.clear();

    println!("Digite a terceira nota:");
    io::stdin().read_line(&amp;mut input).expect("Falha ao ler a linha");
    let nota3: f32 = input.trim().parse().expect("Por favor, insira um número válido");
    notas.push(nota3);

    // Calcula a média aritmética
    let media: f32 = notas.iter().sum::&lt;f32&gt;() / 3.0;

    // Verifica se o aluno está aprovado ou reprovado
    if media &gt;= 6.0 {
        println!("APROVADO");
    } else {
        println!("REPROVADO");
    }
}</pre>
<p>Neste código em Rust, usamos a macro <code>println!</code> para imprimir mensagens no console e <code>io::stdin().read_line()</code> para ler as entradas do usuário. Os valores lidos são convertidos em <code>f32</code> e armazenados em um vetor. Em seguida, calculamos a média aritmética usando o método <code>iter().sum::&lt;f32&gt;()</code> e verificamos se o aluno está aprovado ou reprovado.</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
    "strconv"
)

func main() {
    var nota1, nota2, nota3 float64

    // Solicita as notas ao usuário
    fmt.Println("Digite a primeira nota:")
    nota1 = lerNota()

    fmt.Println("Digite a segunda nota:")
    nota2 = lerNota()

    fmt.Println("Digite a terceira nota:")
    nota3 = lerNota()

    // Calcula a média aritmética
    media := (nota1 + nota2 + nota3) / 3.0

    // Verifica se o aluno está aprovado ou reprovado
    if media &gt;= 6.0 {
        fmt.Println("APROVADO")
    } else {
        fmt.Println("REPROVADO")
    }
}

// Função para ler notas do usuário
func lerNota() float64 {
    var input string
    fmt.Scanln(&amp;input)
    nota, err := strconv.ParseFloat(input, 64)
    if err != nil {
        fmt.Println("Erro ao ler a nota:", err)
        return lerNota()
    }
    return nota
}</pre>
<p>Neste programa em Go, usamos a função <code>fmt.Println()</code> para exibir mensagens no console e <code>fmt.Scanln()</code> para ler as entradas do usuário. Para garantir que a entrada seja um número válido, usamos <code>strconv.ParseFloat()</code>. O cálculo da média aritmética e a verificação da aprovação ou reprovação são feitos da mesma forma que nos exemplos anteriores.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>O exercício de implementar um programa para calcular a média de notas de um aluno e determinar se ele está aprovado ou reprovado foi uma excelente oportunidade para explorar conceitos fundamentais de programação em diferentes linguagens. Ao escrever o código em várias linguagens, pudemos comparar e contrastar suas sintaxes, estruturas de controle e abordagens para lidar com entrada e saída de dados.</p>
<p>Por meio deste exercício, consolidamos nosso conhecimento sobre como solicitar entrada de dados do usuário, realizar cálculos simples e tomar decisões com base nos resultados. Além disso, aprendemos a lidar com erros e exceções, garantindo a robustez e a confiabilidade de nossos programas.</p>
<p>Ao analisar as diferentes implementações em linguagens como C++, C, Pascal, Python, C#, Java, Rust e Go, pudemos apreciar a diversidade de abordagens que cada linguagem oferece para resolver o mesmo problema.</p>
<p>No geral, este exercício proporcionou uma valiosa oportunidade de prática e aprendizado, ajudando-nos a aprimorar nossas habilidades de programação e a compreender melhor as nuances das diferentes linguagens de programação. Essa experiência será útil ao enfrentarmos desafios futuros de programação em uma variedade de contextos.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Algoritmos</strong></p>
<p><strong>#Programação </strong></p>
<p><strong>#Aprendizado </strong></p>
<p><strong>#LinguagensDeProgramação </strong></p>
<p><strong>#DesenvolvimentoDeSoftware</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-leia-as-3-notas-de-um-aluno-e-escreva-aprovado-caso-a-media-aritmetica-for-maior-ou-igual-a-6-caso-contrario-escreva-reprovado/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>O número 3025 tem a seguinte característica: 30+25=55 e 552=3025. Sendo um número de Kaprekar. Crie um algoritmo e um programa que solicite o usuário informar um número inteiro de quatro dígitos. O programa deve verificar e mostrar na tela uma mensagem indicando se este número possui esta característica, ou seja, ser um Número de Kaprekar.</title>
		<link>https://giovanidacruz.com.br/o-numero-3025-tem-a-seguinte-caracteristica-302555-e-5523025-sendo-um-numero-de-kaprekar-crie-um-algoritmo-e-um-programa-que-solicite-o-usuario-informar-um-numero-inteiro-de-quatro-digitos-o-pr/</link>
					<comments>https://giovanidacruz.com.br/o-numero-3025-tem-a-seguinte-caracteristica-302555-e-5523025-sendo-um-numero-de-kaprekar-crie-um-algoritmo-e-um-programa-que-solicite-o-usuario-informar-um-numero-inteiro-de-quatro-digitos-o-pr/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Sat, 30 Mar 2024 20:05:36 +0000</pubDate>
				<category><![CDATA[Algoritmos com Se, Senão e Caso]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[Característica]]></category>
		<category><![CDATA[Diferentes linguagens]]></category>
		<category><![CDATA[Entrada e saída de dados]]></category>
		<category><![CDATA[Manipulação de números]]></category>
		<category><![CDATA[Número Kaprekar]]></category>
		<category><![CDATA[Prática de programação]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Quatro dígitos]]></category>
		<category><![CDATA[Resolução de problemas]]></category>
		<category><![CDATA[VERIFICAÇÃO]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3770</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? &#160; O exercício pede para verificar se o número lido possui determinada característica. Ela é conhecida como &#8220;Número Kaprekar&#8221;. Um número de Kaprekar é um inteiro positivo cuja representação em quadrados de seus dígitos pode ser dividida em duas partes que somam o número original quando somadas. O exemplo [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3776" src="https://giovanidacruz.com.br/wp-content/uploads/2024/03/algoritmo-numero-kaprekar-jpg.webp" alt="algoritmo número kaprekar" width="800" height="533" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/03/algoritmo-numero-kaprekar-jpg.webp 800w, https://giovanidacruz.com.br/wp-content/uploads/2024/03/algoritmo-numero-kaprekar-300x200.webp 300w, https://giovanidacruz.com.br/wp-content/uploads/2024/03/algoritmo-numero-kaprekar-768x512.webp 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>Fala galera da programação, tudo beleza?</p>
<p>&nbsp;</p>
<p>O exercício pede para verificar se o número lido possui determinada característica. Ela é conhecida como &#8220;Número Kaprekar&#8221;. Um número de Kaprekar é um inteiro positivo cuja representação em quadrados de seus dígitos pode ser dividida em duas partes que somam o número original quando somadas. O exemplo citado, 3025, é um número de Kaprekar, pois 30 + 25 = 55, e 552 = 3025.</p>
<p>Lembrando que o objetivo deste exercício é ler número de 4 dígitos e descobrir se ele é um número de <a href="https://giovanidacruz.com.br/o-fascinio-do-numero-de-kaprekar-uma-jornada-matematica/" target="_blank" rel="noopener">Kaprekar</a>.</p>
<p>&nbsp;</p>
<h2>Dica do Exercício</h2>
<p>Para dividir um número de quatro dígitos em duas partes de dois dígitos, divida este número por 100 e pegue o quociente e o resto da divisão.</p>
<p>Valide que o número informado tenha 4 dígitos;</p>
<p>Se ele for um número escreva: O número xx possui a característica desejada.<br />
Senão escreva: O número xx não possui a característica desejada</p>
<p>&nbsp;</p>
<h2>O que vamos aprender neste exercício?</h2>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Vamos aos Códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;
using namespace std;

int main() {
    int numero, parte1, parte2;

    // Solicitar ao usuário para inserir o número inteiro de quatro dígitos
    cout &lt;&lt; "Digite um número inteiro de quatro dígitos: ";
    cin &gt;&gt; numero;

    // Verificar se o número tem quatro dígitos
    if (numero &lt; 1000 || numero &gt; 9999) {
        cout &lt;&lt; "O número digitado não possui quatro dígitos." &lt;&lt; endl;
    } else {
        // Dividir o número em duas partes de dois dígitos
        parte1 = numero / 100;
        parte2 = numero % 100;

        // Verificar se a soma das partes elevada ao quadrado é igual ao número original
        if ((parte1 + parte2) * (parte1 + parte2) == numero) {
            cout &lt;&lt; "O número " &lt;&lt; numero &lt;&lt; " possui a característica desejada." &lt;&lt; endl;
        } else {
            cout &lt;&lt; "O número " &lt;&lt; numero &lt;&lt; " não possui a característica desejada." &lt;&lt; endl;
        }
    }

    return 0;
}</pre>
<p><strong>Explicação:</strong></p>
<p>Este programa solicita ao usuário para inserir um número inteiro de quatro dígitos. Em seguida, ele verifica se o número inserido possui quatro dígitos. Se tiver, o programa divide o número em duas partes de dois dígitos e verifica se a soma dessas partes elevada ao quadrado é igual ao número original. Ele então imprime uma mensagem indicando se o número possui ou não a característica desejada.</p>
<p>A estratégia usada no código pode ser dividida em alguns passos:</p>
<ol>
<li><strong>Entrada de Dados</strong>: O programa solicita ao usuário que insira um número inteiro de quatro dígitos.</li>
<li><strong>Verificação de Quatro Dígitos</strong>: O programa verifica se o número inserido pelo usuário possui quatro dígitos. Se não possuir, o programa informa ao usuário que o número não é válido e encerra a execução.</li>
<li><strong>Divisão do Número em Duas Partes</strong>: Se o número tiver quatro dígitos, o programa divide o número em duas partes de dois dígitos. Isso é feito dividindo o número por 100 (parte1) e obtendo o resto dessa divisão (parte2).</li>
<li><strong>Verificação da Característica de Kaprekar</strong>: O programa verifica se a soma das partes, elevada ao quadrado, é igual ao número original. Se essa condição for verdadeira, o número possui a característica de Kaprekar e o programa informa ao usuário. Caso contrário, o programa informa que o número não possui a característica.</li>
</ol>
<p>A estratégia geral do código é bastante simples: dividir o número em partes, realizar algumas operações e verificar se uma condição específica é atendida.</p>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

int main() {
    int numero, parte1, parte2;

    // Solicitar ao usuário para inserir o número inteiro de quatro dígitos
    printf("Digite um número inteiro de quatro dígitos: ");
    scanf("%d", &amp;numero);

    // Verificar se o número tem quatro dígitos
    if (numero &lt; 1000 || numero &gt; 9999) {
        printf("O número digitado não possui quatro dígitos.\n");
    } else {
        // Dividir o número em duas partes de dois dígitos
        parte1 = numero / 100;
        parte2 = numero % 100;

        // Verificar se a soma das partes elevada ao quadrado é igual ao número original
        if ((parte1 + parte2) * (parte1 + parte2) == numero) {
            printf("O número %d possui a característica desejada.\n", numero);
        } else {
            printf("O número %d não possui a característica desejada.\n", numero);
        }
    }

    return 0;
}</pre>
<p>Este código em C realiza exatamente as mesmas operações que o código em C++ fornecido anteriormente, mas usando a sintaxe da linguagem C.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">(******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************)
program VerificarKaprekar;

var
  numero, parte1, parte2: integer;

begin
  // Solicitar ao usuário para inserir o número inteiro de quatro dígitos
  writeln('Digite um número inteiro de quatro dígitos: ');
  readln(numero);

  // Verificar se o número tem quatro dígitos
  if (numero &lt; 1000) or (numero &gt; 9999) then
    writeln('O número digitado não possui quatro dígitos.')
  else
  begin
    // Dividir o número em duas partes de dois dígitos
    parte1 := numero div 100;
    parte2 := numero mod 100;

    // Verificar se a soma das partes elevada ao quadrado é igual ao número original
    if (parte1 + parte2) * (parte1 + parte2) = numero then
      writeln('O número ', numero, ' possui a característica desejada.')
    else
      writeln('O número ', numero, ' não possui a característica desejada.');
  end;
end.</pre>
<p>As principais mudanças para o código em Pascal incluem a utilização de <code>writeln</code> e <code>readln</code> para entrada e saída de dados, e <code>begin</code> e <code>end</code> para delimitar blocos de código. Os operadores de divisão inteira (<code>div</code>) e resto (<code>mod</code>) são usados para dividir o número em duas partes de dois dígitos, assim como no código em C e C++. Fora essas diferenças sintáticas, a lógica do programa permanece a mesma.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
# Solicitar ao usuário para inserir o número inteiro de quatro dígitos
numero = int(input("Digite um número inteiro de quatro dígitos: "))

# Verificar se o número tem quatro dígitos
if numero &lt; 1000 or numero &gt; 9999:
    print("O número digitado não possui quatro dígitos.")
else:
    # Dividir o número em duas partes de dois dígitos
    parte1 = numero // 100
    parte2 = numero % 100

    # Verificar se a soma das partes elevada ao quadrado é igual ao número original
    if (parte1 + parte2) ** 2 == numero:
        print(f"O número {numero} possui a característica desejada.")
    else:
        print(f"O número {numero} não possui a característica desejada.")
</pre>
<p>As principais mudanças para o código em Python incluem a sintaxe para entrada de dados utilizando a função <code>input()</code>, que retorna uma string (portanto, precisamos converter para inteiro usando <code>int()</code>), e a utilização de <code>print()</code> para exibir mensagens na tela. Além disso, em Python, a divisão inteira é realizada com <code>//</code> e o operador de resto é <code>%</code>. Fora essas diferenças sintáticas, a lógica do programa permanece a mesma.</p>
<p>&nbsp;</p>
<h2>Exemplo em C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;

class Program
{
    static void Main(string[] args)
    {
        // Solicitar ao usuário para inserir o número inteiro de quatro dígitos
        Console.WriteLine("Digite um número inteiro de quatro dígitos: ");
        int numero = int.Parse(Console.ReadLine());

        // Verificar se o número tem quatro dígitos
        if (numero &lt; 1000 || numero &gt; 9999)
        {
            Console.WriteLine("O número digitado não possui quatro dígitos.");
        }
        else
        {
            // Dividir o número em duas partes de dois dígitos
            int parte1 = numero / 100;
            int parte2 = numero % 100;

            // Verificar se a soma das partes elevada ao quadrado é igual ao número original
            if ((parte1 + parte2) * (parte1 + parte2) == numero)
            {
                Console.WriteLine($"O número {numero} possui a característica desejada.");
            }
            else
            {
                Console.WriteLine($"O número {numero} não possui a característica desejada.");
            }
        }
    }
}</pre>
<p>As principais mudanças para o código em C# incluem o uso de <code>Console.WriteLine()</code> para exibir mensagens na tela e <code>Console.ReadLine()</code> para ler a entrada do usuário. O resto da lógica é bastante similar aos códigos anteriores, utilizando operadores aritméticos para dividir o número em partes e verificar a característica desejada.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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);

        // Solicitar ao usuário para inserir o número inteiro de quatro dígitos
        System.out.println("Digite um número inteiro de quatro dígitos: ");
        int numero = scanner.nextInt();

        // Verificar se o número tem quatro dígitos
        if (numero &lt; 1000 || numero &gt; 9999) {
            System.out.println("O número digitado não possui quatro dígitos.");
        } else {
            // Dividir o número em duas partes de dois dígitos
            int parte1 = numero / 100;
            int parte2 = numero % 100;

            // Verificar se a soma das partes elevada ao quadrado é igual ao número original
            if ((parte1 + parte2) * (parte1 + parte2) == numero) {
                System.out.println("O número " + numero + " possui a característica desejada.");
            } else {
                System.out.println("O número " + numero + " não possui a característica desejada.");
            }
        }
        
        scanner.close();
    }
}</pre>
<p>As principais mudanças para o código em Java incluem o uso da classe <code>Scanner</code> para ler a entrada do usuário, e o uso de <code>System.out.println()</code> para exibir mensagens na tela. Além disso, a estrutura da classe e do método <code>main</code> é diferente em Java, mas a lógica do programa é a mesma que nos exemplos anteriores.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::io;

fn main() {
    // Solicitar ao usuário para inserir o número inteiro de quatro dígitos
    println!("Digite um número inteiro de quatro dígitos: ");

    let mut input = String::new();
    io::stdin().read_line(&amp;mut input).expect("Falha ao ler entrada.");
    let numero: i32 = input.trim().parse().expect("Entrada inválida.");

    // Verificar se o número tem quatro dígitos
    if numero &lt; 1000 || numero &gt; 9999 {
        println!("O número digitado não possui quatro dígitos.");
    } else {
        // Dividir o número em duas partes de dois dígitos
        let parte1 = numero / 100;
        let parte2 = numero % 100;

        // Verificar se a soma das partes elevada ao quadrado é igual ao número original
        if (parte1 + parte2) * (parte1 + parte2) == numero {
            println!("O número {} possui a característica desejada.", numero);
        } else {
            println!("O número {} não possui a característica desejada.", numero);
        }
    }
}</pre>
<p>As principais mudanças para o código em Rust incluem o uso de macros <code>println!</code> para exibir mensagens na tela e <code>read_line</code> para ler a entrada do usuário. Além disso, a manipulação de erros é feita usando <code>expect</code> ou tratamento de erro com <code>Result</code>, o que é uma prática comum em Rust para lidar com possíveis falhas durante a execução do programa. A sintaxe para declarar variáveis e a utilização de tipos é ligeiramente diferente, mas a lógica geral do programa é a mesma que nos exemplos anteriores.</p>
<p>&nbsp;</p>
<h2>Exemplo em GO</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
)

func main() {
    var numero int

    // Solicitar ao usuário para inserir o número inteiro de quatro dígitos
    fmt.Println("Digite um número inteiro de quatro dígitos: ")
    fmt.Scanln(&amp;numero)

    // Verificar se o número tem quatro dígitos
    if numero &lt; 1000 || numero &gt; 9999 {
        fmt.Println("O número digitado não possui quatro dígitos.")
    } else {
        // Dividir o número em duas partes de dois dígitos
        parte1 := numero / 100
        parte2 := numero % 100

        // Verificar se a soma das partes elevada ao quadrado é igual ao número original
        if (parte1+parte2)*(parte1+parte2) == numero {
            fmt.Printf("O número %d possui a característica desejada.\n", numero)
        } else {
            fmt.Printf("O número %d não possui a característica desejada.\n", numero)
        }
    }
}</pre>
<p>As principais diferenças em relação aos outros exemplos são:</p>
<ul>
<li>Utilização do pacote <code>fmt</code> para impressão na tela e entrada de dados.</li>
<li>Utilização da função <code>Scanln</code> para ler a entrada do usuário.</li>
<li>Sintaxe específica de declaração de variáveis e divisão de números.</li>
<li>Não há necessidade de importar um pacote específico para lidar com entrada e saída de dados, pois o pacote <code>fmt</code> já inclui essas funcionalidades.</li>
</ul>
<p>&nbsp;</p>
<p>Conclusão</p>
<p>Este exercício foi uma oportunidade valiosa para praticar e aplicar diversos conceitos fundamentais de programação. Ao escrever um programa para verificar se um número inteiro de quatro dígitos possui uma determinada característica matemática, pudemos praticar habilidades como manipulação de números, entrada e saída de dados, controle de fluxo e resolução de problemas.</p>
<p>Além disso, ao escrever o mesmo programa em várias linguagens de programação, como C++, Python, Java, C#, Rust, Go e Pascal, pudemos comparar e contrastar as diferenças entre essas linguagens, incluindo sintaxe, convenções de nomenclatura e recursos disponíveis. Isso nos permitiu ampliar nossa compreensão sobre as diferentes abordagens para resolver um problema semelhante em diferentes contextos de programação.</p>
<p>Em última análise, este exercício destacou a importância da prática contínua na construção e aprimoramento das habilidades de programação, bem como a versatilidade e adaptabilidade necessárias para trabalhar em várias linguagens de programação.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#DesafioDeProgramação </strong></p>
<p><strong>#Programação </strong></p>
<p><strong>#DesenvolvimentoDeSoftware </strong></p>
<p><strong>#Aprendizado</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/o-numero-3025-tem-a-seguinte-caracteristica-302555-e-5523025-sendo-um-numero-de-kaprekar-crie-um-algoritmo-e-um-programa-que-solicite-o-usuario-informar-um-numero-inteiro-de-quatro-digitos-o-pr/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa em que implemente uma calculadora de 4 operações. O programa deve solicitar que o usuário informe três dados: o primeiro operando, o operador (+,-,*,/) e o segundo operando. O programa deve mostrar na tela a operação e seu resultado.</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-implemente-uma-calculadora-de-4-operacoes-o-programa-deve-solicitar-que-o-usuario-informe-tres-dados-o-primeiro-operando-o-operador-e-o-segundo-oper/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-implemente-uma-calculadora-de-4-operacoes-o-programa-deve-solicitar-que-o-usuario-informe-tres-dados-o-primeiro-operando-o-operador-e-o-segundo-oper/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Fri, 29 Mar 2024 01:28:05 +0000</pubDate>
				<category><![CDATA[Algoritmos com Se, Senão e Caso]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[cálculo]]></category>
		<category><![CDATA[Condição]]></category>
		<category><![CDATA[entrada]]></category>
		<category><![CDATA[Interpretação]]></category>
		<category><![CDATA[Mensagem]]></category>
		<category><![CDATA[operador]]></category>
		<category><![CDATA[Operando]]></category>
		<category><![CDATA[saída]]></category>
		<category><![CDATA[Tratamento de erros]]></category>
		<category><![CDATA[Validação]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3748</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? Hoje um novo exercício de calculadora para aprimorar nossa lógica de programação. &#160; Dicas do exercício Em duas situações, o programa não deverá efetuar o cálculo: Se o operador informado pelo usuário for inválido mostrar a mensagem “Operador inválido” e encerrar a execução do programa. Se o segundo operando [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3754" src="https://giovanidacruz.com.br/wp-content/uploads/2024/03/calculadora-4-operacoes-jpg.webp" alt="Calculadora de 4 operações" width="800" height="418" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/03/calculadora-4-operacoes-jpg.webp 800w, https://giovanidacruz.com.br/wp-content/uploads/2024/03/calculadora-4-operacoes-300x157.webp 300w, https://giovanidacruz.com.br/wp-content/uploads/2024/03/calculadora-4-operacoes-768x401.webp 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>Fala galera da programação, tudo beleza? Hoje um novo exercício de calculadora para aprimorar nossa lógica de programação.</p>
<p>&nbsp;</p>
<h2>Dicas do exercício</h2>
<p>Em duas situações, o programa não deverá efetuar o cálculo:</p>
<p>Se o operador informado pelo usuário for inválido mostrar a mensagem “Operador inválido” e encerrar a execução do programa.</p>
<p>Se o segundo operando for igual a 0 (zero) e o operador escolhido for a divisão (/), mostrar na tela a mensagem “Divisão por Zero!” e encerrar a execução do programa.</p>
<p>[table id=3 /]</p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;

using namespace std;

int main() {
    float num1, num2, resultado;
    char operador;

    // Solicitar entrada do usuário
    cout &lt;&lt; "Digite o primeiro operando: ";
    cin &gt;&gt; num1;
    cout &lt;&lt; "Digite o operador (+, -, *, /): ";
    cin &gt;&gt; operador;
    cout &lt;&lt; "Digite o segundo operando: ";
    cin &gt;&gt; num2;

    // Verificar se o operador é válido e efetuar o cálculo
    switch(operador) {
        case '+':
            resultado = num1 + num2;
            break;
        case '-':
            resultado = num1 - num2;
            break;
        case '*':
            resultado = num1 * num2;
            break;
        case '/':
            // Verificar se o segundo operando é zero
            if (num2 == 0) {
                cout &lt;&lt; "Divisao por Zero!" &lt;&lt; endl;
                return 1; // Encerrar o programa
            }
            resultado = num1 / num2;
            break;
        default:
            cout &lt;&lt; "Operador invalido" &lt;&lt; endl;
            return 1; // Encerrar o programa
    }

    // Mostrar o resultado na tela
    cout &lt;&lt; num1 &lt;&lt; " " &lt;&lt; operador &lt;&lt; " " &lt;&lt; num2 &lt;&lt; " = " &lt;&lt; resultado &lt;&lt; endl;

    return 0;
}</pre>
<p>Este programa solicita que o usuário insira o primeiro operando, o operador e o segundo operando. Em seguida, verifica se o operador é válido e se o segundo operando é zero (no caso da divisão). Dependendo das condições, exibirá uma mensagem de erro apropriada ou calculará e exibirá o resultado da operação.</p>
<p><strong>A estratégia utilizada neste programa foi:</strong></p>
<ol>
<li>Solicitar ao usuário que forneça o primeiro operando, o operador e o segundo operando.</li>
<li>Utilizar um switch-case para verificar o operador inserido pelo usuário e executar a operação correspondente.</li>
<li>Se o operador for inválido (ou seja, diferente de &#8216;+&#8217;, &#8216;-&#8216;, &#8216;*&#8217;, &#8216;/&#8217;), exibir a mensagem &#8220;Operador inválido&#8221; e encerrar a execução do programa.</li>
<li>Se o operador for &#8216;/&#8217;, verificar se o segundo operando é zero. Se for zero, exibir a mensagem &#8220;Divisão por Zero!&#8221; e encerrar a execução do programa.</li>
<li>Calcular o resultado da operação e exibi-lo na tela.</li>
</ol>
<p>Essa abordagem permite que o programa valide as entradas do usuário e forneça mensagens de erro apropriadas quando necessário, garantindo que a calculadora funcione corretamente para as operações de adição, subtração, multiplicação e divisão.</p>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include 

int main() {
    float num1, num2, resultado;
    char operador;

    // Solicitar entrada do usuário
    printf("Digite o primeiro operando: ");
    scanf("%f", &amp;num1);
    printf("Digite o operador (+, -, *, /): ");
    scanf(" %c", &amp;operador); // Note o espaço antes do %c para ignorar espaços em branco
    printf("Digite o segundo operando: ");
    scanf("%f", &amp;num2);

    // Verificar se o operador é válido e efetuar o cálculo
    switch(operador) {
        case '+':
            resultado = num1 + num2;
            break;
        case '-':
            resultado = num1 - num2;
            break;
        case '*':
            resultado = num1 * num2;
            break;
        case '/':
            // Verificar se o segundo operando é zero
            if (num2 == 0) {
                printf("Divisao por Zero!\n");
                return 1; // Encerrar o programa
            }
            resultado = num1 / num2;
            break;
        default:
            printf("Operador invalido\n");
            return 1; // Encerrar o programa
    }

    // Mostrar o resultado na tela
    printf("%.2f %c %.2f = %.2f\n", num1, operador, num2, resultado);

    return 0;
}</pre>
<p>Este programa realiza exatamente as mesmas operações que o anterior, mas utilizando as funções de entrada e saída padrão em C (scanf e printf) e a sintaxe da linguagem C.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">{

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

}
program Calculadora;

var
  num1, num2, resultado: real;
  operador: char;

begin
  // Solicitar entrada do usuário
  writeln('Digite o primeiro operando: ');
  readln(num1);
  writeln('Digite o operador (+, -, *, /): ');
  readln(operador);
  writeln('Digite o segundo operando: ');
  readln(num2);

  // Verificar se o operador é válido e efetuar o cálculo
  case operador of
    '+': resultado := num1 + num2;
    '-': resultado := num1 - num2;
    '*': resultado := num1 * num2;
    '/': begin
          // Verificar se o segundo operando é zero
          if num2 = 0 then
          begin
            writeln('Divisao por Zero!');
            exit; // Encerrar o programa
          end;
          resultado := num1 / num2;
        end;
  else
    begin
      writeln('Operador invalido');
      exit; // Encerrar o programa
    end;
  end;

  // Mostrar o resultado na tela
  writeln(num1, ' ', operador, ' ', num2, ' = ', resultado:0:2);
end.</pre>
<p>Este código em Pascal funciona de forma muito semelhante ao código em C/C++. Ele solicita que o usuário insira os operandos e o operador, verifica se o operador é válido, realiza o cálculo correspondente e exibe o resultado. Além disso, ele lida com a divisão por zero e exibe mensagens de erro apropriadas conforme necessário.</p>
<p>&nbsp;</p>
<h2>Exemplo Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
# Solicitar entrada do usuário
num1 = float(input("Digite o primeiro operando: "))
operador = input("Digite o operador (+, -, *, /): ")
num2 = float(input("Digite o segundo operando: "))

# Verificar se o operador é válido e efetuar o cálculo
if operador == '+':
    resultado = num1 + num2
elif operador == '-':
    resultado = num1 - num2
elif operador == '*':
    resultado = num1 * num2
elif operador == '/':
    # Verificar se o segundo operando é zero
    if num2 == 0:
        print("Divisao por Zero!")
        exit()  # Encerrar o programa
    resultado = num1 / num2
else:
    print("Operador invalido")
    exit()  # Encerrar o programa

# Mostrar o resultado na tela
print(f"{num1} {operador} {num2} = {resultado}")
</pre>
<p>Este código em Python solicita que o usuário insira os operandos e o operador, verifica se o operador é válido, realiza o cálculo correspondente e exibe o resultado. Além disso, ele lida com a divisão por zero e exibe mensagens de erro apropriadas conforme necessário.</p>
<p>&nbsp;</p>
<h2>Exemplo C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;

class Program
{
    static void Main(string[] args)
    {
        float num1, num2, resultado;
        char operador;

        // Solicitar entrada do usuário
        Console.Write("Digite o primeiro operando: ");
        num1 = float.Parse(Console.ReadLine());
        Console.Write("Digite o operador (+, -, *, /): ");
        operador = char.Parse(Console.ReadLine());
        Console.Write("Digite o segundo operando: ");
        num2 = float.Parse(Console.ReadLine());

        // Verificar se o operador é válido e efetuar o cálculo
        switch (operador)
        {
            case '+':
                resultado = num1 + num2;
                break;
            case '-':
                resultado = num1 - num2;
                break;
            case '*':
                resultado = num1 * num2;
                break;
            case '/':
                // Verificar se o segundo operando é zero
                if (num2 == 0)
                {
                    Console.WriteLine("Divisao por Zero!");
                    return; // Encerrar o programa
                }
                resultado = num1 / num2;
                break;
            default:
                Console.WriteLine("Operador invalido");
                return; // Encerrar o programa
        }

        // Mostrar o resultado na tela
        Console.WriteLine($"{num1} {operador} {num2} = {resultado}");
    }
}</pre>
<p>Este programa em C# funciona de maneira semelhante aos programas em C e C++, mas utiliza as funcionalidades da linguagem C#. Ele solicita que o usuário insira os operandos e o operador, verifica se o operador é válido, realiza o cálculo correspondente e exibe o resultado. Além disso, ele lida com a divisão por zero e exibe mensagens de erro apropriadas conforme necessário.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="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);
        float num1, num2, resultado;
        char operador;

        // Solicitar entrada do usuário
        System.out.print("Digite o primeiro operando: ");
        num1 = scanner.nextFloat();
        System.out.print("Digite o operador (+, -, *, /): ");
        operador = scanner.next().charAt(0);
        System.out.print("Digite o segundo operando: ");
        num2 = scanner.nextFloat();

        // Verificar se o operador é válido e efetuar o cálculo
        switch (operador) {
            case '+':
                resultado = num1 + num2;
                break;
            case '-':
                resultado = num1 - num2;
                break;
            case '*':
                resultado = num1 * num2;
                break;
            case '/':
                // Verificar se o segundo operando é zero
                if (num2 == 0) {
                    System.out.println("Divisao por Zero!");
                    return; // Encerrar o programa
                }
                resultado = num1 / num2;
                break;
            default:
                System.out.println("Operador invalido");
                return; // Encerrar o programa
        }

        // Mostrar o resultado na tela
        System.out.printf("%.2f %c %.2f = %.2f%n", num1, operador, num2, resultado);
    }
}</pre>
<p>Este programa em Java funciona de maneira semelhante aos programas em C, C++ e C#, mas utiliza as funcionalidades da linguagem Java. Ele solicita que o usuário insira os operandos e o operador, verifica se o operador é válido, realiza o cálculo correspondente e exibe o resultado. Além disso, ele lida com a divisão por zero e exibe mensagens de erro apropriadas conforme necessário.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::io;

fn main() {
    let mut num1 = String::new();
    let mut num2 = String::new();
    let mut operador = String::new();

    // Solicitar entrada do usuário
    println!("Digite o primeiro operando: ");
    io::stdin().read_line(&amp;mut num1).expect("Falha ao ler a linha.");
    let num1: f32 = num1.trim().parse().expect("Por favor, digite um número válido.");

    println!("Digite o operador (+, -, *, /): ");
    io::stdin().read_line(&amp;mut operador).expect("Falha ao ler a linha.");
    let operador: char = operador.trim().chars().next().expect("Por favor, digite um operador válido.");

    println!("Digite o segundo operando: ");
    io::stdin().read_line(&amp;mut num2).expect("Falha ao ler a linha.");
    let num2: f32 = num2.trim().parse().expect("Por favor, digite um número válido.");

    // Verificar se o operador é válido e efetuar o cálculo
    let resultado = match operador {
        '+' =&gt; num1 + num2,
        '-' =&gt; num1 - num2,
        '*' =&gt; num1 * num2,
        '/' =&gt; {
            // Verificar se o segundo operando é zero
            if num2 == 0.0 {
                println!("Divisao por Zero!");
                return; // Encerrar o programa
            }
            num1 / num2
        }
        _ =&gt; {
            println!("Operador invalido");
            return; // Encerrar o programa
        }
    };

    // Mostrar o resultado na tela
    println!("{:.2} {} {:.2} = {:.2}", num1, operador, num2, resultado);
}</pre>
<p>Aqui estão algumas diferenças notáveis entre Rust e as linguagens mencionadas anteriormente:</p>
<ol>
<li><strong>Segurança e gerenciamento de memória:</strong> Rust é conhecido por seu sistema de tipos seguro e por evitar erros de memória, como referências nulas e vazamentos de memória, por meio de seu sistema de propriedade e regras de empréstimo. Neste programa, não há necessidade de gerenciar explicitamente a alocação e liberação de memória para variáveis de string, como <code>num1</code>, <code>num2</code> e <code>operador</code>. O compilador de Rust garante a segurança de memória em tempo de compilação.</li>
<li><strong>Padrões de concorrência:</strong> Rust tem suporte para concorrência seguro em seu sistema de tipos, através de construções como <code>std::thread</code> e <code>std::sync</code>. Embora este programa seja simples e sequencial, Rust oferece ferramentas robustas para lidar com concorrência e paralelismo de maneira segura e eficiente.</li>
<li><strong>Gerenciamento de erros:</strong> Em Rust, é comum usar o <code>Result</code> ou o <code>Option</code> para lidar com possíveis erros de operações de I/O ou conversões de tipo, ao contrário de lançar exceções ou retornar valores especiais de erro. No programa acima, usamos <code>expect()</code> para tratar erros de leitura de entrada, o que pode falhar se houver um erro de I/O, e <code>parse()</code> para converter strings em números, que pode falhar se a string não for um número válido.</li>
<li><strong>Coincidência de padrões (pattern matching):</strong> Rust oferece uma poderosa construção de correspondência de padrões, que é usada no bloco <code>match</code> para verificar o operador inserido pelo usuário. Isso oferece uma maneira concisa e segura de lidar com várias opções de maneira elegante.</li>
</ol>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
    "os"
)

func main() {
    var num1, num2 float64
    var operador string

    // Solicitar entrada do usuário
    fmt.Print("Digite o primeiro operando: ")
    fmt.Scanln(&amp;num1)
    fmt.Print("Digite o operador (+, -, *, /): ")
    fmt.Scanln(&amp;operador)
    fmt.Print("Digite o segundo operando: ")
    fmt.Scanln(&amp;num2)

    // Verificar se o operador é válido e efetuar o cálculo
    switch operador {
    case "+":
        fmt.Printf("%.2f + %.2f = %.2f\n", num1, num2, num1+num2)
    case "-":
        fmt.Printf("%.2f - %.2f = %.2f\n", num1, num2, num1-num2)
    case "*":
        fmt.Printf("%.2f * %.2f = %.2f\n", num1, num2, num1*num2)
    case "/":
        if num2 == 0 {
            fmt.Println("Divisao por Zero!")
            os.Exit(1) // Encerrar o programa
        }
        fmt.Printf("%.2f / %.2f = %.2f\n", num1, num2, num1/num2)
    default:
        fmt.Println("Operador invalido")
        os.Exit(1) // Encerrar o programa
    }
}</pre>
<p>O algoritmo solicita ao usuário que insira dois operandos e um operador. Em seguida, verifica se o operador é válido e executa a operação correspondente (adição, subtração, multiplicação ou divisão). Se o operador for divisão e o segundo operando for zero, o programa exibe uma mensagem de erro. Por fim, o resultado é exibido na tela. O programa lida com entrada e saída usando as funcionalidades específicas da linguagem utilizada e encerra a execução caso haja um operador inválido ou uma divisão por zero.</p>
<p>Aqui estão algumas diferenças notáveis na sintaxe e semântica entre Go e as linguagens mencionadas anteriormente:</p>
<ol>
<li><strong>Declaração de Pacote e Função Main:</strong>
<ul>
<li>Em Go, o código é organizado em pacotes, e um programa começa com a declaração do pacote principal <code>package main</code> e a função <code>main()</code>.</li>
<li>Nas outras linguagens, a estrutura do programa pode variar, mas normalmente começa com uma função <code>main()</code> ou algo semelhante.</li>
</ul>
</li>
<li><strong>Importação de Pacotes:</strong>
<ul>
<li>Go usa a palavra-chave <code>import</code> para importar pacotes externos.</li>
<li>Em outras linguagens, como C/C++, Java, C#, a importação de bibliotecas é feita de maneira semelhante, mas a sintaxe pode variar ligeiramente.</li>
</ul>
</li>
<li><strong>Entrada e Saída:</strong>
<ul>
<li>Go usa os pacotes <code>fmt</code> e <code>os</code> para entrada e saída.</li>
<li>A função <code>fmt.Scanln()</code> é usada para ler entrada do usuário e <code>fmt.Printf()</code> para imprimir saída formatada.</li>
<li>Em outras linguagens, como C/C++, Java, C#, as entradas e saídas são tratadas com funções específicas da linguagem ou bibliotecas padrão.</li>
</ul>
</li>
<li><strong>Tratamento de Erros e Encerramento do Programa:</strong>
<ul>
<li>Em Go, os erros são tratados usando funções como <code>os.Exit()</code> para encerrar o programa com um código de saída específico.</li>
<li>Nas outras linguagens, o tratamento de erros pode ser feito de maneira semelhante, mas pode variar na sintaxe e nas convenções de uso.</li>
</ul>
</li>
<li><strong>Tipo de Dados e Formatação de Saída:</strong>
<ul>
<li>Go é uma linguagem fortemente tipada que requer declarações explícitas de tipos de variáveis.</li>
<li>A formatação de saída em Go é feita usando o pacote <code>fmt</code>, que fornece funções como <code>Printf()</code> para imprimir saída formatada.</li>
<li>Em outras linguagens, como Java e C#, a formatação de saída pode ser semelhante, mas a sintaxe específica e os recursos disponíveis podem variar.</li>
</ul>
</li>
</ol>
<p>Essas são algumas das diferenças mais notáveis na sintaxe e semântica entre Go e as outras linguagens mencionadas.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>Este exercício proporcionou uma oportunidade valiosa para praticar conceitos fundamentais de programação, como manipulação de entradas e saídas, tratamento de erros, lógica de programação e interação com o usuário. Desenvolver uma calculadora simples em C++ não apenas reforçou esses conceitos, mas também ajudou a entender a importância de validar entradas e fornecer feedback claro ao usuário. Além disso, explorar diferentes linguagens de programação, como C++, Rust, Go e outras, permitiu compreender suas peculiaridades e aprender novas abordagens para resolver problemas. No geral, este exercício foi uma excelente oportunidade para aprimorar habilidades práticas e consolidar conhecimentos teóricos.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Programação </strong></p>
<p><strong>#C++ </strong></p>
<p><strong>#DesenvolvimentoDeSoftware </strong></p>
<p><strong>#Aprendizado</strong></p>
<p><strong>#Rust</strong></p>
<p><strong>#GO</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-em-que-implemente-uma-calculadora-de-4-operacoes-o-programa-deve-solicitar-que-o-usuario-informe-tres-dados-o-primeiro-operando-o-operador-e-o-segundo-oper/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa quesolicite o usuário informar a altura  em metros e o sexo de uma pessoa. O programa deverá calcular o peso ideal da pessoa, utilizando as seguintes fórmulas:</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-quesolicite-o-usuario-informar-a-altura-em-metros-e-o-sexo-de-uma-pessoa-o-programa-devera-calcular-o-peso-ideal-da-pessoa-utilizando-as-seguintes-formulas/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-quesolicite-o-usuario-informar-a-altura-em-metros-e-o-sexo-de-uma-pessoa-o-programa-devera-calcular-o-peso-ideal-da-pessoa-utilizando-as-seguintes-formulas/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Sat, 16 Mar 2024 22:40:01 +0000</pubDate>
				<category><![CDATA[Algoritmos com Se, Senão e Caso]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Pascal]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[Algortimos]]></category>
		<category><![CDATA[aprendizado]]></category>
		<category><![CDATA[Cálculos]]></category>
		<category><![CDATA[comparação]]></category>
		<category><![CDATA[Controle de fluxo]]></category>
		<category><![CDATA[Diferenças]]></category>
		<category><![CDATA[Entrada/saída]]></category>
		<category><![CDATA[exercício]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[prática]]></category>
		<category><![CDATA[programação]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3645</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? Lá vamos nós a mais um interessante exercício. &#160; Dados do Exercício Formulas Para Homens: ( 72.7 * altura ) &#8211; 58 Para Mulheres: ( 62.1 * altura) – 44.7 &#160; Mais dicas A altura da pessoa é um valor real. O sexo da pessoa deverá ser identificado através [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3646" src="https://giovanidacruz.com.br/wp-content/uploads/2024/03/algoritmos-testes-jpg.webp" alt="Algoritmos Testes e desvios Condicionais" width="746" height="419" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/03/algoritmos-testes-jpg.webp 746w, https://giovanidacruz.com.br/wp-content/uploads/2024/03/algoritmos-testes-300x168.webp 300w" sizes="auto, (max-width: 746px) 100vw, 746px" /></p>
<p>Fala galera da programação, tudo beleza? Lá vamos nós a mais um interessante exercício.</p>
<p>&nbsp;</p>
<h2>Dados do Exercício</h2>
<h3>
<strong>Formulas</strong><br />
Para Homens: ( 72.7 * altura ) &#8211; 58<br />
Para Mulheres: ( 62.1 * altura) – 44.7</h3>
<p>&nbsp;</p>
<h3>Mais dicas</h3>
<p>A altura da pessoa é um valor real.<br />
O sexo da pessoa deverá ser identificado através de um caracter.<br />
O programa deverá aceitar os caracteres “m” ou “M” para identificar pessoas do sexo masculino e os caracteres “f” ou “F” para identificar pessoas do sexo feminino.<br />
A variável que identifica o sexo deve ser declarada com o tipo char.</p>
<p>&nbsp;</p>
<h3>Exemplo 1</h3>
<p><strong>Valores informados pelo usuário:</strong> Altura: 1.6 e Sexo: F</p>
<p><strong>Mensagens mostradas na tela:</strong> Peso ideal: 54,7kg</p>
<p>&nbsp;</p>
<h3>Exemplo 2</h3>
<p><strong>Valores informados pelo usuário:</strong> Altura: 1.8 e Sexo: M</p>
<p><strong>Mensagens mostradas na tela:</strong> Peso ideal: 72,9 kg</p>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p>Neste exercício, podemos aprender várias coisas:</p>
<ol>
<li><strong>Manipulação de Entrada do Usuário</strong>: Aprendemos como solicitar e receber entrada do usuário em diferentes linguagens de programação, como C++, C, Pascal, Python, Java, Rust e Go. Cada linguagem tem suas próprias maneiras de fazer isso, mas a essência é a mesma: pedir informações ao usuário e armazená-las para uso posterior.</li>
<li><strong>Estruturas de Controle</strong>: Aprendemos como usar estruturas de controle de fluxo, como condicionais (<code>if-else</code> ou <code>switch-case</code>), para tomar decisões com base nas entradas do usuário. Isso nos permite lidar com diferentes cenários e responder de acordo com as condições especificadas.</li>
<li><strong>Cálculos Simples</strong>: Praticamos realizar cálculos simples com base nas entradas do usuário. Isso envolveu operações matemáticas básicas, como multiplicação, subtração e adição, para calcular o peso ideal com base na altura e sexo fornecidos.</li>
<li><strong>Formatação de Saída</strong>: Aprendemos como formatar a saída para que os resultados sejam exibidos de maneira legível e informativa para o usuário. Isso inclui especificar o número de casas decimais ou formatar uma string de maneira adequada para exibição.</li>
<li><strong>Gerenciamento de Erros e Exceções</strong>: Em alguns exemplos, lidamos com casos em que o usuário fornece entradas inválidas, como um sexo não reconhecido. Aprendemos a como lidar com essas situações, exibindo mensagens de erro apropriadas e encerrando o programa de forma adequada.</li>
<li><strong>Adaptação a Diferentes Linguagens</strong>: Ao escrever o mesmo programa em várias linguagens, podemos comparar e contrastar as diferenças de sintaxe, estilo e paradigmas de programação entre essas linguagens. Isso nos permite entender como conceitos similares são expressos de maneiras diferentes em diferentes ambientes de programação.</li>
</ol>
<p>Em resumo, este exercício nos permite praticar habilidades fundamentais de programação, como entrada/saída, controle de fluxo, cálculos matemáticos simples e formatação de saída, enquanto nos familiarizamos com várias linguagens de programação. Isso nos ajuda a expandir nosso conhecimento e habilidades como programadores.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;

using namespace std;

int main() {
    // Declaração das variáveis
    double altura, peso_ideal;
    char sexo;

    // Solicita a entrada do usuário
    cout &lt;&lt; "Altura (metros): ";
    cin &gt;&gt; altura;
    cout &lt;&lt; "Sexo (M/F): ";
    cin &gt;&gt; sexo;

    // Verifica o sexo e calcula o peso ideal
    if (sexo == 'm' || sexo == 'M') {
        peso_ideal = (72.7 * altura) - 58;
    } else if (sexo == 'f' || sexo == 'F') {
        peso_ideal = (62.1 * altura) - 44.7;
    } else {
        cout &lt;&lt; "Sexo inválido. Por favor, insira 'M' para masculino ou 'F' para feminino." &lt;&lt; endl;
        return 1; // Encerra o programa com código de erro
    }

    // Exibe o peso ideal
    cout &lt;&lt; "Peso ideal: " &lt;&lt; peso_ideal &lt;&lt; " kg" &lt;&lt; endl;

    return 0;
}</pre>
<p>Este programa solicita ao usuário a altura em metros e o sexo da pessoa. Em seguida, ele calcula e exibe o peso ideal conforme as fórmulas fornecidas, considerando o sexo informado. O programa verifica se o sexo inserido é válido e, caso contrário, exibe uma mensagem de erro e encerra com um código de erro.</p>
<p>&nbsp;</p>
<h2>Exemplo em C</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="c">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;stdio.h&gt;

int main() {
    // Declaração das variáveis
    double altura, peso_ideal;
    char sexo;

    // Solicita a entrada do usuário
    printf("Altura (metros): ");
    scanf("%lf", &amp;altura);
    printf("Sexo (M/F): ");
    scanf(" %c", &amp;sexo);

    // Verifica o sexo e calcula o peso ideal
    if (sexo == 'm' || sexo == 'M') {
        peso_ideal = (72.7 * altura) - 58;
    } else if (sexo == 'f' || sexo == 'F') {
        peso_ideal = (62.1 * altura) - 44.7;
    } else {
        printf("Sexo inválido. Por favor, insira 'M' para masculino ou 'F' para feminino.\n");
        return 1; // Encerra o programa com código de erro
    }

    // Exibe o peso ideal
    printf("Peso ideal: %.1lf kg\n", peso_ideal);

    return 0;
}</pre>
<p>Neste código, as funções de entrada e saída padrão da linguagem C (<code>printf</code> e <code>scanf</code>) são usadas para interagir com o usuário. A lógica do programa permanece a mesma que a versão em C++, apenas a sintaxe e as funções de entrada/saída são diferentes.</p>
<p>&nbsp;</p>
<h2>Exemplo em Pascal / Delphi / Lazarus</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">{

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

}
program CalculoPesoIdeal;

var
  altura, peso_ideal: real;
  sexo: char;

begin
  // Solicita a entrada do usuário
  write('Altura (metros): ');
  readln(altura);
  write('Sexo (M/F): ');
  readln(sexo);

  // Verifica o sexo e calcula o peso ideal
  if (sexo = 'm') or (sexo = 'M') then
    peso_ideal := (72.7 * altura) - 58
  else if (sexo = 'f') or (sexo = 'F') then
    peso_ideal := (62.1 * altura) - 44.7
  else
  begin
    writeln('Sexo inválido. Por favor, insira ''M'' para masculino ou ''F'' para feminino.');
    halt(1); // Encerra o programa com código de erro
  end;

  // Exibe o peso ideal
  writeln('Peso ideal: ', peso_ideal:0:1, ' kg');
end.

</pre>
<p>Este código em Pascal realiza a mesma função que as versões anteriores. Ele solicita a altura e o sexo do usuário, calcula o peso ideal com base nas fórmulas fornecidas e exibe o resultado. A estrutura geral do programa é semelhante à dos exemplos anteriores, mas adaptada à sintaxe e às construções da linguagem Pascal.</p>
<p>A estratégia utilizada para escrever o programa em Pascal foi:</p>
<ol>
<li>Declaração de variáveis: Inicialmente, as variáveis necessárias foram declaradas, incluindo <code>altura</code>, <code>peso_ideal</code> e <code>sexo</code>.</li>
<li>Entrada de dados: O programa solicita ao usuário que insira a altura e o sexo. Isso é feito usando a função <code>write</code> para exibir mensagens no console e <code>readln</code> para ler as entradas do usuário.</li>
<li>Cálculo do peso ideal: Com base no sexo fornecido pelo usuário, o programa calcula o peso ideal usando as fórmulas específicas para homens e mulheres.</li>
<li>Verificação do sexo: O programa utiliza uma estrutura condicional (<code>if-else if-else</code>) para verificar se o sexo fornecido é válido (&#8216;M&#8217; ou &#8216;F&#8217;). Se o sexo não for válido, uma mensagem de erro é exibida e o programa é encerrado.</li>
<li>Exibição do resultado: Por fim, o programa exibe o peso ideal calculado usando a função <code>writeln</code>.</li>
</ol>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
# Solicita a entrada do usuário
altura = float(input("Altura (metros): "))
sexo = input("Sexo (M/F): ").lower()  # Converte para minúsculo para facilitar a comparação

# Verifica o sexo e calcula o peso ideal
if sexo == 'm':
    peso_ideal = (72.7 * altura) - 58
elif sexo == 'f':
    peso_ideal = (62.1 * altura) - 44.7
else:
    print("Sexo inválido. Por favor, insira 'M' para masculino ou 'F' para feminino.")
    exit(1)  # Encerra o programa com código de erro

# Exibe o peso ideal
print(f"Peso ideal: {peso_ideal:.1f} kg")</pre>
<p>Este código em Python realiza as mesmas operações que os exemplos anteriores. Ele solicita a altura e o sexo do usuário, calcula o peso ideal com base nas fórmulas fornecidas e exibe o resultado. A estrutura geral do programa é semelhante à dos exemplos anteriores, mas adaptada à sintaxe e às construções da linguagem Python.</p>
<p>&nbsp;</p>
<h2>Exemplo em C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;

class Program
{
    static void Main(string[] args)
    {
        // Solicita a entrada do usuário
        Console.Write("Altura (metros): ");
        double altura = Convert.ToDouble(Console.ReadLine());
        Console.Write("Sexo (M/F): ");
        char sexo = Char.ToLower(Convert.ToChar(Console.ReadLine()));

        // Verifica o sexo e calcula o peso ideal
        double peso_ideal;
        if (sexo == 'm')
        {
            peso_ideal = (72.7 * altura) - 58;
        }
        else if (sexo == 'f')
        {
            peso_ideal = (62.1 * altura) - 44.7;
        }
        else
        {
            Console.WriteLine("Sexo inválido. Por favor, insira 'M' para masculino ou 'F' para feminino.");
            return; // Encerra o programa
        }

        // Exibe o peso ideal
        Console.WriteLine("Peso ideal: {0:f1} kg", peso_ideal);
    }
}</pre>
<p>Este código em C# realiza as mesmas operações que os exemplos anteriores. Ele solicita a altura e o sexo do usuário, calcula o peso ideal com base nas fórmulas fornecidas e exibe o resultado. A estrutura geral do programa é semelhante à dos exemplos anteriores, mas adaptada à sintaxe e às construções da linguagem C#.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="java">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // Cria um objeto Scanner para obter entrada do usuário
        Scanner scanner = new Scanner(System.in);

        // Solicita a entrada do usuário
        System.out.print("Altura (metros): ");
        double altura = scanner.nextDouble();
        System.out.print("Sexo (M/F): ");
        char sexo = scanner.next().charAt(0);
        sexo = Character.toLowerCase(sexo); // Converte para minúsculo para facilitar a comparação

        // Verifica o sexo e calcula o peso ideal
        double pesoIdeal;
        if (sexo == 'm') {
            pesoIdeal = (72.7 * altura) - 58;
        } else if (sexo == 'f') {
            pesoIdeal = (62.1 * altura) - 44.7;
        } else {
            System.out.println("Sexo inválido. Por favor, insira 'M' para masculino ou 'F' para feminino.");
            scanner.close();
            return; // Encerra o programa
        }

        // Exibe o peso ideal
        System.out.printf("Peso ideal: %.1f kg%n", pesoIdeal);

        // Fecha o Scanner para evitar vazamento de recursos
        scanner.close();
    }
}</pre>
<p>Este programa em Java realiza as mesmas operações que os exemplos anteriores. Ele solicita a altura e o sexo do usuário, calcula o peso ideal com base nas fórmulas fornecidas e exibe o resultado. A estrutura geral do programa é semelhante à dos exemplos anteriores, mas adaptada à sintaxe e às construções da linguagem Java.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::io;

fn main() {
    // Solicita a entrada do usuário
    println!("Altura (metros): ");
    let mut altura = String::new();
    io::stdin().read_line(&amp;mut altura).expect("Falha ao ler a entrada");
    let altura: f64 = altura.trim().parse().expect("Valor inválido");

    println!("Sexo (M/F): ");
    let mut sexo = String::new();
    io::stdin().read_line(&amp;mut sexo).expect("Falha ao ler a entrada");
    let sexo: char = sexo.trim().chars().next().expect("Valor inválido");

    // Verifica o sexo e calcula o peso ideal
    let peso_ideal: f64;
    match sexo {
        'm' | 'M' =&gt; {
            peso_ideal = (72.7 * altura) - 58.0;
        }
        'f' | 'F' =&gt; {
            peso_ideal = (62.1 * altura) - 44.7;
        }
        _ =&gt; {
            println!("Sexo inválido. Por favor, insira 'M' para masculino ou 'F' para feminino.");
            return; // Encerra o programa
        }
    }

    // Exibe o peso ideal
    println!("Peso ideal: {:.1} kg", peso_ideal);
}</pre>
<p>Este programa em Rust realiza as mesmas operações que os exemplos anteriores. Ele solicita a altura e o sexo do usuário, calcula o peso ideal com base nas fórmulas fornecidas e exibe o resultado. A estrutura geral do programa é semelhante à dos exemplos anteriores, mas adaptada à sintaxe e às construções da linguagem Rust.</p>
<p>&nbsp;</p>
<h2>Exemplo em Go</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
)

func main() {
    // Solicita a entrada do usuário
    var altura float64
    var sexo string

    fmt.Print("Altura (metros): ")
    fmt.Scanln(&amp;altura)
    fmt.Print("Sexo (M/F): ")
    fmt.Scanln(&amp;sexo)

    // Verifica o sexo e calcula o peso ideal
    var pesoIdeal float64
    switch sexo {
    case "M", "m":
        pesoIdeal = (72.7 * altura) - 58.0
    case "F", "f":
        pesoIdeal = (62.1 * altura) - 44.7
    default:
        fmt.Println("Sexo inválido. Por favor, insira 'M' para masculino ou 'F' para feminino.")
        return // Encerra o programa
    }

    // Exibe o peso ideal
    fmt.Printf("Peso ideal: %.1f kg\n", pesoIdeal)
}</pre>
<p>Este programa em Go realiza as mesmas operações que os exemplos anteriores. Ele solicita a altura e o sexo do usuário, calcula o peso ideal com base nas fórmulas fornecidas e exibe o resultado. A estrutura geral do programa é semelhante à dos exemplos anteriores, mas adaptada à sintaxe e às construções da linguagem Go.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>Este exercício foi uma oportunidade valiosa para praticar e comparar a implementação de um programa simples em várias linguagens de programação, incluindo C++, C, Pascal, Python, Java, Rust e Go. Durante o exercício, pudemos observar as diferentes sintaxes, estruturas de controle e abordagens para manipulação de entrada/saída em cada linguagem.</p>
<p>Ao escrever o programa em diferentes linguagens, pudemos destacar as semelhanças e diferenças entre elas, bem como entender como conceitos fundamentais de programação são expressos em diferentes ambientes de desenvolvimento.</p>
<p>Além disso, este exercício nos permitiu praticar habilidades como manipulação de entrada/saída, uso de estruturas de controle, realização de cálculos simples e formatação de saída. Também lidamos com casos de entrada inválida, aprendendo a gerenciar erros e exceções de forma adequada em cada linguagem.</p>
<p>Em conclusão, este exercício foi uma excelente maneira de ampliar nosso conhecimento e habilidades em programação, enquanto nos familiarizamos com uma variedade de linguagens de programação. Isso nos prepara para enfrentar uma variedade de problemas e projetos futuros, independentemente da linguagem de programação utilizada.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#DesenvolvimentoDeSoftware </strong></p>
<p><strong>#Programação </strong></p>
<p><strong>#LinguagensDeProgramação </strong></p>
<p><strong>#AprendizadoDeMáquina</strong></p>
<p><strong>#Algoritmos</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-quesolicite-o-usuario-informar-a-altura-em-metros-e-o-sexo-de-uma-pessoa-o-programa-devera-calcular-o-peso-ideal-da-pessoa-utilizando-as-seguintes-formulas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crie um algoritmo e um programa que dado um texto, conte o número de ocorrências de cada palavra única no texto. Ignore maiúsculas e minúsculas, bem como pontuações. Retorne um HashMap onde as chaves são as palavras únicas e os valores são o número de vezes que cada palavra aparece no texto.</title>
		<link>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-dado-um-texto-conte-o-numero-de-ocorrencias-de-cada-palavra-unica-no-texto-ignore-maiusculas-e-minusculas-bem-como-pontuacoes-retorne-um-hashmap-onde-as-chaves/</link>
					<comments>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-dado-um-texto-conte-o-numero-de-ocorrencias-de-cada-palavra-unica-no-texto-ignore-maiusculas-e-minusculas-bem-como-pontuacoes-retorne-um-hashmap-onde-as-chaves/#respond</comments>
		
		<dc:creator><![CDATA[Giovani Da Cruz]]></dc:creator>
		<pubDate>Sat, 16 Mar 2024 20:27:01 +0000</pubDate>
				<category><![CDATA[Algoritmos com Matrizes e Estruturas]]></category>
		<category><![CDATA[Algoritmos com Vetores]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[#Exercício C Sharp]]></category>
		<category><![CDATA[#Exercício C++]]></category>
		<category><![CDATA[#Exercício Delphi]]></category>
		<category><![CDATA[#Exercício Go]]></category>
		<category><![CDATA[#Exercício Java]]></category>
		<category><![CDATA[#Exercício Python]]></category>
		<category><![CDATA[#Exercício Rust]]></category>
		<category><![CDATA[Algoritmo de contagem]]></category>
		<category><![CDATA[Contagem de palavras]]></category>
		<category><![CDATA[Dados não estruturados]]></category>
		<category><![CDATA[Dicionário]]></category>
		<category><![CDATA[Eficiência algorítmica]]></category>
		<category><![CDATA[Estruturas de Dados]]></category>
		<category><![CDATA[Hashmap]]></category>
		<category><![CDATA[Iteração]]></category>
		<category><![CDATA[linguagens de programação]]></category>
		<category><![CDATA[Manipulação de strings]]></category>
		<category><![CDATA[Processamento de texto]]></category>
		<guid isPermaLink="false">https://giovanidacruz.com.br/?p=3642</guid>

					<description><![CDATA[Fala galera da programação, tudo beleza? Você já pensou como é possível contar palavras únicas em um texto de forma eficiente? Neste nosso post, exploramos como resolver esse problema usando diferentes linguagens de programação, desde Python até Rust! Descubra como manipular strings, usar estruturas de dados como HashMaps e muito mais. Confira agora mesmo e [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3643" src="https://giovanidacruz.com.br/wp-content/uploads/2024/03/Algoritmo-dados-nao-estruturados-jpg.webp" alt="Algoritmos dados não estruturados" width="720" height="664" srcset="https://giovanidacruz.com.br/wp-content/uploads/2024/03/Algoritmo-dados-nao-estruturados-jpg.webp 720w, https://giovanidacruz.com.br/wp-content/uploads/2024/03/Algoritmo-dados-nao-estruturados-300x277.webp 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Fala galera da programação, tudo beleza?</p>
<p>Você já pensou como é possível contar palavras únicas em um texto de forma eficiente? Neste nosso post, exploramos como resolver esse problema usando diferentes linguagens de programação, desde Python até Rust! Descubra como manipular strings, usar estruturas de dados como HashMaps e muito mais. Confira agora mesmo e aprimore suas habilidades de programação!</p>
<p>&nbsp;</p>
<h2><strong>Dicas do Exercício</strong></h2>
<p>Não é necessário solicitar ao usuário para informar um texto. Vamos deixar ele fixo neste exercício;</p>
<p>Neste problema, um HashMap é útil para armazenar as palavras únicas como chaves e seus contadores como valores. Iteramos sobre cada palavra no texto, removemos pontuações e convertemos para minúsculas. Em seguida, verificamos se a palavra já está no HashMap. Se sim, incrementamos seu contador; caso contrário, adicionamos a palavra ao HashMap com um contador inicial de 1. Isso nos permite contar eficientemente as ocorrências de cada palavra única no texto.</p>
<p>&nbsp;</p>
<h3>Exemplo de Texto de Entrada</h3>
<p>&#8220;<strong>O rato roeu a roupa do rei de Roma. E o rei ficou tão irritado que mandou o rato para o mar.</strong>&#8221;</p>
<p>&nbsp;</p>
<h3>Exemplo de saída:</h3>
<pre class="EnlighterJSRAW" data-enlighter-language="json">{
    "o": 3,
    "rato": 2,
    "roeu": 1,
    "a": 1,
    "roupa": 1,
    "do": 1,
    "rei": 2,
    "de": 1,
    "roma": 1,
    "e": 1,
    "ficou": 1,
    "tão": 1,
    "irritado": 1,
    "que": 1,
    "mandou": 1,
    "para": 1,
    "mar": 1
}
</pre>
<p>&nbsp;</p>
<h2>O que podemos aprender neste exercício?</h2>
<p>Neste exercício, podemos aprender várias coisas:</p>
<ol>
<li><strong>Uso de Estruturas de Dados</strong>: A solução do problema envolve o uso de estruturas de dados adequadas para manipular e armazenar informações. Em diferentes linguagens de programação, foram utilizadas estruturas como HashMaps, Dicionários e Unordered Maps para armazenar as contagens de palavras únicas.</li>
<li><strong>Manipulação de Strings</strong>: O problema requer a manipulação de strings para dividir o texto em palavras, remover pontuações e converter para minúsculas. Isso demonstra a importância de saber como manipular strings eficientemente para processamento de texto.</li>
<li><strong>Uso de Iteração</strong>: A solução envolve iteração sobre as palavras no texto e sobre os itens das estruturas de dados. Iterar sobre coleções de dados é uma habilidade fundamental na programação e é amplamente utilizada para processamento de informações.</li>
<li><strong>Tratamento de Dados não Estruturados</strong>: O texto fornecido é um exemplo de dados não estruturados. Lidar com esse tipo de dados requer técnicas para extrair informações relevantes e tratá-las de maneira eficaz.</li>
<li><strong>Algoritmos de Contagem</strong>: O problema demonstra um tipo de algoritmo de contagem, que é comum em muitos cenários de processamento de dados. Esse tipo de algoritmo é útil em uma variedade de aplicações, como análise de texto, contagem de ocorrências e geração de estatísticas.</li>
</ol>
<p>De modo resumido, este exercício oferece uma oportunidade para praticar habilidades de manipulação de dados, estruturas de dados e algoritmos básicos, enquanto aborda um problema comum de processamento de texto.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos códigos!</strong></p>
<p>&nbsp;</p>
<h2>Exemplo em GO</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="golang">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
package main

import (
    "fmt"
    "strings"
)

func countUniqueWords(text string) map[string]int {
    // Inicializa o mapa para armazenar as contagens de palavras únicas
    wordCount := make(map[string]int)

    // Divide o texto em palavras usando espaços em branco como delimitador
    words := strings.Fields(text)

    // Itera sobre cada palavra no texto
    for _, word := range words {
        // Remove pontuações e converte para minúsculas
        cleanedWord := strings.ToLower(strings.Trim(word, ".,!?"))

        // Incrementa o contador da palavra no mapa
        wordCount[cleanedWord]++
    }

    return wordCount
}

func main() {
    // Texto de exemplo
    text := "O rato roeu a roupa do rei de Roma. E o rei ficou tão irritado que mandou o rato para o mar."

    // Conta as palavras únicas no texto
    uniqueWordCount := countUniqueWords(text)

    // Imprime as contagens de palavras únicas
    fmt.Println("Contagem de palavras únicas:")
    for word, count := range uniqueWordCount {
        fmt.Printf("%s: %d\n", word, count)
    }
}</pre>
<p>Neste código Go, usando um HashMap, a função <code>countUniqueWords</code> recebe o texto como entrada e retorna um mapa onde as chaves são as palavras únicas e os valores são o número de vezes que cada palavra aparece no texto. O texto é dividido em palavras usando espaços em branco como delimitador, e então cada palavra é limpa de pontuações e convertida para minúsculas antes de ser contada. A função <code>main</code> utiliza este método para contar as palavras únicas em um texto de exemplo e imprime o resultado.</p>
<p>&nbsp;</p>
<h2>Exemplo em Python</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''
def count_unique_words(text):
    # Inicializa o dicionário para armazenar as contagens de palavras únicas
    word_count = {}

    # Divide o texto em palavras usando espaços em branco como delimitador
    words = text.split()

    # Itera sobre cada palavra no texto
    for word in words:
        # Remove pontuações e converte para minúsculas
        cleaned_word = word.strip(".,!?").lower()

        # Incrementa o contador da palavra no dicionário
        if cleaned_word in word_count:
            word_count[cleaned_word] += 1
        else:
            word_count[cleaned_word] = 1

    return word_count

def main():
    # Texto de exemplo
    text = "O rato roeu a roupa do rei de Roma. E o rei ficou tão irritado que mandou o rato para o mar."

    # Conta as palavras únicas no texto
    unique_word_count = count_unique_words(text)

    # Imprime as contagens de palavras únicas
    print("Contagem de palavras únicas:")
    for word, count in unique_word_count.items():
        print(f"{word}: {count}")

if __name__ == "__main__":
    main()
</pre>
<p>Neste código Python, a função <code>count_unique_words</code> recebe o texto como entrada e retorna um dicionário onde as chaves são as palavras únicas e os valores são o número de vezes que cada palavra aparece no texto. O texto é dividido em palavras usando espaços em branco como delimitador, e então cada palavra é limpa de pontuações e convertida para minúsculas antes de ser contada. A função <code>main</code> utiliza este método para contar as palavras únicas em um texto de exemplo e imprime o resultado.</p>
<p>&nbsp;</p>
<h2>Exemplo em C# / C Sharp</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

class Program
{
    static Dictionary&lt;string, int&gt; CountUniqueWords(string text)
    {
        // Inicializa o dicionário para armazenar as contagens de palavras únicas
        Dictionary&lt;string, int&gt; wordCount = new Dictionary&lt;string, int&gt;();

        // Divide o texto em palavras usando expressões regulares
        string[] words = Regex.Split(text, @"\W+");

        // Itera sobre cada palavra no texto
        foreach (string word in words)
        {
            // Remove pontuações e converte para minúsculas
            string cleanedWord = word.Trim().ToLower();

            // Incrementa o contador da palavra no dicionário
            if (!string.IsNullOrEmpty(cleanedWord))
            {
                if (wordCount.ContainsKey(cleanedWord))
                {
                    wordCount[cleanedWord]++;
                }
                else
                {
                    wordCount[cleanedWord] = 1;
                }
            }
        }

        return wordCount;
    }

    static void Main(string[] args)
    {
        // Texto de exemplo
        string text = "O rato roeu a roupa do rei de Roma. E o rei ficou tão irritado que mandou o rato para o mar.";

        // Conta as palavras únicas no texto
        Dictionary&lt;string, int&gt; uniqueWordCount = CountUniqueWords(text);

        // Imprime as contagens de palavras únicas
        Console.WriteLine("Contagem de palavras únicas:");
        foreach (var kvp in uniqueWordCount)
        {
            Console.WriteLine($"{kvp.Key}: {kvp.Value}");
        }
    }
}</pre>
<p>Neste código C#, a função <code>CountUniqueWords</code> recebe o texto como entrada e retorna um dicionário onde as chaves são as palavras únicas e os valores são o número de vezes que cada palavra aparece no texto. O texto é dividido em palavras usando expressões regulares para separar palavras de pontuações, e então cada palavra é limpa de espaços em branco, pontuações e convertida para minúsculas antes de ser contada. A função <code>Main</code> utiliza este método para contar as palavras únicas em um texto de exemplo e imprime o resultado.</p>
<p>&nbsp;</p>
<h2>Exemplo em Delphi</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">(***************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

****************************************)
program CountUniqueWords;

{$APPTYPE CONSOLE}

uses
  SysUtils, StrUtils, Classes, Generics.Collections, RegularExpressions;

function CountUniqueWords(const Text: string): TDictionary&lt;string, Integer&gt;;
var
  Words: TStringList;
  WordCount: TDictionary&lt;string, Integer&gt;;
  Word: string;
  CleanedWord: string;
begin
  // Inicializa o TDictionary para armazenar as contagens de palavras únicas
  WordCount := TDictionary&lt;string, Integer&gt;.Create;
  Words := TStringList.Create;
  try
    // Divide o texto em palavras usando expressões regulares
    Words.DelimitedText := TRegEx.Replace(Text, '\W+', ' ');

    // Itera sobre cada palavra no texto
    for Word in Words do
    begin
      // Remove pontuações e converte para minúsculas
      CleanedWord := Trim(LowerCase(Word));

      // Incrementa o contador da palavra no TDictionary
      if not CleanedWord.IsEmpty then
      begin
        if WordCount.ContainsKey(CleanedWord) then
          WordCount[CleanedWord] := WordCount[CleanedWord] + 1
        else
          WordCount.Add(CleanedWord, 1);
      end;
    end;
  finally
    Words.Free;
  end;
  Result := WordCount;
end;

var
  Text: string;
  UniqueWordCount: TDictionary&lt;string, Integer&gt;;
  Word: string;
begin
  // Texto de exemplo
  Text := 'O rato roeu a roupa do rei de Roma. E o rei ficou tão irritado que mandou o rato para o mar.';

  // Conta as palavras únicas no texto
  UniqueWordCount := CountUniqueWords(Text);

  try
    // Imprime as contagens de palavras únicas
    WriteLn('Contagem de palavras únicas:');
    for Word in UniqueWordCount.Keys do
      WriteLn(Word + ': ' + IntToStr(UniqueWordCount[Word]));
  finally
    UniqueWordCount.Free;
  end;
end.
</pre>
<p>Neste código Delphi, a função <code>CountUniqueWords</code> recebe o texto como entrada e retorna um TDictionary onde as chaves são as palavras únicas e os valores são o número de vezes que cada palavra aparece no texto. O texto é dividido em palavras usando expressões regulares para separar palavras de pontuações, e então cada palavra é limpa de espaços em branco, pontuações e convertida para minúsculas antes de ser contada. O programa principal utiliza este método para contar as palavras únicas em um texto de exemplo e imprime o resultado.</p>
<p>&nbsp;</p>
<h2>Exemplo em Java</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="java">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
import java.util.*;

public class Main {
    public static Map&lt;String, Integer&gt; countUniqueWords(String text) {
        // Inicializa o mapa para armazenar as contagens de palavras únicas
        Map&lt;String, Integer&gt; wordCount = new HashMap&lt;&gt;();

        // Divide o texto em palavras usando expressões regulares
        String[] words = text.split("\\W+");

        // Itera sobre cada palavra no texto
        for (String word : words) {
            // Remove pontuações e converte para minúsculas
            String cleanedWord = word.trim().toLowerCase();

            // Incrementa o contador da palavra no mapa
            if (!cleanedWord.isEmpty()) {
                wordCount.put(cleanedWord, wordCount.getOrDefault(cleanedWord, 0) + 1);
            }
        }

        return wordCount;
    }

    public static void main(String[] args) {
        // Texto de exemplo
        String text = "O rato roeu a roupa do rei de Roma. E o rei ficou tão irritado que mandou o rato para o mar.";

        // Conta as palavras únicas no texto
        Map&lt;String, Integer&gt; uniqueWordCount = countUniqueWords(text);

        // Imprime as contagens de palavras únicas
        System.out.println("Contagem de palavras únicas:");
        for (Map.Entry&lt;String, Integer&gt; entry : uniqueWordCount.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}</pre>
<p>Neste código Java, a função <code>countUniqueWords</code> recebe o texto como entrada e retorna um HashMap onde as chaves são as palavras únicas e os valores são o número de vezes que cada palavra aparece no texto. O texto é dividido em palavras usando expressões regulares para separar palavras de pontuações, e então cada palavra é limpa de espaços em branco, pontuações e convertida para minúsculas antes de ser contada. O método <code>main</code> utiliza este método para contar as palavras únicas em um texto de exemplo e imprime o resultado.</p>
<p>&nbsp;</p>
<h2>Exemplo em C++</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;unordered_map&gt;
#include &lt;sstream&gt;
#include &lt;algorithm&gt;

std::unordered_map&lt;std::string, int&gt; countUniqueWords(const std::string&amp; text) {
    // Inicializa o unordered_map para armazenar as contagens de palavras únicas
    std::unordered_map&lt;std::string, int&gt; wordCount;

    // Cria um stringstream a partir do texto para processar palavra por palavra
    std::stringstream ss(text);
    std::string word;

    // Itera sobre cada palavra no texto
    while (ss &gt;&gt; word) {
        // Remove pontuações e converte para minúsculas
        word.erase(std::remove_if(word.begin(), word.end(), ispunct), word.end());
        std::transform(word.begin(), word.end(), word.begin(), ::tolower);

        // Incrementa o contador da palavra no unordered_map
        wordCount[word]++;
    }

    return wordCount;
}

int main() {
    // Texto de exemplo
    std::string text = "O rato roeu a roupa do rei de Roma. E o rei ficou tão irritado que mandou o rato para o mar.";

    // Conta as palavras únicas no texto
    auto uniqueWordCount = countUniqueWords(text);

    // Imprime as contagens de palavras únicas
    std::cout &lt;&lt; "Contagem de palavras únicas:" &lt;&lt; std::endl;
    for (const auto&amp; pair : uniqueWordCount) {
        std::cout &lt;&lt; pair.first &lt;&lt; ": " &lt;&lt; pair.second &lt;&lt; std::endl;
    }

    return 0;
}</pre>
<p>Neste código C++, a função <code>countUniqueWords</code> recebe o texto como entrada e retorna um std::unordered_map onde as chaves são as palavras únicas e os valores são o número de vezes que cada palavra aparece no texto. O texto é dividido em palavras usando um std::stringstream, e então cada palavra é limpa de pontuações e convertida para minúsculas antes de ser contada. O método <code>main</code> utiliza este método para contar as palavras únicas em um texto de exemplo e imprime o resultado.</p>
<p>&nbsp;</p>
<h2>Exemplo em Rust</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="rust">/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
use std::collections::HashMap;

fn count_unique_words(text: &amp;str) -&gt; HashMap&lt;String, usize&gt; {
    // Inicializa o HashMap para armazenar as contagens de palavras únicas
    let mut word_count: HashMap&lt;String, usize&gt; = HashMap::new();

    // Divide o texto em palavras
    for word in text.split_whitespace() {
        // Remove pontuações e converte para minúsculas
        let cleaned_word = word.trim_matches(|c: char| !c.is_alphanumeric()).to_lowercase();

        // Incrementa o contador da palavra no HashMap
        *word_count.entry(cleaned_word).or_insert(0) += 1;
    }

    word_count
}

fn main() {
    // Texto de exemplo
    let text = "O rato roeu a roupa do rei de Roma. E o rei ficou tão irritado que mandou o rato para o mar.";

    // Conta as palavras únicas no texto
    let unique_word_count = count_unique_words(text);

    // Imprime as contagens de palavras únicas
    println!("Contagem de palavras únicas:");
    for (word, count) in &amp;unique_word_count {
        println!("{}: {}", word, count);
    }
}</pre>
<p>Neste código Rust, a função <code>count_unique_words</code> recebe o texto como entrada e retorna um HashMap onde as chaves são as palavras únicas e os valores são o número de vezes que cada palavra aparece no texto. O texto é dividido em palavras usando <code>split_whitespace</code>, e então cada palavra é limpa de pontuações e convertida para minúsculas antes de ser contada. O método <code>main</code> utiliza este método para contar as palavras únicas em um texto de exemplo e imprime o resultado.</p>
<p>&nbsp;</p>
<h2>Conclusão</h2>
<p>Este exercício nos permitiu explorar como resolver um problema prático de contagem de palavras únicas em um texto usando diferentes linguagens de programação. Através deste exercício, aprendemos a utilizar estruturas de dados adequadas, como HashMaps, Dicionários e Unordered Maps, para armazenar as contagens de palavras únicas. Além disso, praticamos técnicas de manipulação de strings, como dividir o texto em palavras, remover pontuações e converter para minúsculas.</p>
<p>Foi uma oportunidade para entender como lidar com dados não estruturados e aplicar algoritmos simples, como algoritmos de contagem, para resolver problemas de processamento de texto. Também destacou a importância da iteração sobre coleções de dados e a necessidade de compreender as peculiaridades de cada linguagem de programação para implementar soluções eficientes e legíveis.</p>
<p>Em resumo, este exercício proporcionou uma valiosa prática para desenvolver habilidades essenciais de programação, além de ilustrar a aplicação de conceitos fundamentais em um contexto prático.</p>
<p>&nbsp;</p>
<p>Beleza pessoal? Espero que tenham gostado.</p>
<p>&nbsp;</p>
<p>Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!</p>
<p>&nbsp;</p>
<p>Um abraço e até o próximo post. Valeu!</p>
<p>&nbsp;</p>
<p><strong>#Programação </strong></p>
<p><strong>#ManipulaçãoDeTexto </strong></p>
<p><strong>#EstruturasDeDados </strong></p>
<p><strong>#DesenvolvimentoDeSoftware</strong></p>
<p><strong>#GiovaniDaCruz</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://giovanidacruz.com.br/crie-um-algoritmo-e-um-programa-que-dado-um-texto-conte-o-numero-de-ocorrencias-de-cada-palavra-unica-no-texto-ignore-maiusculas-e-minusculas-bem-como-pontuacoes-retorne-um-hashmap-onde-as-chaves/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
