Análise e Interpretação de Problemas 🧠

Anexo 06 - Como Pensar Antes de Programar

Aprenda a analisar e interpretar problemas antes de desenvolver soluções em Python!

Por Que Analisar Problemas? 🤔

💡 Dica Importante: Antes de escrever qualquer código, é fundamental entender o que o problema pede, identificar as informações importantes e planejar os passos da solução.

Passos para Analisar um Problema 📋

Passo O que fazer? 🎯 Exemplo Prático
1. Leia com atenção 📖 Entenda o que está sendo pedido "Receba dois números e mostre qual é o maior"
2. Identifique entradas 📥 Quais informações você recebe? Dois números (ex: 7 e 12)
3. Defina o resultado 📤 O que você precisa entregar? O maior número (ex: 12)
4. Divida em etapas 🔄 Quais passos são necessários? 1. Pedir números 2. Comparar 3. Mostrar o maior
5. Planeje a lógica ⚙️ Como transformar entrada em saída? Usar if para comparar os números

Exemplo Simples - Comparando Números 🔢

Problema: "Receba dois números e mostre qual deles é o maior."
Análise Detalhes Código Python
Entrada 📥 Dois números a = int(input("Primeiro número: "))
b = int(input("Segundo número: "))
Processamento ⚙️ Comparar os números if a > b:
Saída 📤 Mostrar o maior print("O maior é:", a)
else:
print("O maior é:", b)
a = int(input("Digite o primeiro número: "))
b = int(input("Digite o segundo número: "))
if a > b:
    print("O maior número é:", a)
else:
    print("O maior número é:", b)
Exemplos com Estruturas de Dados 📊

Exemplo 1 - Trabalhando com Listas 📋

Problema: "Receba uma lista de números e mostre apenas os números pares."
Análise Detalhes Código Python
Entrada 📥 Lista de números (ex: [3, 8, 5, 10, 2]) numeros = [int(x) for x in input().split()]
Processamento ⚙️ Verificar se cada número é par (n % 2 == 0) pares = [n for n in numeros if n % 2 == 0]
Saída 📤 Números pares (ex: 8, 10, 2) print("Números pares:", pares)
numeros = [int(x) for x in input("Digite números separados por espaço: ").split()]
pares = [n for n in numeros if n % 2 == 0]
print("Números pares:", pares)

Exemplo 2 - Trabalhando com Tuplas 📦

Problema: "Dada uma tupla com nomes, conte quantos nomes começam com a letra A."
Análise Detalhes Código Python
Entrada 📥 Tupla de nomes (ex: ("Ana", "Bruno", "Alice", "Carlos")) nomes = tuple(input().split())
Processamento ⚙️ Verificar se cada nome começa com 'A' nome.upper().startswith('A')
Saída 📤 Quantidade de nomes (ex: 2) print("Nomes com A:", contagem)
nomes = tuple(input("Digite nomes separados por espaço: ").split())
contagem = sum(1 for nome in nomes if nome.upper().startswith('A'))
print("Nomes que começam com A:", contagem)

Exemplo 3 - Trabalhando com Dicionários 🗂️

Problema: "Receba um dicionário com nomes e idades, e mostre os nomes das pessoas com mais de 18 anos."
Análise Detalhes Código Python
Entrada 📥 Nomes e idades de pessoas dados = {}
nome = input("Nome: ")
idade = int(input("Idade: "))
Processamento ⚙️ Verificar se idade > 18 if idade > 18
Saída 📤 Nomes dos maiores de idade print("Maiores de idade:", maiores)
dados = {}
for _ in range(4):
    nome = input("Nome: ")
    idade = int(input("Idade: "))
    dados[nome] = idade
maiores = [nome for nome, idade in dados.items() if idade > 18]
print("Pessoas com mais de 18 anos:", maiores)

Exemplo 4 - Lista de Dicionários 🛍️

Problema: "Receba uma lista de dicionários com produtos e preços, e mostre os produtos acima de R$50."
Análise Detalhes Código Python
Entrada 📥 Lista de produtos com nome e preço produtos = []
produtos.append({"nome": nome, "preco": preco})
Processamento ⚙️ Verificar se preço > 50 if produto["preco"] > 50
Saída 📤 Produtos caros print("Produtos acima de R$50:", caros)
produtos = []
for _ in range(3):
    nome = input("Nome do produto: ")
    preco = float(input("Preço: "))
    produtos.append({"nome": nome, "preco": preco})
caros = [p["nome"] for p in produtos if p["preco"] > 50]
print("Produtos acima de R$50:", caros)

Dicas Importantes para Análise 💡

Dica Por que é importante? 🌟 Como aplicar
Desenhe o problema ✏️ Visualizar ajuda a entender melhor Faça diagramas, fluxogramas ou rabiscos
Use exemplos concretos 📝 Números reais facilitam o entendimento Em vez de "lista de números", use [5, 8, 3, 12]
Quebre em partes menores 🧩 Problemas grandes ficam mais simples Resolva uma etapa por vez
Teste casos extremos 🔬 Garante que a solução é robusta Liste vazia, números negativos, texto em branco
Converse sobre o problema 💬 Explicar para alguém revela falhas na lógica Explique seu raciocínio para um colega