Definição de problemas e algoritmos
-
Um robô está na posição da seta. Existe um tesouro escondido em um caixote amarelo, mas no outro há uma armadilha que o deixa preso para sempre. Para saber em que caixote está, pode-se verificar a chave marrom e ler o valor de X. Se X = -1, então o tesouro está em A, mas se X = 1, então o tesouro está em B. Escreva um algoritmo para pegar o tesouro. O robô só entende os seguintes comandos
- virar à direita
- virar à esquerda
- abrir um caixote
- andar N quadrados
- ler um valor e
- pegar o tesouro
a) Identifique todas as partes relacionadas (problema, entrada, saída etc.).
b) Concorde ou discorde: um algoritmo que abre um caixote antes de ler a chave está bem definido.
-
Escreva um algoritmo para somar dois números decimais inteiros usando somente a tabuada.
-
Execute:
-
Pegue papel em branco e lápis;
-
Desenhe um semicírculo na esquerda;
-
Desenhe outro semicírculo na direita;
-
Desenhe um círculo menor em baixo de de cada semicírculo;
-
Desenhe um semicírculo maior sobre os semicírculos;
-
Pinte os semicírculos pequenos de verde;
-
Pinte o semicírculo grande de laranja;
a) Que figura você obteve? O procedimento acima é um algoritmo? Explique.
b) Reescreva o procedimento como um algoritmo bem definido que obtenha o desenho disponível aqui. Atente-se para tamanho, ordem etc.
-
-
Ana dá uma volta no percurso de corrida do Lago a cada 15 min. Suponha que um amigo comece a correr X minutos mais tarde em um ritmo de Y min por volta. Dados X e Y, Ana e seu amigo irão se encontrar no início da volta antes de uma hora? Quando? Escreva um algoritmo para o problema. Lembre-se de sempre especificar claramente todas as partes relacionadas (problema, entrada, saída etc.)!
-
Em um hospital, é preciso escalar um médico para plantão em cada dia do mês. Sabendo-se que
medico
é um vetor de dimensão $N$, onde $N$ é o número de médicos emedico[i]
é a matrícula do $i$-ésimo médico, queremos construir um novo vetorplantao
com 30 posições, ondeplantao[j]
contém a matrícula do médico escalado para o dia $j$. O objetivo é obter uma escala mais justa possível.plantao[1] = medico[1]; dia = 2; enquanto (dia ≤ 30) faça { plantao[dia] = plantao[dia - 1]; dia = dia + 1; }
a) Como você descreveria uma escala justa? Descreva a entrada e a saída usando uma linguagem mais formal do que na descrição do problema.
b) No algoritmo escrito acima, descreva as configurações inicial, após a execução das linhas 1, 2, após a $i$-ésima execução da linha 4, e a configuração final.
c) Argumente (informalmente ou formalmente) que o algoritmo acima não está correto de acordo com a especificação de saída que você descreveu.
-
Você tem três baldes, identificados como $A$, $B$ e $C$ com capacidades $2$, $7$ e $4$ litros respectivamente. Os baldes $A$ e $C$ estão vazios, enquanto o balde $B$ está cheio de água. Um amigo gostaria de, sem desperdiçar água, separar um litro, mas não há indicadores de medida nos baldes. Ele sugeriu o procedimento abaixo:
- Despeje água do balde $B$ no balde $A$ até a borda;
- Despeje metade da água do balde $A$ no balde $C$;
- Entregue o balde $A$.
a) Argumente que este procedimento não é um algoritmo; para isso, dê a definição de um algoritmo e descreva suas características.
b) Depois escreva um algoritmo para o problema.
Decidibilidade
Atenção: as questões abaixo tratam de conteúdos que não discutimos em sala e estão disponíveis apenas para referência.
-
Leia:
Como regra básica que dominou a computação, a lei de Moore afirma que o número de transístores de um chip de microprocessador irá dobrar a cada dois anos — o que em geral significa que a velocidade também irá dobrar. (...) Não por muito tempo. Esse ritmo já começou a decair, graças ao aquecimento que é inevitável quando mais e mais circuitos de silícios são espremidos em uma pequena área. (...)
The chips are down for Moore’s law, Nature, 9 de fevereiro de 2016 (adaptado).
Considerando o excerto, disserte brevemente sobre: “mesmo que a lei de Moore não chegasse ao fim, ainda há problemas que não poderíamos resolver”. No seu texto, defina problemas indecidíveis e problemas intratáveis, explicando a diferença entre eles.
-
Concorde ou discorde: “O problema de decidir se dois números racionais são iguais é indecidível, já que existem infinitas formas de escrever um mesmo número.”
Justifique considerando a seguinte questão: como podemos mostrar que um problema é decidível (resolvível)?