Computação 2ª série Atividade
Modelos computacionais: simulação e previsão
Atividade com 11 questões sobre modelos computacionais: crescimento logístico, epidemias, método de Monte Carlo, Jogo da Vida, passo de tempo em simulações, refinamento, reúso de funções e validação.
- 11 questões
- cerca de 50 minutos
Computação, 2ª série: Modelos computacionais: simulação e previsão
A Defesa Civil de uma cidade usa um programa que, a partir da chuva prevista e do relevo, estima quais ruas podem alagar nas próximas horas. Esse programa é um modelo computacional. Sobre modelos desse tipo, é correto afirmar que
- são o mesmo que uma planilha de dados, sem nenhuma regra ou equação que relacione as variáveis.
- são representações simplificadas da realidade: permitem prever, mas precisam ser comparadas com dados reais.
- só podem ser usados depois que o fenômeno já aconteceu, para descrever o que foi observado.
- reproduzem exatamente todos os detalhes do fenômeno real e, por isso, suas previsões nunca falham, qualquer que seja a situação.
- dispensam dados do mundo real, pois o computador calcula o futuro apenas a partir do código.
Um modelo simples de crescimento de uma população de peixes em um lago, que suporta no máximo 1 000 peixes, usa a regra:
P ← 100
repita 3 vezes
P ← P + 0,5 · P · (1 − P / 1000)
fim
escreva PO valor escrito, arredondado, é
- 145
- 338
- 800
- 1 000
- 289
Em um modelo simplificado de epidemia, a população de 1 000 pessoas é dividida em suscetíveis (S), infectados (I) e recuperados (R). A cada dia, surgem β · S · I / 1 000 novos infectados e se recuperam γ · I infectados, com β = 0,3 e γ = 0,1. No início, S = 990, I = 10 e R = 0. Depois de um dia, o número de infectados é de aproximadamente
- 3
- 13
- 297
- 9
- 12
Para estimar o valor de π, um programa sorteia 1 000 pontos ao acaso dentro de um quadrado de lado 1 e conta quantos caem dentro de um quarto de círculo de raio 1 desenhado nesse quadrado. A razão entre o número de pontos dentro do quarto de círculo e o total se aproxima de π/4. Se 785 pontos caíram dentro, a estimativa de π é
- 3,14
- 7,85
- 3,00
- 1,57
- 0,785
Uma equipe quer construir um programa que simule o trânsito em um cruzamento com semáforo, para testar tempos diferentes de sinal verde. A sequência que representa um bom refinamento sucessivo, do mais abstrato ao mais concreto, é
- escrever o código final → definir o objetivo → escolher as variáveis → testar apenas no dia da apresentação.
- implementar e testar → descrever as regras → escolher as variáveis → definir o objetivo, quando o programa estiver pronto.
- testar o semáforo real da rua → copiar o código de outro projeto sem adaptação → apresentar o resultado.
- definir o objetivo → escolher as variáveis → descrever as regras em pseudocódigo → implementar e testar.
- escolher a linguagem de programação → escrever todo o código de uma vez → definir as variáveis que aparecerem no caminho.
No programa de simulação do trânsito, a equipe escreveu uma função passo(fila, carros_chegando, carros_saindo), que atualiza o tamanho da fila de carros a cada segundo. Depois, precisaram simular também a fila da cantina da escola e a fila de um posto de saúde. A decisão de projeto mais adequada é
- criar três programas totalmente separados, sem nenhuma parte em comum, para evitar confusão.
- reutilizar a mesma função passo, mudando apenas os valores de chegada e de saída de cada situação.
- desistir de simular as filas novas, pois uma função só pode ser usada no problema para o qual foi criada.
- apagar a função passo e escrever todo o cálculo diretamente no programa principal, três vezes.
- escrever uma função nova, com outro nome e o mesmo código, para cada fila simulada no programa.
No "Jogo da Vida", um modelo computacional criado pelo matemático John Conway, cada célula de uma malha está viva ou morta e, a cada geração, segue as regras: uma célula viva com 2 ou 3 vizinhas vivas continua viva; com menos de 2 ou mais de 3, morre; uma célula morta com exatamente 3 vizinhas vivas nasce. Consideram-se vizinhas as 8 células ao redor. A figura mostra uma geração.
Na geração seguinte, as células vivas formarão
- a mesma linha horizontal de três células, sem nenhuma mudança.
- uma linha vertical de três células vivas.
- um quadrado de quatro células vivas no centro da malha.
- apenas a célula central, pois as das pontas têm só uma vizinha.
- nenhuma célula viva, pois todas as células morrem de isolamento.
Os resultados de um modelo de previsão de enchentes foram comparados com as medições reais de nível de um rio durante uma semana, e as previsões ficaram sistematicamente abaixo do nível observado. A atitude mais adequada da equipe que desenvolveu o modelo é
- concluir que as medições do rio estão erradas, pois o computador não comete erros de cálculo.
- alterar os dados medidos do rio para que fiquem iguais às previsões do modelo.
- abandonar o uso de computadores na previsão de enchentes e voltar a usar apenas a intuição.
- investigar que hipóteses ou dados causam a diferença, ajustar o modelo e testá-lo de novo.
- publicar as previsões assim mesmo, pois qualquer modelo é melhor do que nenhum.
Para simular a queda de um objeto (g = 10 m/s2), um programa atualiza a posição e a velocidade em passos de tempo Δt:
s ← 0
v ← 0
repita 3 vezes
s ← s + v · Δt
v ← v + 10 · Δt
fim
escreva sCom Δt = 1 s, simulando 3 s de queda, o programa escreve s = 30 m, enquanto a física prevê 45 m (s = 10 · 32/2). Para obter um resultado mais próximo do valor correto no mesmo intervalo de 3 s, deve-se
- usar um Δt menor, como 0,5 s, repetindo o laço 6 vezes, o que leva a 37,5 m.
- repetir o laço 3 vezes com Δt = 1 s em outro computador, mais rápido.
- manter Δt = 1 s, pois o erro de 15 m é causado apenas pelo arredondamento do computador.
- usar um Δt maior, como 3 s, repetindo o laço 1 vez, o que leva a 45 m.
- trocar a ordem das duas linhas do laço, o que sempre leva exatamente a 45 m.
Um modelo computacional só tem utilidade científica se reproduzir exatamente todos os detalhes do fenômeno real.
( ) Verdadeiro ( ) Falso
A cantina da escola quer reduzir o tempo de fila no intervalo. Você vai projetar um modelo computacional simples para simular essa fila.
a) Indique três variáveis (ou parâmetros) que o modelo deve ter e explique o que cada uma representa.
b) Escreva, em pseudocódigo, um laço que simule a fila minuto a minuto durante os 20 minutos do intervalo.
c) Explique como a equipe poderia verificar se o modelo representa bem a fila real e como ele poderia ser usado para testar uma mudança, como abrir um segundo caixa.
ProvaPiloto · provapiloto.com.br
Gabarito comentado
Já usou com a sua turma?
Conte com um toque. Isso ajuda outros professores a escolher.
Usei em sala Entre na sua conta para contar.
Para continuar o assunto

Desenvolvimento de software: requisitos, testes e qualidade
Prova 11 questões 60 min

Algoritmos em pseudocódigo: decisão, repetição e reúso
Atividade 11 questões 50 min

Repetições dentro de repetições: laços aninhados
Atividade 9 questões 50 min

Robô na trilha: comandos, condições e decomposição
Prova 8 questões 45 min