🔍 Guia Prático

Como Interpretar Enunciados de Programação e Extrair as Informações Certas

🧠 O Segredo para Entender Enunciados

Muitos alunos travam ao ler um enunciado e pensam: "Não sei por onde começar!"

O segredo é fazer 3 perguntas fundamentais para TODO enunciado:

  1. 📥 O que ENTRA? (Entradas / Input)
  2. ⚙️ O que FAZ? (Processamento / Cálculos)
  3. 📤 O que SAI? (Saídas / Output)

Essas 3 perguntas formam o fluxo de TODO programa:

📥
ENTRADA
O que o usuário
digita?
⚙️
PROCESSAMENTO
O que o programa
faz com os dados?
📤
SAÍDA
O que aparece
na tela?

📝 Exemplo 1: Analisando um Enunciado Simples

"Escreva um programa que leia 10 números inteiros, os armazene em um vetor e mostre a sequência em ordem inversa."

Aplicando as 3 perguntas:

1
📥 O que ENTRA?

Palavras-chave: leia 10 números inteiros

→ Preciso ler 10 valores do tipo int

→ Ferramenta: scanf("%d", &vetor[i]) dentro de um laço

2
⚙️ O que FAZ?

Palavras-chave: armazene em um vetor ordem inversa

→ Preciso de um vetor de 10 posições

→ "Ordem inversa" = percorrer do último ao primeiro índice

3
📤 O que SAI?

Palavras-chave: mostre a sequência

→ Imprimir na tela com printf

💡 Mapa mental gerado:

Ler 10 ints → Guardar em vetor[10] → Imprimir de vetor[9] até vetor[0]

📝 Exemplo 2: Enunciado Mais Complexo

"Escreva um programa que leia 16 números reais e os armazene em uma matriz quadrada. Calcule o somatório dos elementos da diagonal principal e o somatório dos elementos da diagonal secundária. O programa deve imprimir o maior somatório e indicar a qual diagonal ele pertence."

(Lista 7, Exercício 6)

Analisando palavra por palavra:

Trecho do Enunciado Tradução para Código
"leia 16 números reais" float matriz[4][4]; + scanf em laço duplo
"armazene em uma matriz quadrada" Matriz 4×4 (√16 = 4)
"somatório dos elementos da diagonal principal" if(i == j) soma_princ += matriz[i][j];
"somatório dos elementos da diagonal secundária" if(i+j == 3) soma_sec += matriz[i][j];
"imprimir o maior somatório" if(soma_princ > soma_sec) ... else ...
"indicar a qual diagonal ele pertence" Imprimir texto: "Diagonal principal" ou "Diagonal secundária"

🔤 3. Palavras-Chave que Aparecem nos Enunciados

Aprenda a reconhecer estas palavras e o que elas significam:

📥 Entrada de Dados:

Palavra/FraseSignificadoFerramenta
"leia"Entrada do usuárioscanf()
"receba como entrada"Entrada do usuárioscanf()
"fornecido pelo usuário"Entrada do usuárioscanf()
"N números"Quantidade específicafor com N iterações
"sequência de"Vários valoresVetor + laço

⚙️ Processamento:

Palavra/FraseSignificadoFerramenta
"armazene em um vetor"Usar arraytipo nome[tamanho];
"armazene em uma matriz"Usar matriz 2Dtipo nome[lin][col];
"calcule a média"Soma ÷ quantidadeAcumulador + divisão
"somatório"Soma de elementosVariável acumuladora
"maior" / "menor"Comparaçãoif + atualização
"ordem inversa"De trás pra frenteLaço decrescente
"par" / "ímpar"Resto da divisão por 2% 2 == 0
"positivo" / "negativo"Sinal do número>= 0 ou < 0
"diagonal principal"Linha = Colunai == j
"diagonal secundária"Linha + Coluna = N-1i + j == N-1

📤 Saída de Dados:

Palavra/FraseSignificadoFerramenta
"imprima" / "mostre"Exibir na telaprintf()
"apresente na tela"Exibir na telaprintf()
"informe"Exibir resultadoprintf()
"ao final"Depois do laçoCódigo após o for

📋 4. Método Prático: Checklist de Interpretação

Para cada enunciado, siga este passo a passo:

1
Sublinhe/destaque os VERBOS DE AÇÃO

Ex: leia, armazene, calcule, imprima

Cada verbo é uma ação que seu programa deve executar.

2
Identifique os DADOS mencionados

Ex: "10 números inteiros", "temperaturas na escala Celsius", "matriz 5x5"

Isso define tipos (int, float) e tamanhos.

3
Encontre a ESTRUTURA DE DADOS
  • Vetor: "armazene em uma matriz unidimensional", "vetor", "sequência"
  • Matriz: "matriz bidimensional", "matriz quadrada", "linhas e colunas"
  • Variável simples: "um número", "um valor"
4
Identifique a ESTRUTURA DE REPETIÇÃO
  • Quantidade fixa: "10 números" → for(i=0; i<10; i++)
  • Até condição: "até digitar zero" → while(num != 0)
  • Percorrer matriz: → Dois for aninhados
5
Extraia a FÓRMULA ou REGRA

Ex: "média" → soma/N, "25%" → valor * 1.25, "primo" → verificar divisores

6
Verifique o FORMATO DE SAÍDA

Ex: "com duas casas decimais" → %.2f, "em sequência" → "%d "

📝 Exemplo Completo: Do Enunciado ao Código

"Escreva um programa que leia 10 valores correspondentes a temperaturas na escala Celsius, os guarde em uma matriz unidimensional (vetor) e imprima a maior temperatura, a menor temperatura e a temperatura média."

(Lista 6, Exercício 5)

Passo a passo da interpretação:

Passo Pergunta Resposta
1 Verbos de ação? LEIA, GUARDE, IMPRIMA
2 Dados? 10 temperaturas (Celsius) → float
3 Estrutura? "matriz unidimensional (vetor)" → float temp[10];
4 Repetição? 10 valores fixos → for(i=0; i<10; i++)
5 Fórmulas? Maior: comparação, Menor: comparação, Média: soma/10
6 Saída? "maior", "menor", "média" → 3 printf com %.2f

Código resultante:

#include <stdio.h>

int main() {
    float temp[10];
    float soma = 0, maior, menor, media;
    int i;
    
    // 📥 ENTRADA: leitura das temperaturas
    for(i = 0; i < 10; i++) {
        scanf("%f", &temp[i]);
        soma += temp[i];
    }
    
    // ⚙️ PROCESSAMENTO: encontrar maior e menor
    maior = temp[0];
    menor = temp[0];
    for(i = 1; i < 10; i++) {
        if(temp[i] > maior) maior = temp[i];
        if(temp[i] < menor) menor = temp[i];
    }
    media = soma / 10.0;
    
    // 📤 SAÍDA: imprimir resultados
    printf("Maior temperatura: %.2f\n", maior);
    printf("Menor temperatura: %.2f\n", menor);
    printf("Temperatura media: %.2f\n", media);
    
    return 0;
}

💡 5. Dicas Finais para Não se Perder

✅ Faça um ESBOÇO antes de codar:

Escreva em português (ou em comentários) o que cada parte do programa vai fazer. Exemplo:

// 1. Declarar vetor de 10 floats
// 2. Ler 10 valores com for + scanf
// 3. Encontrar maior e menor
// 4. Calcular média
// 5. Imprimir resultados

✅ Use o EXEMPLO do enunciado:

Se o enunciado mostra um exemplo de entrada e saída, use-o para testar seu raciocínio. Faça as contas manualmente com o exemplo para entender a lógica antes de programar.

⚠️ Cuidado com "pegadinhas":

  • "O zero digitado não deve ser considerado" → não incluir no cálculo
  • "Considere zero como positivo" → usar >= 0
  • "Utilize estrutura de repetição" → obrigatório usar for/while
  • "O programa deve testar qual é o menor" → fazer if antes

🔍 Lembre-se: Todo enunciado tem as 3 respostas escondidas:
📥 ENTRADA · ⚙️ PROCESSAMENTO · 📤 SAÍDA
Encontre-as e você terá o mapa completo do programa! 🚀