Nesta lista de exercícios, você praticará o uso de estruturas de repetição com teste no início (while / enquanto) e repetição com variável de controle contadora (for / para).


🗺️ Mapa de Progressão Pedagógica

graph LR
    A["Nível 1: Fundamentos\n(crescente, senha_fixa)"] --> B["Nível 2: Prática\n(tabuada, media_idades)"]
    B --> C["Nível 3: Integração\n(soma_impares, fatorial)"]
    C --> D["Nível 4: Desafio\n(experiencias)"]
    
    style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
    style B fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
    style C fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style D fill:#fce4ec,stroke:#e91e63,stroke-width:2px

🟢 Nível 1 — Fundamentos

Exercício 1: Problema “crescente”

Enunciado: Leia uma quantidade indeterminada de duplas de valores inteiros $X$ e $Y$. Para cada dupla, exiba “CRESCENTE” se $X$ for menor que $Y$, ou “DECRESCENTE” caso contrário. O programa deve finalizar quando forem digitados dois valores iguais.

Resultado Esperado

flowchart TD
    A["Ler X e Y"] --> B{"X == Y ?"}
    B -- "Sim" --> C(["Fim do Programa"])
    B -- "Não" --> D{"X < Y ?"}
    D -- "Sim" --> E["Exibir CRESCENTE!"]
    D -- "Não" --> F["Exibir DECRESCENTE!"]
    E & F --> G["Ler novos X e Y"]
    G --> B

Exemplo de Execução:

Digite dois números:
5
4
DECRESCENTE!
Digite outros dois números:
3
8
CRESCENTE!
Digite outros dois números:
2
2

📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. Salve os arquivos DO CÓDIGO no formato: Atividade_07_Repetitivas_Crescente_SeuNome
  2. Envie os arquivos no Microsoft Teams na tarefa: Atividade Cap 07 - Estruturas Repetitivas
🔑 Gabarito de Código (C, Java e Python)

Solução em C:

#include <stdio.h>

int main() {
    int x, y;
    printf("Digite dois números:\n");
    scanf("%d", &x);
    scanf("%d", &y);

    while (x != y) {
        if (x < y) {
            printf("CRESCENTE!\n");
        } else {
            printf("DECRESCENTE!\n");
        }
        printf("Digite outros dois números:\n");
        scanf("%d", &x);
        scanf("%d", &y);
    }
    return 0;
}

Solução em Java:

import java.util.Scanner;

public class Crescente {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Digite dois números:");
        int x = sc.nextInt();
        int y = sc.nextInt();

        while (x != y) {
            if (x < y) {
                System.out.println("CRESCENTE!");
            } else {
                System.out.println("DECRESCENTE!");
            }
            System.out.println("Digite outros dois números:");
            x = sc.nextInt();
            y = sc.nextInt();
        }
        sc.close();
    }
}

Solução em Python:

print("Digite dois números:")
x = int(input())
y = int(input())

while x != y:
    if x < y:
        print("CRESCENTE!")
    else:
        print("DECRESCENTE!")
    print("Digite outros dois números:")
    x = int(input())
    y = int(input())

🟡 Nível 2 — Prática

Exercício 2: Problema “tabuada”

Enunciado: Ler um número inteiro $N$ ($1 \le N \le 10$). A seguir, mostrar a tabuada de $N$ de 1 a 10.

Resultado Esperado

Exemplo de Execução:

Deseja a tabuada para qual valor? 4
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
4 x 10 = 40

📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. Salve os arquivos DO CÓDIGO no formato: Atividade_07_Repetitivas_Tabuada_SeuNome
  2. Envie os arquivos no Microsoft Teams na tarefa: Atividade Cap 07 - Estruturas Repetitivas
🔑 Gabarito de Código (C, Java e Python)

Solução em C:

#include <stdio.h>

int main() {
    int n, i;
    printf("Deseja a tabuada para qual valor? ");
    scanf("%d", &n);

    for (i = 1; i <= 10; i++) {
        printf("%d x %d = %d\n", n, i, n * i);
    }
    return 0;
}

Solução em Java:

import java.util.Scanner;

public class Tabuada {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Deseja a tabuada para qual valor? ");
        int n = sc.nextInt();

        for (int i = 1; i <= 10; i++) {
            System.out.printf("%d x %d = %d\n", n, i, n * i);
        }
        sc.close();
    }
}

Solução em Python:

n = int(input("Deseja a tabuada para qual valor? "))

for i in range(1, 11):
    print(f"{n} x {i} = {n * i}")

🟠 Nível 3 — Integração

Exercício 3: Problema “soma_impares”

Enunciado: Leia 2 valores inteiros $X$ e $Y$ (em qualquer ordem). A seguir, calcule e mostre a soma dos números ímpares entre eles (sem incluir os próprios $X$ e $Y$).

Resultado Esperado

Exemplo de Execução:

Digite dois numeros:
6
-5
SOMA DOS IMPARES = 5

📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. Salve os arquivos DO CÓDIGO no formato: Atividade_07_Repetitivas_SomaImpares_SeuNome
  2. Envie os arquivos no Microsoft Teams na tarefa: Atividade Cap 07 - Estruturas Repetitivas
🔑 Gabarito de Código (C, Java e Python)

Solução em C:

#include <stdio.h>

int main() {
    int x, y, soma = 0, i, menor, maior;
    printf("Digite dois numeros:\n");
    scanf("%d", &x);
    scanf("%d", &y);

    if (x < y) {
        menor = x;
        maior = y;
    } else {
        menor = y;
        maior = x;
    }

    for (i = menor + 1; i < maior; i++) {
        if (i % 2 != 0) {
            soma += i;
        }
    }

    printf("SOMA DOS IMPARES = %d\n", soma);
    return 0;
}

Solução em Java:

import java.util.Scanner;

public class SomaImpares {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Digite dois numeros:");
        int x = sc.nextInt();
        int y = sc.nextInt();

        int menor = Math.min(x, y);
        int maior = Math.max(x, y);
        int soma = 0;

        for (int i = menor + 1; i < maior; i++) {
            if (i % 2 != 0) {
                soma += i;
            }
        }

        System.out.println("SOMA DOS IMPARES = " + soma);
        sc.close();
    }
}

Solução em Python:

print("Digite dois numeros:")
x = int(input())
y = int(input())

menor = min(x, y)
maior = max(x, y)
soma = 0

for i in range(menor + 1, maior):
    if i % 2 != 0:
        soma += i

print(f"SOMA DOS IMPARES = {soma}")

🔴 Nível 4 — Desafio

Exercício 4: Problema “experiencias”

Enunciado: Maria quer saber a quantidade total de cobaias utilizadas no laboratório e o percentual de cada tipo (C: Coelho, R: Rato, S: Sapo). O programa deve ler a quantidade de casos de teste $N$. Cada caso de teste consiste de uma linha contendo um inteiro (quantidade de cobaias) e um caractere (C, R ou S). Ao final, emitir um relatório completo com os totais e as porcentagens com duas casas decimais.

Resultado Esperado

flowchart TD
    A["Ler N casos"] --> B["Loop N vezes:\nLer Quantidade e Tipo (C, R, S)"]
    B --> C["Acumular totalCobaias,\ntotalCoelhos, totalRatos, totalSapos"]
    C --> D["Calcular Percentuais:\n(tipo / totalCobaias) * 100"]
    D --> E["Exibir Relatório Estatístico"]

Exemplo de Execução:

Quantos casos de teste serao digitados? 5
Quantidade de cobaias: 10
Tipo de cobaia: C
Quantidade de cobaias: 6
Tipo de cobaia: R
Quantidade de cobaias: 15
Tipo de cobaia: S
Quantidade de cobaias: 5
Tipo de cobaias: C
Quantidade de cobaias: 14
Tipo de cobaia: R

RELATORIO FINAL:
Total: 50 cobaias
Total de coelhos: 15
Total de ratos: 20
Total de sapos: 15
Percentual de coelhos: 30.00 %
Percentual de ratos: 40.00 %
Percentual de sapos: 30.00 %

📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. Salve os arquivos DO CÓDIGO no formato: Atividade_07_Repetitivas_Experiencias_SeuNome
  2. Envie os arquivos no Microsoft Teams na tarefa: Atividade Cap 07 - Estruturas Repetitivas
🔑 Gabarito de Código (C, Java e Python)

Solução em C:

#include <stdio.h>

int main() {
    int n, i, qtd, total = 0, coelhos = 0, ratos = 0, sapos = 0;
    char tipo;

    printf("Quantos casos de teste serao digitados? ");
    scanf("%d", &n);

    for (i = 0; i < n; i++) {
        printf("Quantidade de cobaias: ");
        scanf("%d", &qtd);
        printf("Tipo de cobaia: ");
        scanf(" %c", &tipo);

        total += qtd;
        if (tipo == 'C' || tipo == 'c') {
            coelhos += qtd;
        } else if (tipo == 'R' || tipo == 'r') {
            ratos += qtd;
        } else if (tipo == 'S' || tipo == 's') {
            sapos += qtd;
        }
    }

    printf("\nRELATORIO FINAL:\n");
    printf("Total: %d cobaias\n", total);
    printf("Total de coelhos: %d\n", coelhos);
    printf("Total de ratos: %d\n", ratos);
    printf("Total de sapos: %d\n", sapos);
    printf("Percentual de coelhos: %.2lf %%\n", (double)coelhos / total * 100.0);
    printf("Percentual de ratos: %.2lf %%\n", (double)ratos / total * 100.0);
    printf("Percentual de sapos: %.2lf %%\n", (double)sapos / total * 100.0);

    return 0;
}

Solução em Java:

import java.util.Locale;
import java.util.Scanner;

public class Experiencias {
    public static void main(String[] args) {
        Locale.setDefault(Locale.US);
        Scanner sc = new Scanner(System.in);

        System.out.print("Quantos casos de teste serao digitados? ");
        int n = sc.nextInt();

        int total = 0, coelhos = 0, ratos = 0, sapos = 0;

        for (int i = 0; i < n; i++) {
            System.out.print("Quantidade de cobaias: ");
            int qtd = sc.nextInt();
            System.out.print("Tipo de cobaia: ");
            char tipo = sc.next().toUpperCase().charAt(0);

            total += qtd;
            if (tipo == 'C') coelhos += qtd;
            else if (tipo == 'R') ratos += qtd;
            else if (tipo == 'S') sapos += qtd;
        }

        System.out.println("\nRELATORIO FINAL:");
        System.out.printf("Total: %d cobaias\n", total);
        System.out.printf("Total de coelhos: %d\n", coelhos);
        System.out.printf("Total de ratos: %d\n", ratos);
        System.out.printf("Total de sapos: %d\n", sapos);
        System.out.printf("Percentual de coelhos: %.2f %%\n", (double) coelhos / total * 100.0);
        System.out.printf("Percentual de ratos: %.2f %%\n", (double) ratos / total * 100.0);
        System.out.printf("Percentual de sapos: %.2f %%\n", (double) sapos / total * 100.0);

        sc.close();
    }
}

Solução em Python:

n = int(input("Quantos casos de teste serao digitados? "))
total, coelhos, ratos, sapos = 0, 0, 0, 0

for _ in range(n):
    qtd = int(input("Quantidade de cobaias: "))
    tipo = input("Tipo de cobaia: ").strip().upper()

    total += qtd
    if tipo == 'C':
        coelhos += qtd
    elif tipo == 'R':
        ratos += qtd
    elif tipo == 'S':
        sapos += qtd

print("\nRELATORIO FINAL:")
print(f"Total: {total} cobaias")
print(f"Total de coelhos: {coelhos}")
print(f"Total de ratos: {ratos}")
print(f"Total de sapos: {sapos}")
print(f"Percentual de coelhos: {(coelhos / total) * 100.0:.2f} %")
print(f"Percentual de ratos: {(ratos / total) * 100.0:.2f} %")
print(f"Percentual de sapos: {(sapos / total) * 100.0:.2f} %")