Vous êtes sur la page 1sur 2

UFMG/ICEx/DCC DCC004  Algoritmos e Estruturas de Dados 2

Trabalho Prático 1

Ciências Exatas & Engenharias 1o Semestre 2019

Observações:

1. Comece a fazer este trabalho imediatamente. Você nunca terá tanto tempo para resolvê-lo quanto agora!

2. Data de entrega: A ser conrmada (duas semanas após o anúncio do monitor da disciplina), até às 23:59
horas, ou antes desse dia.

3. Submissão: Submeta este trabalho no Moodle na forma de único arquivo zip, descrito abaixo, com o nome
AEDS2_"SeuNomeCompleto".zip onde o string "SeuNomeCompleto" é o seu nome completo sem espaços

em branco.

Exemplo para o aluno Zoroastro Felizardo e Sortudo:

• Arquivo zip: AEDS2_ ZoroastroFelizardoESortudo.zip contendo apenas os seguintes três arquivos:

(a) O arquivo espiral.c: arquivo fonte na linguagem C

(b) O arquivo espiral.pdf: documentação


(c) O arquivo leiame.txt: instruções de execução
4. Plataforma computacional: O seu trabalho deve ser executado em alguma máquina do ambiente com-
putacional do Departamento de Ciência da Computação da UFMG, onde os monitores irão avaliá-lo.

5. Linguagem: Você deve escrever o seu programa obrigatoriamente na linguagem de programação C.

6. Documentação:

• Uma documentação mínima (possivelmente até cinco páginas) que explique as fases de especica-
ção, projeto e implementação, incluindo uma breve descrição de como você resolveu cada parte deste
trabalho incluindo uma discussão sobre o projeto das estruturas de dados.

• Um arquivo leiame.txt, a ser incluído no arquivo zip, como informações sobre o ambiente computa-
cional para executar o seu TP bem como todas as instruções necessárias.

7. Testes: O seu programa será avaliado para diferentes valores de n. Considere como maior valor o maior
número inteiro que pode ser representando em uma variável inteira na linguagem C.

AEDS2 © 2019/1 Trabalho Prático 1 1


Espiral Quadrada
A espiral quadrada é uma sequência de pontos com coordenadas Coordenadas
inteiras, como mostrado na gura abaixo, que pode ser representada Ponto (x, y )
pela tabela ao lado. O objetivo deste trabalho é fornecer um ponto
0 ( 0, 0 )
e calcular as suas coordenadas.
1 ( 0, 1 )
y 2 (−1, 1 )
3 (−1, 0 )
4 (−1, −1 )
12 11 10 9
5 ( 0, −1 )
6 ( 1, −1 )
7 ( 1, 0 )
13 2 1 8
8 ( 1, 1 )
9 ( 1, 2 )
10 ( 0, 2 )
14 3 0 7
11 (−1, 2 )
x 12 (−2, 2 )
13 (−2, 1 )
15 4 5 6 14 (−2, 0 )
15 (−2, −1 )
16 (−2, −2 )
16 17 18 19 20 17 (−1, −2 )
18 ( 0, −2 )
19 ( 1, −2 )
20 ( 2, −2 )
. .
. .
. .

Entrada. Um número inteiro n ≥ 0 a ser fornecido através da entrada padrão, que representa um ponto da
espiral quadrada.

Saída. As coordenadas (x, y) desse ponto a serem fornecidas através da saída padrão.

Documentação. Você deve apresentar o algoritmo usado e apresentar uma descrição da estratégia que você
usou para resolver esse problema.

Estratégias para resolver o problema. Claramente é possível resolver esse problema em n passos, n ≥ 0,
onde cada passo calcula as coordenadas (x, y) desse ponto até se chegar ao ponto desejado n.
No entanto, é possível resolver esse problema, usando estratégias mais elaboradas. Uma delas, resolve esse

problema em uma quantidade de passos que é proporcional a n. Uma outra, que é a forma mais sosticada,
resolve esse problema em número constante de passos, independentemente de n.
Para este TP, você pode usar qualquer estratégia, mas pense sobre essas possibilidades.
Observe que soluções que gastam menos passos podem ser fundamentais em vários projetos de algoritmos.
Esse será um dos focos desta disciplina.

Visualizando a sua espiral. Esta parte não faz parte do TP, mas procure conhecer soluções para visualizar
a sua espiral quadrada.

AEDS2 © 2019/1 Trabalho Prático 1 2

Vous aimerez peut-être aussi