Introdução à Programação para Não Informáticos
O objectivo principal desta ficha é familiarizar o aluno com a programação de jogos e problemas simples.
Pretende-se aferir também os conhecimentos adquiridos até ao momento pelo que os alunos deverão resolvê-la em grupo na aula e enviá-la ao docente até ao fim da mesma.
Exercícios: |
|
Quantas iterações/repetições são necessárias para atingir o valor 1 com o seguinte algoritmo:
Há 100 portas que estão inicialmente fechadas.
Vais fazer 100 passagens pelas 100 portas.
Na primeira passagem, visitas todas as portas e invertes o seu estado: se está aberta vais fechá-la e se estiver fechada vais abri-la.
Na segunda passagem, vais visitar as portas de 2 em 2 (portas 2, 4, 6, ...) e vais invertê-las.
Na terceira passagem, vais visitar as portas de 3 em 3 (portas 3, 6, 9, ...) e vais invertê-las.
Vais continuar o processo até que na última passagem, a centésima, invertes apenas a última porta.
No fim, responde às questões: Em que estado ficaram as portas? Quais estão abertas e quais estão fechadas?
Uma Poliespiral é uma espiral composta por múltiplos segmentos de linha, em que cada segmento é mais ou menos comprido que o anterior por um determinado valor. Cada segmento também muda de direção por um determinado valor angular.
Anima uma série de espirais, desenhando uma espiral completa, limpando o monitor após o seu desenho e desenhando a seguinte. A animação poderá terminar quando obtiveres um círculo ou continuar indefinidamente.
Baseia-te no seguinte algoritmo para a tua implementação:
set incr to 0.0 // animation loop WHILE true incr = (incr + 0.05) MOD 360 xi = 0 yi = 0 length = 5 angle = incr // spiral loop FOR 1 TO 150 drawline change direction by angle length = length + 3 angle = (angle + incr) MOD 360 ENDFOR
Numa segunda versão, adiciona umas teclas de controlo para aumentar/diminuir o incremento do ângulo e do segmento de reta.
Há uma cidade muito organizada que decidiu atribuir um número a cada um dos seus departamentos:
Cada departamento pode ser um número entre 1 e 7 (inclusive).
O número de cada departamento deve ser único (diferente dos outros) e a soma dos 3 deverá ser 12.
O chefe da polícia não gosta de números ímpares e quer um número par para o seu departamento.
Cria um programa que calcula todas as combinações possíveis de números.