🧩 Exercícios: Estruturas de Repetição: while e do-while
Spec Sistemas Com C • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 06.1 — Contagem Progressiva e Regressiva com Laço while
Contexto: Contagem Progressiva e Regressiva com Laço while no contexto de Estruturas de Repetição: while e do-while.
Requisitos de Execução:
- Imprimir contagem de 1 a 10 e depois de 10 até 0.
Resultado Esperado
Contagem impressa no console com terminação no valor zero.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_1_SeuNome - Envie na tarefa:
Atividade Cap 06 - Estruturas de Repetição: while e do-while
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
int main(void) {
int i = 1;
while (i <= 5) {
printf("Tick %d\n", i);
i++;
}
return 0;
}
🔍 Nível 2: Prática
Problema 06.2 — Validação de Entrada do Usuário com Laço do-while
Contexto: Validação de Entrada do Usuário com Laço do-while no contexto de Estruturas de Repetição: while e do-while.
Requisitos de Execução:
- Repetir solicitação de nota até que o valor digitado esteja no intervalo válido de [0.0, 10.0].
Resultado Esperado
Nota válida aceita após repetição controlada por do-while.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_2_SeuNome - Envie na tarefa:
Atividade Cap 06 - Estruturas de Repetição: while e do-while
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
int main(void) {
float nota = -1.0f;
int tentativas = 0;
do {
tentativas++;
if (tentativas == 3) nota = 8.5f; // Simula entrada válida
} while (nota < 0.0f || nota > 10.0f);
printf("Nota validada: %.1f\n", nota);
return 0;
}
⚡ Nível 3: Integração
Problema 06.3 — Algoritmo de Euclides para Máximo Divisor Comum (MDC)
Contexto: Algoritmo de Euclides para Máximo Divisor Comum (MDC) no contexto de Estruturas de Repetição: while e do-while.
Requisitos de Execução:
- Calcular o MDC entre dois números inteiros positivos utilizando subtrações/restos sucessivos em laço while.
Resultado Esperado
MDC(48, 18) = 6 calculado com sucesso.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_3_SeuNome - Envie na tarefa:
Atividade Cap 06 - Estruturas de Repetição: while e do-while
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
int mdc(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int main(void) {
printf("MDC(48, 18) = %d\n", mdc(48, 18));
return 0;
}
🏆 Nível 4: Desafio Corporativo
Problema 06.4 — Conversão de Base Numérica (Decimal para Binário) com Laço while
Contexto: Conversão de Base Numérica (Decimal para Binário) com Laço while no contexto de Estruturas de Repetição: while e do-while.
Requisitos de Execução:
- Converter número inteiro decimal para sua representação em binário de 32 bits.
Resultado Esperado
Valor decimal 25 convertido para '11001' em binário.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_4_SeuNome - Envie na tarefa:
Atividade Cap 06 - Estruturas de Repetição: while e do-while
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
void decimal_para_binario(unsigned int n) {
char bits[33];
int idx = 31;
bits[32] = '\0';
if (n == 0) { puts("0"); return; }
while (n > 0 && idx >= 0) {
bits[idx--] = (n % 2) ? '1' : '0';
n /= 2;
}
printf("Binario: %s\n", &bits[idx + 1]);
}
int main(void) {
decimal_para_binario(25);
return 0;
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |