# 💡 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: 91Explicaçã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.
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.
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)
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.
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
- Python 3.x
- JSON (para análise de dados)
- Lógica de programação e matemática
desafio1_soma.pydesafio2_fibonacci.pydesafio3_faturamento.pydesafio4_percentual.pydesafio5_inversao.pydados.json– usado no Desafio 3
-
Clone o repositório:
git clone https://github.com/seu-usuario/desafio-logica.git cd desafio-logica -
Execute os arquivos individualmente com Python:
python desafio1_soma.py
Desenvolvido por Igor Rafael Marcelo Morais como parte de um processo seletivo para vaga de estágio/trainee em tecnologia.