# Roteiro de lógica de programação — VisuAlg Web

Material do VisuAlg Web, projeto independente de Florencio Dri.
Fonte e versão atual: https://visualg.com.br/professores/

## Como conduzir
Use os tempos como sugestão, ajustando ao ritmo da turma. Primeiro, peça uma previsão e uma solução própria; depois, execute e compare com a solução comentada. Trabalhe em duplas com os papéis de quem escreve e de quem confere, alternando a cada atividade. O editor e as aulas podem ser usados sem contratar o tutor. Acesso ao Visual Gusto segue as condições e os limites apresentados na plataforma.

## Calcular a média de duas notas (15 min sugeridos)
Crie um algoritmo que leia duas notas de um aluno e mostre a média final.
Entradas: 6, 8.
Resultado: A média final é: 7
Limite: Repita com 0 e 10: a média deve ser 5.
Discussão: Por que somar as notas antes de dividir? Preveja o resultado sem os parênteses.
Editor: https://visualg.com.br/?entry=seo&lead_source=seo_exercicios_portugol_resolvidos_visualg&starter=aprender%2Fexercicios-portugol-resolvidos-visualg&learning_goal=praticar_exercicios_portugol&language=visualg&exercise=4&starter_prompt_id=seo_exercicio_04_visualg&starter_code_id=visualg_exercicio_04_media_duas_notas
Solução: https://visualg.com.br/aprender/exercicios-portugol-resolvidos-visualg/#exercicio-4

```portugol
algoritmo "MediaDuasNotas"
var
   nota1, nota2, media: real
inicio
   escreva("Digite a primeira nota: ")
   leia(nota1)

   escreva("Digite a segunda nota: ")
   leia(nota2)

   media <- (nota1 + nota2) / 2

   escreval("A média final é: ", media)
fimalgoritmo
```

## Verificar se um número é par ou ímpar (15 min sugeridos)
Crie um algoritmo que leia um número inteiro e diga se ele é par ou ímpar.
Entradas: 8.
Resultado: O número é par.
Limite: Teste 7, 0 e -2: ímpar, par e par.
Discussão: Explique o que o resto da divisão por 2 revela sobre o número.
Editor: https://visualg.com.br/?entry=seo&lead_source=seo_exercicios_portugol_resolvidos_visualg&starter=aprender%2Fexercicios-portugol-resolvidos-visualg&learning_goal=praticar_exercicios_portugol&language=visualg&exercise=7&starter_prompt_id=seo_exercicio_07_visualg&starter_code_id=visualg_exercicio_07_par_ou_impar
Solução: https://visualg.com.br/aprender/exercicios-portugol-resolvidos-visualg/#exercicio-7

```portugol
algoritmo "ParOuImpar"
var
   numero: inteiro
inicio
   escreva("Digite um número inteiro: ")
   leia(numero)

   se numero mod 2 = 0 entao
      escreval("O número é par.")
   senao
      escreval("O número é ímpar.")
   fimse
fimalgoritmo
```

## Contar de 1 até 10 (20 min sugeridos)
Crie um algoritmo que mostre os números de 1 até 10 usando repetição.
Entradas: nenhuma.
Resultado: Números de 1 a 10, um por linha.
Limite: Troque o limite final por 1: deve haver uma única execução.
Discussão: Registre os três primeiros valores do contador e justifique quando o laço termina.
Editor: https://visualg.com.br/?entry=seo&lead_source=seo_exercicios_portugol_resolvidos_visualg&starter=aprender%2Fexercicios-portugol-resolvidos-visualg&learning_goal=praticar_exercicios_portugol&language=visualg&exercise=13&starter_prompt_id=seo_exercicio_13_visualg&starter_code_id=visualg_exercicio_13_contar_ate_dez
Solução: https://visualg.com.br/aprender/exercicios-portugol-resolvidos-visualg/#exercicio-13

```portugol
algoritmo "ContarAteDez"
var
   i: inteiro
inicio
   para i de 1 ate 10 faca
      escreval(i)
   fimpara
fimalgoritmo
```

## Preencher e mostrar um vetor (25 min sugeridos)
Crie um algoritmo que leia 5 números, guarde em um vetor e depois mostre todos os valores digitados.
Entradas: 4, -1, 4, 0, 9.
Resultado: Posições 1 a 5 com os valores 4, -1, 4, 0 e 9, nessa ordem.
Limite: Repita com cinco zeros. Zero também é um valor armazenado.
Discussão: O que muda ao trocar apenas a ordem de leitura? E ao percorrer o vetor de trás para a frente?
Editor: https://visualg.com.br/?entry=seo&lead_source=seo_exercicios_portugol_resolvidos_visualg&starter=aprender%2Fexercicios-portugol-resolvidos-visualg&learning_goal=praticar_exercicios_portugol&language=visualg&exercise=25&starter_prompt_id=seo_exercicio_25_visualg&starter_code_id=visualg_exercicio_25_vetor_basico
Solução: https://visualg.com.br/aprender/exercicios-portugol-resolvidos-visualg/#exercicio-25

```portugol
algoritmo "VetorBasico"
var
   numeros: vetor[1..5] de inteiro
   i: inteiro
inicio
   para i de 1 ate 5 faca
      escreva("Digite o valor da posição ", i, ": ")
      leia(numeros[i])
   fimpara

   escreval("Valores digitados:")

   para i de 1 ate 5 faca
      escreval("Posição ", i, ": ", numeros[i])
   fimpara
fimalgoritmo
```

## Depuração e avaliação
Use https://visualg.com.br/aprender/visualg/depuracao-debug/ para acompanhar o acumulador. Peça uma tabela com iteração, contador e soma. Avalie previsão, solução, teste de limite e explicação da diferença entre saída observada e esperada. Um programa sem erro de sintaxe ainda pode calcular um resultado errado.

## Uso e compartilhamento
Compartilhe o link deste roteiro com a turma. O download permite consultar enunciados e código fora do site; a execução online e o tutor precisam do ambiente da plataforma. Consulte https://visualg.com.br/licencas/ para as licenças dos componentes. Dúvidas e correções: dri@visualg.com.br.
