• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kripton2007

[Ajuda Urgente] Simulação de Crescimento Urbano

4 mensagens neste tópico

Boas pessoal,

Estou aqui com dificuldades na forma como irei definir a estrutura de dados que melhor se adecue ao projecto que tenho que desenvolver. Uma vez que esta tem que ser robusta, e ao mesmo tempo tem que ser bastante eficiente.

Não quero com isto, que ninguém faça o trabalho por mim, apenas coloquei aqui o enunciado para não haver dúvidas acerca daquilo que se trata realmente o projecto, e facilitar a sua compreensão.

Sendo assim, deixo aqui a explicação do projecto:

Neste projecto pretende-se implementar vários modelos de simulação. Os modelos são uma forma de simular situações reais com o intuito de as compreender melhor. Neste projecto pretende-se implementar no sistema operativo Linux utilizando a linguagem de programação C usando a plataforma gráfica OpenGL/GLUT vários modelos com um grau crescente de complexidade.

Utilizando um processo semelhante ao anterior pretende-se simular o crescimento

urbano de uma cidade. Neste caso, o programa lê de um ficheiro o mapa

da cidade. Pretende-se que cada sector do mapa possa ter os seguintes valores

possíveis:

R    residencial;

C    comercial;

E    estrada;

A    aquático;

F    forestal;

G    agrícola.

O programa lê também de um ficheiro as regras de crescimento da cidade.

Estas regras exprimem o novo estado de um sector em funçãoo do valor actual e

dos valores dos sectores vizinhos. Este ficheiro explicita primeiro qual o tipo de

vizinhança:

cruz                             os 4 sectores ortogonais;

quadrado                    os 8 sectores vizinhas (ortogonais e diagonais);

círculo                        composto por 12 sectores (os 8 vizinhos mais os 4 ortogonais distantes de um sector).

Cada regra é explicitada utilizando uma sintaxe simples. Essa sintaxe é da

forma:

antecedente : novo valor

onde antecedente é uma conjunção de condições separadas por vírgulas sendo

cada condição da forma valor op número onde valor pode ser um dos valores

R, C, E, A, F, G ou s sendo s o sector actual e op é um operador de comparação =, >, <, >= ou <=. Nas condições da forma s = valores o campo valores pode ser um valor ou um conjunto de valores separado pelo operador |. Seguem-se

alguns exemplos ilustrativos:

s = C : C                                  se o sector é comercial, continua a ser comercial

s = F | G, C = 3 : C                    se o sector é florestal ou agrícola e 3 sectores vizinhos são comerciais, o sector passa a ser comercial

No caso de várias regras se poderem aplicar, aplica-se a primeira regra.

Assim, logo que uma regra se possa aplicar a um sector, não é necessário verificar as regras seguintes para esse sector.

Aquilo que eu pretendo é descobrir a melhor estrutura de dados para desenvolver o projecto, tal como ja disse anteriormente, para este ser robusto e ao mesmo tempo eficiente.

Já agora, convém salientar o facto de que posteriormente, este projecto terá de ser adaptado, ou seja, a partir de todo o código teremos que desenvolver um simulador genério que seja capaz de simular uma outra coisa qualquer com um diferente número de parâmetros. Deste modo, ao desenvolver o código correspondente a este projecto, devo já estar a pensar na fase seguinte do projecto.

Se alguém puder sugerir uma forma para desenvolver o projecto, de modo a minimizar os problemas futuros, ficava muito agradecido!

Cumprimentos, kripton2007

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Peço desculpa pelo double post...

Mas se fosse possível, precisava de algumas ajudas com uma certa urgência! Tenho apenas 2 semanas para desenvolver este projecto.

Cumprimentos, kripton2007

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se já pensaste em alguma forma de o fazer, mesmo que penses que esteja errada, coloca aí.

Falo por mim, não compreendo o que é pedido. Pode ser que vendo algo em concreto ajude a compreender.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois... o problema está mesmo em começar a fazer, uma vez que não tenho ainda nenhuma ideia concreta.

Entretanto, pedi ajuda a um colega meu e ele sugeriu isto:

a estrutura ser uma lista ligada em que cada elemento contém uma Regra (cada regra é um conjunto de condições e um valor final, e corresponde a uma linha do ficheiro que é dado)

cada Regra é uma estrutura com a Lista de Condições, e o Valor Final

a Lista de Condições é outra lista ligada em que cada elemento é uma condição.

uma condiçao é constituida pelo valor da esquerda, o valor da direita, e o operador.

Guardar um operador com um int e usar um enum para corresponder cada int a um operador.

Foi então esta a sugestão dele... o meu problema neste momento é mesmo começar... não sei o que tenho que fazer em 1º lugar. :s

Se puderem ajudar, ficava muito agradecido!

Cumprimentos kripton2007  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora