Pular para o conteúdo

Lista 005 - Extra

Em todos os exercícios desta lista, quando houver leitura de dados com leia, mantenha um escreva antes de cada entrada.

Nesta versão extra, você deve completar o código que já começou pronto, usar o fluxograma como guia para entender o caminho do programa e conferir a tabela de rastreio para ver o valor de cada variável a cada volta do laço.

  1. Leia o enunciado e veja o que já está pronto no código.
  2. Complete apenas as partes faltantes.
  3. Use o fluxograma para entender o caminho que o programa percorre.
  4. Confira a tabela de rastreio para ver o valor das variáveis a cada repetição.
  5. Nos exercícios do nível prata, complete o acumulador antes de calcular o resultado final.
  6. Nos exercícios do nível ouro, complete as partes do laço decrescente e as condições do se.

🥉 Nível Bronze: Primeiras Repetições com enquanto

Seção intitulada “🥉 Nível Bronze: Primeiras Repetições com enquanto”

Complete o programa abaixo inicializando o contador e escrevendo a condição do enquanto.

programa {
funcao inicio() {
inteiro exercicio
// Complete a inicialização do contador
exercicio =
// Complete a condição: o laço repete enquanto o exercício for <= 5
enquanto ( ) {
escreva("Exercício " + exercicio + " concluído.")
exercicio = exercicio + 1
}
}
}

Complete o programa abaixo inicializando o contador em 10 e escrevendo a condição do enquanto.

programa {
funcao inicio() {
inteiro contador
// Complete a inicialização: a contagem começa em 10
contador =
// Complete a condição: o laço repete enquanto o contador for >= 1
enquanto ( ) {
escreva(contador)
contador = contador - 1
}
}
}

Complete o programa abaixo com a condição do enquanto.

programa {
funcao inicio() {
inteiro vezes
inteiro contador
escreva("Quantas vezes o narrador vai gritar? ")
leia(vezes)
contador = 1
// Complete a condição: repete enquanto o contador não passou do limite
enquanto ( ) {
escreva("GOL!")
contador = contador + 1
}
}
}

Complete o programa abaixo com a condição do enquanto.

programa {
funcao inicio() {
inteiro total
inteiro jogador
escreva("Quantos jogadores vão entrar em campo? ")
leia(total)
jogador = 1
// Complete a condição: repete enquanto ainda há jogadores para entrar
enquanto ( ) {
escreva("Jogador " + jogador + " entrou em campo.")
jogador = jogador + 1
}
}
}

🥈 Nível Prata: Contando com para e lendo dados

Seção intitulada “🥈 Nível Prata: Contando com para e lendo dados”

Complete o programa abaixo preenchendo a condição e a atualização do para.

programa {
funcao inicio() {
cadeia nome
inteiro total_chutes
escreva("Digite o nome do jogador: ")
leia(nome)
escreva("Quantos chutes ele vai treinar? ")
leia(total_chutes)
// Complete a condição (i <= ?) e a atualização (i?)
para (inteiro i = 1; ; ) {
escreva("Chute " + i + " de " + nome + " concluído.")
}
}
}

Complete o programa abaixo com a mensagem de confirmação de cada jogador.

programa {
funcao inicio() {
inteiro total
cadeia nome
escreva("Quantos jogadores serão convocados? ")
leia(total)
para (inteiro i = 1; i <= total; i++) {
escreva("Nome do jogador " + i + ": ")
leia(nome)
// Complete a mensagem usando a variável nome
escreva( )
}
}
}

Complete o programa abaixo com a linha que acumula os gols a cada rodada.

programa {
funcao inicio() {
inteiro rodadas
inteiro gols
inteiro total_gols
escreva("Quantas rodadas foram disputadas? ")
leia(rodadas)
total_gols = 0
para (inteiro i = 1; i <= rodadas; i++) {
escreva("Gols do Brasil na rodada " + i + ": ")
leia(gols)
// Complete a linha que soma gols ao total
total_gols =
}
escreva("Total de gols do Brasil na fase: " + total_gols)
}
}

Complete o programa abaixo com a acumulação de passes e o cálculo da média.

programa {
funcao inicio() {
inteiro jogos
inteiro passes
inteiro total_passes
inteiro media
escreva("Quantos jogos foram analisados? ")
leia(jogos)
total_passes = 0
para (inteiro i = 1; i <= jogos; i++) {
escreva("Passes certos no jogo " + i + ": ")
leia(passes)
// Complete a linha que soma passes ao total
total_passes =
}
// Complete o cálculo: divida o total pelo número de jogos
media =
escreva("Média de passes por jogo: " + media)
}
}

🥇 Nível Ouro: Contadores variados com decisões dentro do laço

Seção intitulada “🥇 Nível Ouro: Contadores variados com decisões dentro do laço”

Complete o programa abaixo com a atualização decrescente (i--) e a condição do aviso do último minuto.

programa {
funcao inicio() {
inteiro minutos
escreva("Quantos minutos faltam? ")
leia(minutos)
// O para começa em minutos e vai até 1
// Complete a terceira parte: use i-- para decrementar
para (inteiro i = minutos; i >= 1; ) {
escreva("Faltam " + i + " minutos.")
// Complete a condição: quando é o último minuto?
se ( ) {
escreva("ATENÇÃO: último minuto!")
}
}
escreva("Apito final! Fim de jogo!")
}
}

Complete o programa abaixo com a condição que decide se a cobrança foi gol ou defendida.

programa {
funcao inicio() {
inteiro resultado
inteiro total_gols
total_gols = 0
// O para vai de 5 até 1 (as 5 cobranças, de trás para frente)
para (inteiro i = 5; i >= 1; i--) {
escreva("Cobrança " + i + ":")
escreva("Gol (1) ou defendido (0)? ")
leia(resultado)
// Complete a condição: quando resultado é 1, foi gol
se ( ) {
escreva("GOL!")
total_gols = total_gols + 1
} senao {
escreva("Defendido!")
}
}
escreva("Total de gols convertidos: " + total_gols)
}
}

Complete o programa abaixo com a linha que dobra a torcida e a condição do estádio lotado.

programa {
funcao inicio() {
inteiro torcedores
inteiro atual
escreva("Quantos torcedores no início? ")
leia(torcedores)
atual = torcedores
// O para percorre as 4 fases eliminatórias
para (inteiro i = 1; i <= 4; i++) {
// Complete a linha que dobra o valor de atual
atual =
se (i == 1) {
escreva("Oitavas de final: " + atual + " torcedores.")
} senao se (i == 2) {
escreva("Quartas de final: " + atual + " torcedores.")
} senao se (i == 3) {
escreva("Semifinal: " + atual + " torcedores.")
} senao {
escreva("Final: " + atual + " torcedores.")
}
// Complete a condição: mais de 50000 torcedores?
se ( ) {
escreva("O estádio está lotado!")
}
}
}
}

Complete o programa abaixo com a linha que dobra a velocidade e a linha que para o laço.

Nesta versão, usamos uma variável logico chamada continuar para controlar quando o laço deve parar, tornando a condição de saída explícita e fácil de identificar.

programa {
funcao inicio() {
inteiro limite
inteiro vel
logico continuar
escreva("Qual é a velocidade máxima do jogador? ")
leia(limite)
vel = 1
continuar = verdadeiro
enquanto (continuar) {
escreva("Sessão em " + vel + " km/h.")
se (vel >= limite) {
escreva("Velocidade máxima atingida!")
// Complete a linha para parar o laço
continuar =
} senao {
// Complete a linha que dobra a velocidade
vel =
}
}
}
}