O que é programação estruturada?

No vasto universo do desenvolvimento de software, compreender os diferentes paradigmas de programação é crucial para qualquer profissional da área. Entre eles, a programação estruturada se destaca como um dos pilares que moldaram a forma como construímos sistemas. Mas o que exatamente ela significa e por que é tão relevante até hoje?

Neste texto, vamos entender o que é esse paradigma, como ele surgiu, quais são suas principais características e estruturas, e por que ele ainda é fundamental no aprendizado e, na prática da programação.

1 – O que é programação estruturada?

A programação estruturada é um paradigma de programação que preconiza a criação de programas organizados e de fácil entendimento, utilizando um conjunto limitado de estruturas de controle de fluxo. Ela surgiu como uma resposta aos desafios da programação não estruturada, que resultava em códigos complexos e difíceis de manter, popularmente conhecidos como “código espaguete”.

O objetivo principal da programação estruturada é simplificar o processo de desenvolvimento e depuração, promovendo a clareza e a modularidade do código. Em vez de saltos incondicionais (como o GOTO), ela incentiva o uso de construções bem definidas.

A programação estruturada parte da ideia central de que podemos desenvolver qualquer software, por mais complexo que ele seja, utilizando apenas três estruturas fundamentais de controle de fluxo.

  • Sequência: o sistema executa as instruções em ordem linear, uma após a outra. Essa é a forma mais básica de organizar um código, onde o sistema lê e processa cada comando na sequência em que ele aparece.
  • Seleção (ou Condição): permite que o programa execute diferentes blocos de código com base em uma condição. As estruturas mais comuns são o if/else (se/senão) e o switch/case (escolha/caso). Isso dá ao programa a capacidade de tomar decisões.
  • Iteração (ou Repetição/Loop): permite executar um bloco de código repetidamente enquanto uma condição for verdadeira ou por um número específico de vezes. Exemplos incluem for (para), while (enquanto) e do-while (faça-enquanto). Essas estruturas são essenciais para automatizar tarefas repetitivas.

Linguagens tradicionais como C, Pascal, Fortran, e ALGOL, por exemplo, adotam amplamente o paradigma da programação estruturada. Além delas, atualmente, muitas linguagens modernas como JavaScript, Python, PHP e outras também incorporam os princípios desse paradigma.

Em suma, a programação estruturada defende que a combinação dessas três estruturas básicas é suficiente para construir algoritmos eficientes, claros e fáceis de manter, independentemente da complexidade do problema.

2 – Quando esse paradigma de programação surgiu?

A programação estruturada ganhou força na década de 1960, impulsionada principalmente pelos trabalhos do cientista da computação Edsger W. Dijkstra. Na época, o desenvolvimento de software enfrentava uma crise de produtividade e qualidade. Os programas eram escritos de forma caótica, com muitos saltos GOTO que dificultavam o rastreamento do fluxo de execução e a identificação de erros. Desse modo, a manutenção e a expansão dos sistemas tornava-se um verdadeiro pesadelo.

Dijkstra, em seu famoso artigo “Go To Statement Considered Harmful” (Declaração Go To Considerada Prejudicial) de 1968, criticou severamente o uso indiscriminado do GOTO, argumentando que ele levava a programas “espalhafatosos” e ininteligíveis. Sua proposta era justamente a utilização das três estruturas de controle que mencionamos: sequência, seleção e iteração.

Assim, o surgimento da programação estruturada representou um avanço significativo para a engenharia de software, promovendo a modularidade, legibilidade e manutenibilidade do código. Ao dividir o programa em blocos menores e mais gerenciáveis (como funções e procedimentos), tornou-se mais fácil para os desenvolvedores entenderem, testarem e corrigirem partes específicas do sistema sem afetar o todo.

3 – Exemplo de programação estruturada

Com a finalidade de ilustrar os conceitos da programação estruturada, vamos analisar um exemplo simples de código que verifica se um número é par ou ímpar. Observe que, para fins didáticos, desenvolvemos esse código em três linguagens diferentes: JavaScript, Python e Java.

Ademais, note em cada linguagem utilizada, como a modularização das funções e o uso das estruturas de controle de fluxo acontecem na prática.

JSPythonC++

// Função para verificar se o número é par ou ímpar 
function verificarParOuImpar(numero) {

    // Utiliza uma estrutura condicional (if/else) para determinar a paridade
    if (numero % 2 === 0) {
        return "O número é par.";
    } else {
        return "O número é ímpar.";
    }
}

// Função principal para executar o programa 
function main() {
    var entradaValida = false;

    // Loop de repetição (while) para obter uma entrada numérica válida do usuário
    while (!entradaValida) {
        var numero = prompt("Digite um número inteiro: ");
        // Verifica se o valor inserido é de fato um número
        if (!isNaN(numero)) {
            entradaValida = true;
        } else {
            console.log("Por favor, digite um número válido.");
        }
    }

    // Invoca a função que checa a paridade do número (fluxo sequencial)
    console.log(verificarParOuImpar(numero));
}

// Inicia a execução do programa chamando a função principal (fluxo sequencial)
main();

# Função para verificar se o número é par ou ímpar
def verificar_par_ou_impar(numero):
    
    # Aplica uma condição (if/else) para checar se o número é par
    if numero % 2 == 0:
        return "O número é par."
    else:
        return "O número é ímpar."

# Função principal para executar o programa
def main():
    entrada_valida = False

    # Itera (loop while) até que o usuário forneça um número inteiro válido
    while not entrada_valida:
        numero_str = input("Digite um número inteiro: ")
        # Confere se a entrada fornecida é um número
        if numero_str.isdigit() or (numero_str.startswith('-') and numero_str[1:].isdigit()):
            numero = int(numero_str)
            entrada_valida = True
        else:
            print("Por favor, digite um número válido.")

    # Aciona a função que determina se o número é par ou ímpar (execução sequencial)
    print(verificar_par_ou_impar(numero))

# Garante que a função principal seja chamada ao executar o script
if __name__ == "__main__":
    main()

#include <iostream>
#include <string>  
#include <limits>   

// Função para verificar se o número é par ou ímpar
std::string verificarParOuImpar(int numero) {
    // Implementação de uma estrutura condicional (if/else) para validação
    if (numero % 2 == 0) {
        return "O número é par.";
    } else {
        return "O número é ímpar.";
    }
}

// Função principal para executar o programa
int main() {
    bool entradaValida = false;
    int numero = 0; // Inicializa a variável para ser usada no escopo

    // Estrutura de repetição (while) para garantir uma entrada numérica correta
    while (!entradaValida) {
        std::cout << "Digite um número inteiro: ";
        // Tenta ler um número inteiro
        if (std::cin >> numero) {
            entradaValida = true;
        } else {
            std::cout << "Por favor, digite um número válido." << std::endl;
            // Limpa o estado de erro do cin e descarta o restante da linha de entrada
            std::cin.clear();
            std::cin.ignore(std::numeric_limits::max(), '\n');
        }
    }

    // Chama a função que verifica a paridade do número (fluxo de execução)
    std::cout << verificarParOuImpar(numero) << std::endl;

    return 0; // Indica que o programa terminou com sucesso
}

Nestes exemplos, podemos observar claramente os princípios da Programação Estruturada aplicados na prática:

  • Modularidade: nas três linguagens que utilizamos em nosso exemplo, o código é dividido em duas funções, cada uma delas com sua responsabilidade específica.
    • verificarParOuImpar: função para verificar se o número é par ou ímpar.
    • main: função principal para executar o programa.
  • Estruturas de Controle: utilizamos if/else para tomar decisões (verificar par/ímpar e validar a entrada) e um while para repetir a solicitação de entrada até que um número válido seja fornecido.
  • Sequência: observe em todos os códigos que, tanto a organização das instruções dentro de cada função e as suas respectivas chamadas ocorrem em uma ordem lógica e sequencial.

Apesar de novos paradigmas terem surgido, como a programação orientada a objetos, a programação estruturada continua sendo a base para a escrita de código legível, eficiente e fácil de manter. Portanto, entender seus conceitos é fundamental para qualquer desenvolvedor que busca construir sistemas robustos e de alta qualidade.

Conclusão

A programação estruturada representou um divisor de águas na história do desenvolvimento de software, ao propor uma abordagem mais clara, lógica e modular para a construção de programas.

Mesmo que outros paradigmas tenham surgido, como a programação orientada a objetos e programação funcional, por exemplo, os princípios da programação estruturada continuam sendo amplamente utilizados e valorizados.

Por fim, podemos compreender que dominar a programação estruturada é um passo essencial para qualquer desenvolvedor, pois ela fornece a base para escrever códigos mais organizados, legíveis e fáceis de manter — qualidades indispensáveis na criação de sistemas robustos e duradouros.

Espero que este conteúdo seja útil de alguma forma para você. Se gostou do conteúdo, compartilhe com seus amigos e aproveite para conhecer mais sobre programação aqui!

Como manter a segurança na internet?

Em um mundo cada vez mais conectado, onde a tecnologia permeia cada aspecto de nossas vidas, a segurança na internet se tornou um dos temas mais importantes da atualidade. Nossas informações pessoais, financeiras e profissionais estão constantemente transitando por redes e dispositivos, tornando-nos alvos potenciais para ataques cibernéticos.

Mas o que significa, de fato, “manter a segurança na internet”? Muito mais do que apenas criar senhas complexas, a segurança na internet envolve um conjunto de hábitos, ferramentas e conhecimentos que, juntos, formam uma barreira robusta contra as ameaças digitais.

Neste artigo, vamos explorar os principais pilares da segurança digital e apresentar boas práticas que podem (e devem) ser adotadas por qualquer pessoa — seja você um profissional de TI, estudante da área ou alguém que procura simplesmente navegar com mais tranquilidade.

1. O alicerce da segurança na internet: senhas fortes e únicas

Não há como falar de segurança na internet sem começar pelas senhas. Elas são, literalmente, as chaves que protegem nossas contas e informações de acessos indevidos. Subestimar a importância das senhas é uma das maiores vulnerabilidades que muitos de nós criamos.

Para proteger nossa privacidade na internet, o primeiro passo é criar senhas fortes. Para isso, elas devem atender a alguns requisitos fundamentais:

  • Crie senhas longas: uma senha deve ter, no mínimo, 8 caracteres. Mas o ideal é que ela seja ainda mais longa. Quanto mais caracteres, mais tempo e recursos são necessários para quebrá-la em um ataque de força bruta.
  • Combine números, letras e caracteres especiais: jamais utilize padrões óbvios como “123456” ou “abcdef”. A força de uma senha reside na combinação aleatória de letras maiúsculas e minúsculas, números e caracteres especiais (como !, @, #, $, %, etc.). Pense em frases longas e fáceis de memorizar, mas difíceis de adivinhar.
  • Nada de senhas óbvias: datas de nascimento (a sua ou de pessoas próximas), nomes de parentes, nomes de animais de estimação, nome do time de futebol que você torce. Essas informações e quaisquer outras de cunho pessoal podem ser facilmente encontradas em suas redes sociais e na internet em geral. Assim, esse tipo de senha pode servir como uma porta de entrada para invasores. Seja criativo na hora de criar suas senhas e evite dados que possam ser facilmente associados a você.

2. Comportamentos que fortalecem sua segurança na internet

Criar senhas fortes é o primeiro passo, mas a segurança na internet vai além disso e exige a adoção de vários comportamentos conscientes. Ignorar esses comportamentos e não os adotar em seu dia a dia pode anular todo o seu esforço inicial de criar senhas fortes.

  • A regra de ouro: senhas únicas para cada serviço: reutilizar a mesma senha em diversas plataformas é um erro grave. Você já parou para pensar que, ao repetir sempre a mesma senha em todos os lugares, basta que apenas uma de suas contas seja comprometida e o invasor terá acesso a todas as outras onde você usa a mesma credencial? Invista na criação de senhas diferentes para cada serviço que você usa.
  • Não anote suas senhas: anotar suas senhas em papéis, blocos de anotações ou arquivos de texto não protegidos é extremamente perigoso. Se essas anotações, físicas ou virtuais, caírem em mãos erradas, sua privacidade estará comprometida. Procure utilizar mecanismos confiáveis de gerenciamento de senhas para não precisar recorrer às anotações.
  • Atualize suas senhas periodicamente: vazamentos de dados são uma realidade e podem acontecer a qualquer momento, para qualquer empresa. Mesmo que as empresas que armazenam nossos dados tomem as melhores medidas e usem os melhores recursos e ferramentas de segurança digital, ainda assim suas informações podem ser expostas. Por isso, crie o hábito de atualizar suas senhas regularmente, pelo menos uma vez ao ano para serviços comuns e com mais frequência para serviços críticos como seu e-mail principal e suas contas bancárias.

3. Camadas extras de proteção: medidas adicionais de segurança

A sofisticação dos ataques cibernéticos é cada vez maior e para nos proteger precisamos ir além do básico. Integrar medidas adicionais de segurança ao seu dia a dia é crucial para impedir a ação de criminosos digitais:

  • Utilize gerenciadores de senhas: com a quantidade de serviços digitais que utilizamos hoje em dia, memorizar senhas únicas para cada um é praticamente impossível. Nesse contexto, os gerenciadores de senhas são importantes ferramentas que armazenam suas credenciais de forma criptografada e segura. Isso lhe permite criar senhas complexas e únicas para cada serviço sem a necessidade de memorizá-las. Muitos desses serviços oferecem versões gratuitas e são compatíveis com diversos dispositivos.
  • Configure a autenticação multifator (MFA): a autenticação multifator (MFA) adiciona uma poderosa camada extra de proteção aos seus serviços digitais. Mesmo que sua senha seja descoberta por um invasor, ele ainda precisará superar um segundo fator de autenticação para acessar sua conta. Isso pode ser um código enviado por SMS, e-mail, aplicativo autenticador (como Google Authenticator ou Microsoft Authenticator) ou até mesmo sua impressão digital. Ative a MFA sempre que disponível, pois esta é uma das medidas mais eficazes para prevenir acessos indevidos.
  • Mantenha seus softwares atualizados: as atualizações de software, seja do seu sistema operacional (Windows, macOS, Android, iOS) ou de seus aplicativos, não trazem apenas novas funcionalidades. Elas corrigem vulnerabilidades de segurança que poderiam ser exploradas por invasores. Por isso, mantenha seus dispositivos e softwares sempre atualizados.

4 – Comportamentos extras para aumentar a segurança na internet

Além das medidas adicionais de segurança que podemos adotar em nossos dispositivos e sistemas, há também alguns comportamentos simples que podemos adotar para aumentar nossa segurança na internet:

  • Desconfie sempre: essa é uma regra fundamental. Jamais forneça suas senhas ou códigos de autenticação a terceiros, independentemente da justificativa ou do meio de comunicação utilizado (telefone, e-mail, WhatsApp, redes sociais). Empresas e instituições legítimas nunca solicitarão suas credenciais de acesso dessa forma. Desconfie de mensagens ou ligações suspeitas e, se necessário, procure as autoridades competentes.
  • Evite usar redes Wi-fi públicas: redes públicas, como as oferecidas em shoppings, cafés e aeroportos, são muito práticas, mas também muito perigosas. Geralmente, essas redes não possuem uma boa proteção e podem ser um alvo fácil para criminosos que tentam interceptar seus dados. Não as utilize para acessar informações sensíveis, como dados bancários ou e-mails importantes. Prefira utilizar sua conexão 4G/5G. Porém, se precisar utilizá-las, opte por uma VPN (Rede Privada Virtual), que cria uma conexão criptografada e segura, dificultando a interceptação das suas informações.
  • Não clique em links e anexos suspeitos: sempre desconfie de links ou anexos recebidos por e-mail, SMS ou aplicativos de mensagens, especialmente se a mensagem for alarmista ou pedir para você tomar uma atitude urgente. Clicar em links maliciosos ou baixar anexos infectados pode instalar programas espiões no seu dispositivo ou direcioná-lo para páginas falsas que roubam suas informações de login. Verifique sempre o remetente e o conteúdo antes de clicar e, em caso de dúvida, entre em contato, por meio de um canal oficial, diretamente com a empresa ou pessoa que supostamente lhe enviou a mensagem.

Conclusão

Manter a segurança na internet é um processo contínuo que envolve a criação de senhas fortes, a adoção de comportamentos seguros e o uso dos recursos tecnológicos de segurança disponíveis. É dessa forma que você deixa de ser uma presa fácil para invasores e constrói uma verdadeira muralha contra ameaças cibernéticas, podendo usufruir dos benefícios da internet de forma segura e tranquila.

Lembre-se: suas informações pessoais são valiosas e proteger seus dados é proteger a si mesmo. Por isso, invista na sua segurança digital e proteja sua privacidade em um mundo cada vez mais conectado.

Espero que este conteúdo seja útil de alguma forma para você. Gostou do post? Compartilhe com seus amigos e aproveite para conhecer mais sobre segurança da informação clicando aqui!

O que é Python?

Considerada uma das linguagens mais populares e poderosas da atualidade, o Python vem conquistando tanto iniciantes quanto profissionais experientes por sua simplicidade, versatilidade e ampla gama de aplicações.

Mas o que exatamente torna o Python tão especial? Por que ele é recomendado como primeira linguagem para quem está começando, e ao mesmo tempo é utilizado em grandes projetos de empresas como Google, Netflix e NASA?

Neste artigo, vamos explorar o que é Python, suas principais características, onde e como surgiu, como instalá-lo no seu computador e, por fim, veremos um exemplo prático que demonstra como a linguagem funciona.

Se você está dando os primeiros passos no mundo da programação ou simplesmente quer entender por que o essa lingaugem é tão popular, este guia é para você. Vamos começar?

1- O que é Python?

Python é uma linguagem de programação de alto nível, interpretada, de propósito geral e multiparadigma. Mas o que isso significa na prática?

  • Alto Nível: isso quer dizer que Python se aproxima mais da linguagem humana do que da máquina, tornando-o mais fácil de ler e escrever.
  • Interpretada: ao contrário de linguagens compiladas (como C++ ou Java), o código Python é executado linha por linha por um interpretador, sem a necessidade de um processo de compilação prévia. Isso agiliza o desenvolvimento e a depuração.
  • Propósito Geral: Python não é uma linguagem restrita a uma área específica. Ela pode ser utilizada no desenvolvimento web, inteligência artificial, ciência de dados, automação, jogos, finanças e muito mais.
  • Multiparadigma: Suporta diferentes estilos de programação, incluindo programação orientada a objetos (POO), programação funcional e programação imperativa.

Python é uma linguagem que possui sintaxe simples e intuitiva, projetada para ser fácil de ler e escrever. São essas características que a tornam ideal tanto para iniciantes quanto para desenvolvedores experientes.

Além disso, sua vasta quantidade de bibliotecas disponíveis fazem dela uma escolha sólida para uma ampla gama de aplicações, desde simples scripts de análises de dados até sistemas complexos de automação de tarefas.

1.1 – Principais características do Python

Além das caracterísitcas apresentadas acima, o Python possui outras que ajudaram a linguagem a se popularizar na comunidade de desenvolvimento:

  • Tipagem dinâmica: não é necessário declarar o tipo das variáveis. A definição dos tipos ocorre em tempo de execução do código.
  • Portabilidade: códigos Python podem ser executados em diferentes sistemas operacionais (Windows, Linux, macOS), exigindo pouca ou nenhuma modificação. Escreva uma vez, execute em qualquer lugar.
  • Sintaxe simples e legível: a sintaxe de Python é extermamente limpa e intuitiva, assemelhando-se ao inglês. Isso facilita a criação, o entendimento e a manutenção do código no longo prazo.
  • Grande Biblioteca Padrão e Ecossistema Rico: o Python fornece uma vasta coleção de módulos e pacotes pré-construídos que permitem realizar uma infinidade de tarefas sem “reinventar a roda”. Além disso, o ecossistema é complementado por milhares de bibliotecas de terceiros (como pandas para análise de dados, requests para requisições HTTP, Django e Flask para desenvolvimento web, e TensorFlow para aprendizado de máquina).
  • Comunidade Ativa e Abrangente: Há uma comunidade global massiva de desenvolvedores Python. Isso significa que você sempre encontrará suporte, documentação detalhada, tutoriais e uma infinidade de recursos para ajudar no seu aprendizado e na solução de problemas.

2 – Onde e como o Python surgiu?

Python foi criado, no final dos anos 1908, por Guido van Rossum, um programador holandês. Sua primeira versão oficial (0.9.0) foi lançada em 1991. A ideia de Guido era desenvolver uma linguagem que fosse tão poderosa quanto o C, mas que possuísse uma sintaxe mais simples e encorajasse a adoção de boas práticas de programação.

O nome Python não veio do animal, mas sim do grupo britânico de comédia Monty Python’s Flying Circus, do qual Guido era fã.Ele resolveu homenagear o grupo nomeando sua linguagem dessa forma.

Desde seu lançamento, o Python evoluiu muito e se tornou uma das linguagens mais dominantes no cenário tecnológico global.

3 – Como instalar o Python

Instalar o Python é um processo relativamente simples, mas varia um pouco dependendo do seu sistema operacional. Abaixo veremos os passos básicos para os principais sistemas operacionais:

3.1 – Windows

No Windows você pode utilizar um executável para instalar o Python na sua máquina:

  1. Acesse a página oficial de downloads aqui.
  2. Selecione a versão recomendada para seu Windows e faça seu download.
  3. Execute o instalador e não esqueça de marcar a opção “Add Python to PATH” antes de continuar. Essa etapa é muito importante, pois, criará de forma automática uma variável de ambiente para a linguagem.
  4. Clique em Install Now e aguarde a conclusão.
  5. Verificação: Abra o Prompt de Comando do Windows. Para isso pressione Win + R, ou abra o menu iniciar, digite cmd e pressione Enter. No cmd digite python --version ou py --version. Com isso, você visualizará a versão do Python instalada em seu computador.

3.2 – Linux (Debian/Ubuntu)

A maioria das distribuições Linux já vem com o Python instalado por padrão, não havendo necessidade executar os passos a seguir. Porém, se a sua distribuição Linux não vier com a linguagem instalada por padrão, basta executar os comandos abaixo no seu terminal:

sudo apt update
sudo apt install python3

Para verificar a versão do Python instalada no seu Linux, abra o Terminal e digite python3 --version.

3.3 – macOS

No macOs a forma mais prática de instalar o Python é através do gerenciador de pacotes Homebrew. Se você não o tem, instale-o com:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Após instalar o Homebrew, instale Python com o seguinte comando:

brew install python

Para verificar a versão instalada, abra o Terminal e digite python3 --version.

3.4 – Escolhendo uma IDE

Seja qual for seu sistema operacional, assim que concluída a instalação do Python, você precisará de uma IDE para escrever seus códigos de forma eficiente. Eu particularmente, já trabalhei e gosto de duas IDEs para Python: o Visual Studio Code e o PyCharm. Fica a seu critério escolher uma dessas duas IDEs ou outra que seja do seu gosto para começar a codar.

4 – Usando o Python na prática

Depois de instalar o Python, chegou a hora de escrevermos nosso primeiro código. Vamos criar um pequeno script que solicita o nome do usuário e calcula a sua idade com base no ano de nascimento informada:

nome = input("Digite seu nome: ")
ano_nascimento = int(input("Digite seu ano de nascimento: "))
ano_atual = 2025

idade = ano_atual - ano_nascimento

print(f"Olá, {nome}! Pelos meus cálculos, agora em {ano_atual}, você tem {idade} anos.")

Esse pequeno script já introduz conceitos importantes da linguagem, como:

  • Leitura de entrada com input()
  • Conversão de tipos (int)
  • Operações matemáticas
  • Uso de variáveis e interpolação de strings com f-strings

Salve esse arquivo com um nome como calcula_idade.py. Independente do nome que você escolher, o importante é que o arquivo possua a extensão.py. Agora, no seu terminal, acesse o diretório onde salvou o arquivo e execute-o com o comando:

python calcula_idade.py

O script irá solicitar seu nome e ano de nascimento e lhe dará um retorno semelhante a esse aqui:

Conclusão

O Python é uma linguagem acessível, poderosa e extremamente versátil. Sua sintaxe clara facilita o aprendizado e permite que o programador foque mais na lógica do problema e menos nos detalhes técnicos da linguagem. Por isso, essa linguagem tem sido a porta de entrada de muitos estudantes no mundo da programação e também uma ferramenta indispensável para profissionais experientes de diversas áreas.

Ao longo deste artigo, conhecemos o que é Python, suas principais características, onde surgiu, como instalar no seu computador e vimos um pequeno exemplo de uso. Agora, o próximo passo é com você: explore, experimente e continue aprendendo. O Python tem um ecossistema riquíssimo e uma comunidade ativa que com certeza te ajudará a evoluir rapidamente.

Espero que este conteúdo seja útil de alguma forma para você. Se gostou do conteúdo, compartilhe com seus amigos e aproveite para conhecer mais sobre programação aqui! — tem muito mais esperando por você!