Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

# 💡 Desafio de Lógica e Programação – Processo Seletivo

Este repositório contém a resolução de 5 desafios propostos para avaliação de lógica de programação, manipulação de dados e domínio da linguagem Python.

## 📋 Descrição dos Desafios

### 1️⃣ Soma de Números com Laço de Repetição

Objetivo: 
Calcular o valor da variável `SOMA` após a execução de um laço `while`.

```
INDICE = 13
SOMA = 0
K = 0

while K < INDICE:
    K += 1
    SOMA += K

print(SOMA)  # Resultado: 91

Explicação: A cada iteração, K é incrementado em 1 e somado à variável SOMA. No final, a soma dos números de 1 a 13 é 91.


2️⃣ Verificação na Sequência de Fibonacci

Objetivo: Criar um programa que verifica se um número pertence à sequência de Fibonacci.

def pertence_fibonacci(numero):
    a, b = 0, 1
    while b < numero:
        a, b = b, a + b
    if b == numero or numero == 0:
        return f"{numero} pertence à sequência de Fibonacci."
    else:
        return f"{numero} NÃO pertence à sequência de Fibonacci."

print(pertence_fibonacci(34))  # 34 pertence à sequência

Explicação: A função utiliza um loop para gerar a sequência até ultrapassar o número desejado, comparando se ele é igual a algum dos valores da sequência.


3️⃣ Análise de Faturamento Diário (JSON)

Objetivo: Ler um arquivo JSON com valores de faturamento diário e calcular:

  • Menor e maior faturamento (ignorando dias com valor = 0)
  • Média mensal (somente dos dias com valor)
  • Quantidade de dias com faturamento acima da média
import json

with open("dados.json", "r") as file:
    dados = json.load(file)

valores = [d["valor"] for d in dados if d["valor"] > 0]
menor = min(valores)
maior = max(valores)
media = sum(valores) / len(valores)
dias_acima_media = sum(1 for v in valores if v > media)

print("Menor valor:", menor)
print("Maior valor:", maior)
print("Dias acima da média:", dias_acima_media)

4️⃣ Percentual de Representação por Estado

Objetivo: Calcular o percentual de representação de cada estado no faturamento total.

faturamento = {
    "SP": 67836.43,
    "RJ": 36678.66,
    "MG": 29229.88,
    "ES": 27165.48,
    "Outros": 19849.53
}

total = sum(faturamento.values())
percentuais = {estado: (valor / total) * 100 for estado, valor in faturamento.items()}

for estado, perc in percentuais.items():
    print(f"{estado}: {perc:.2f}%")

Explicação: O script soma os valores totais e calcula a porcentagem proporcional de cada estado com base nessa soma.


5️⃣ Inversão de String (Sem reverse())

Objetivo: Implementar manualmente a inversão de uma string sem usar métodos prontos como reverse() ou slicing.

def inverter_string(s):
    invertida = ""
    for char in s:
        invertida = char + invertida
    return invertida

print(inverter_string("OpenAI"))  # Resultado: iaNepO

🛠 Tecnologias Utilizadas

  • Python 3.x
  • JSON (para análise de dados)
  • Lógica de programação e matemática

📁 Organização

  • desafio1_soma.py
  • desafio2_fibonacci.py
  • desafio3_faturamento.py
  • desafio4_percentual.py
  • desafio5_inversao.py
  • dados.json – usado no Desafio 3

✅ Como Executar

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/desafio-logica.git
    cd desafio-logica
    
  2. Execute os arquivos individualmente com Python:

    python desafio1_soma.py
    

✍️ Autor

Desenvolvido por Igor Rafael Marcelo Morais como parte de um processo seletivo para vaga de estágio/trainee em tecnologia.

About

Este repositório contém a resolução de 5 desafios propostos para avaliação de lógica de programação, manipulação de dados e domínio da linguagem Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages