Académique Documents
Professionnel Documents
Culture Documents
Sistemas de Informao
Jeanne Dobgenski
Anhanguera Educacional Ltda
Pg. 2 de 8
COMPETNCIAS E HABILIDADES
Ao concluir as etapas propostas neste desafio voc ter desenvolvido as competncias e habilidades descritas a seguir. Competncia para identificar, analisar e documentar oportunidades, problemas e necessidades passveis de soluo via computao, e para empreender na concretizao desta soluo. Capacidade de abstrao, representao, organizao e viabilizao de solues de software para diferentes domnios de aplicao. Habilidade em tomar decises e saber implement-las.
DESAFIO
Vrias reas da cincia da computao usam domnios simples e abstratos para estudos analticos e empricos. Por exemplo, algumas das primeiras pesquisas de inteligncia artificial nas reas de planejamento e robtica usavam o mundo dos blocos, no qual um brao de rob realizava tarefas envolvendo a manipulao de blocos. Este desafio consiste em modelar um Mundo dos Blocos bem simples, que vai funcionar de acordo com certas regras e restries. O problema consiste em analisar uma srie de comandos que instruem um brao de rob em como manipular os blocos que esto sobre uma mesa. Inicialmente, existem n blocos sobre a mesa (numerados de 0 a n-1), como mostra a figura a seguir. 0 1 2 3 4 n-1
...
O problema comea com cada bloco na sua posio inicial sobre a mesa e, depois de uma srie de comandos vlidos, deve terminar em uma configurao final. Na figura a seguir apresentado um exemplo para 5 blocos (n=5), sendo (a) a configurao inicial e (b) a configurao final. 2 0 1 2 (a) 3 4 0 (b) 1 3 4
Os comandos vlidos para o brao de rob manipular os blocos so listados a seguir. Usa-se a para indicar o bloco em movimento e b como bloco de referncia. mover a acima b: move o bloco a para cima do bloco b retornando eventuais blocos que j estiverem sobre a ou b para as suas posies originais. mover a topo b: coloca o bloco a no topo do monte onde est o bloco b retornando eventuais blocos que j estiverem sobre a s suas posies originais. empilhar a acima b: coloca o bloco a juntamente com todos os blocos que estiverem sobre ele em cima do bloco b, retornando eventuais blocos que j estiverem sobre b as suas posies originais.
Pg. 3 de 8
empilhar a topo b: coloca o bloco a juntamente com todos os blocos que estiverem sobre ele no topo do monte onde est o bloco b. encontrar maior: encontra o maior elemento da pilha mais alta e o devolve para a posio inicial. sair: termina a execuo. Qualquer comando no qual a = b ou no qual a e b estejam na mesma pilha de blocos um comando ilegal e deve ser ignorado, no alterando a configurao dos blocos. Os arquivos de entrada e sada devem obedecer aos seguintes formatos: Arquivo de Entrada: o arquivo comea com um nico nmero inteiro n na primeira linha representando o nmero de blocos do seu Mundo dos Blocos, sendo 0 < n < 25. Esse nmero de blocos ser seguido por uma sequncia de comandos, um por linha. O programa deve processar todos os comandos at encontrar o comando sair. Assumir que todos os comandos esto no formado definido anteriormente, ou seja, no haver erros de sintaxe nos comandos. Arquivo de Sada: a sada consiste da configurao final do seu Mundo dos Blocos. Em cada linha deve aparecer o nmero da posio original seguida de dois pontos (:). Se existir pelo menos um bloco naquela posio, os dois pontos devem ser seguidos pela lista de blocos que aparecem naquela pilha separados por um espao em branco. Deve existir uma linha no arquivo de sada para cada posio, ou seja, n linhas sendo n o nmero inteiro na primeira linha do arquivo de entrada. Para o exemplo mostrado na figura (b), os arquivos de entrada e sada so listados a seguir. Ressalta-se que diferentes arquivos de entrada podem levar a uma mesma configurao final. Entrada: 5 mover 3 acima 0 move 2 topo 4 empilhar 4 acima 0 empilhar 1 topo 3 encontra maior sair Sada: 0: 0 2 1: 2: 3: 3 1 4: 4
Devero ser estabelecidos grupos de at 4 alunos para a execuo desse desafio. importante que os grupos no se alterem para elaborao de cada etapa.
Objetivo do desafio
Elaborar uma anlise de uma srie de comandos que instruem um brao de rob em como manipular os blocos dispostos sobre uma mesa.
Produo Acadmica
Relatrios parciais, com os resultados das pesquisas e atividades realizadas.
Participao
Esta atividade ser, em parte, desenvolvida individualmente pelo aluno e, em parte, pelo grupo. Para tanto, os alunos devero:
Pg. 4 de 8
Organizar-se, previamente, em equipes de participantes conforme orientao do professor. Entregar seus nomes, RAs e e-mails ao professor da disciplina. Observar, no decorrer das etapas, as indicaes: Aluno e Equipe.
Padronizao
O material escrito solicitado nesta atividade deve ser produzido de acordo com as normas da ABNT1, com o seguinte padro: Em papel branco, formato A4. Com margens esquerda e superior de 3cm, direita e inferior de 2cm. Fonte Times New Roman tamanho 12, cor preta. Espaamento de 1,5 entre linhas. Se houver citaes com mais de trs linhas, devem ser em fonte tamanho 10, com um recuo de 4cm da margem esquerda e espaamento simples entre linhas. Com capa, contendo: Nome de sua Unidade de Ensino, Curso e Disciplina. Nome e RA de cada participante. Ttulo da atividade. Nome do professor da disciplina. Cidade e data da entrega, apresentao ou publicao.
PASSOS
Passo 1 (Aluno) Leia atentamente o desafio e os conceitos de lista, pilha e fila no livro texto da disciplina. Passo 2 (Equipe) Analisem o problema proposto e defina as estruturas de dados estticas para a sua resoluo. Passo 3 (Equipe) Elaborem um relatrio, a ser entregue ao professor da disciplina, contendo capa, sumrio, descrio e a anlise que a equipe fez do problema, descrio das estruturas estticas definidas com a respectiva justificativa, apresentao da representao grfica das estruturas estticas definidas e referncias bibliogrficas.
1
Consulte o Manual para Elaborao de Trabalhos Acadmicos. Unianhanguera. Disponvel em: <http://www.unianhanguera.edu.br/anhanguera/bibliotecas/normas_bibliograficas/index.html>.
Pg. 5 de 8
PASSOS
Passo 1 (Equipe) Definam as funes necessrias para a implementao dos quatro primeiros comandos definidos no desafio e o , utilizando as estruturas de dados com alocao esttica de memria definida na Etapa 1. Passo 2 (Equipe) Faam um programa que leia um arquivo de entrada, execute todos os comandos presentes nesse arquivo e gere um arquivo de sada, no formato definido anteriormente no desafio. Passo 3 (Equipe) Complementem o relatrio desenvolvido na etapa anterior com: descrio das funes definidas pela equipe solicitao Passo 1; indicao do uso das estruturas estticas definidas; apresentao de um exemplo de entrada e sada de dados; novas referncias bibliogrficas usadas para essa etapa; anexos impresso do cdigo fonte comentado e uma mdia com o cdigo fonte e programa executvel.
PASSOS
Passo 1 (Equipe) Leia atentamente os conceitos relacionados a alocao dinmica de memria no livro texto da disciplina.
Pg. 6 de 8
Passo 2 (Equipe) Definam uma estrutura de dados com alocao dinmica de memria para o desafio proposto. Essa estrutura composta por um vetor de listas encadeadas (na qual cada lista encadeada corresponde a uma pilha de blocos, sendo que cada registro dessa lista vai corresponder a um bloco). Por exemplo, as duas configuraes mostradas no enunciado do desafio seriam representadas da seguinte forma - usando a estrutura de dados solicitada.
0 1 2 3 4 Passo 3 (Equipe)
3 4
Complementem o relatrio com: descrio completa da estrutura dinmica definida, descrio de operao dessa estrutura, novas referncias bibliogrficas adicionais e anexo impresso do cdigo fonte comentado para implementao da estrutura.
PASSOS
Passo 1 (Equipe) Definam as funes que sero necessrias para a implementao dos quatro primeiros comandos definidos no desafio e o , utilizando as estruturas de dados com alocao dinmica de memria definida na Etapa 3. Passo 2 (Equipe) Faam um programa que leia um arquivo de entrada, execute todos os comandos presentes nesse arquivo e gere um arquivo de sada, no formato definido anteriormente no desafio.
Pg. 7 de 8
Passo 3 (Equipe) Adicionem ao relatrio do desafio: descrio das funes definidas pela equipe solicitao Passo 1; indicao do uso das estruturas dinmicas definidas; apresentao de um exemplo de entrada e sada de dados; novas referncias bibliogrficas usadas para essa etapa; anexos impresso do cdigo fonte comentado e uma mdia com o cdigo fonte e programa executvel.
PASSOS
Passo 1 (Aluno) Leia atentamente sobre o tema recursividade no livro texto e analise como pode ser aplicado nesse desafio.
Passo 2 (Equipe) Desenvolvam uma funo recursiva utilizando a estrutura esttica (definida na Etapa 1) para o quinto comando descrito no desafio, ou seja, para encontrar o maior elemento da pilha mais alta e o devolver para a posio inicial. Passo 3 (Equipe) Desenvolvam uma funo utilizando a estrutura dinmica (definida na Etapa 3) para o quinto comando descrito no desafio, ou seja, para encontrar o maior elemento da pilha mais alta e o devolver para a posio inicial. Essa funo pode ou no ser recursiva, sendo necessria uma anlise do grupo para o tipo de funo a ser utilizado. Passo 4 (Equipe) Finalizem o relatrio, que documentar o completo desenvolvimento do desafio, com: descrio do algoritmo desenvolvido para a funo recursiva solicitao Passo 2; cdigo fonte comentado para o algoritmo recursivo usando a estrutura esttica Passo2; descrio do algoritmo desenvolvido para a funo recursiva ou no solicitao Passo 3; cdigo fonte comentado para o algoritmo usando a estrutura dinmica Passo3; anlise comparativa das duas funes desenvolvidas estrutura esttica e dinmica;
Pg. 8 de 8
apresentar no mnimo dois exemplos utilizados para testar o algoritmo apresentar o arquivo de entrada, o de sada e o esquema grfico como o apresentado no enunciado do desafio; referncias bibliogrficas; anexo 1 - contendo o cdigo fonte completo e comentado; anexo 2 uma mdia digital contendo os cdigos fontes, os arquivos de entrada e sada de dados, os programas executveis de cada verso desenvolvida: estruturas estticas e dinmicas.