Fundamentos da Programação
|
|
- Helena Beppler
- 5 Há anos
- Visualizações:
Transcrição
1 Fundamentos da Programação Simulação de Sociedades Projecto: entrega dia 19 de Dezembro de 2006 (versão 1.3, actualizado a 8/12/06, consultar Errata 1.3) Na era da globalização em que indivíduos de diferentes sociedades e culturas são cada vez mais expostos a outras culturas e sociedades, e onde há uma necessidade constante de adaptação a outros modos de vida, a tolerância para com os costumes de diferentes culturas passa a ser um desafio social importante, que tem motivado muitos estudos não só em áreas da sociologia e das ciências políticas mas também da informática. Por outro lado, com o surgimento de mundos virtuais populados por avatars, e de jogos role-play onde os personagens são controlados quer por jogadores quer por agentes, as interacções sociais entre as entidades virtuais passam a tomar uma importância maior nas simulações de sociedades sintéticas, de forma a tornar credíveis os personagens não controlados por jogadores (NPCs). O êxito de jogos como o The Sims TM, ou o World of Warcraft TM, mostram a importância destas relações sociais e do desenvolvimento de sociedades sintéticas credíveis. O objectivo deste projecto é criar um simulador de um mundo sintético (e limitado) em Scheme, onde os habitantes (os agentes nesse mundo) nascem, vivem, morrem, comem e se movimentam, procurando ser o mais felizes possível. Neste mundo podem existir diferentes sociedades, com características diferentes, que caracterizam a forma como os agentes dessa sociedade se comportam e toleram os agentes de outras sociedades. O simulador deverá ser iniciado através de um conjunto de parâmetros que caracterizam as sociedades e o próprio mundo sintético, e correr durante um conjunto finito de ciclos, mostrando o que acontece às sociedades durante esse período de simulação. Este simulador permitirá estudar diversos casos interessantes de aparecimento de fenómenos de segregação em sociedades heterogéneas.
2 Pág. 2/17 1. Introdução ao O Mundo a Simular O mundo que se pretende que seja simulado pelo programa não é mais que um tabuleiro onde em cada posição se pode encontrar um indivíduo de uma dada sociedade. A dimensão do tabuleiro pode ser parametrizada (número máximo de colunas e linhas), sendo que por omissão (isto é, se nada for dito), o tabuleiro terá 81 células (9 linhas por 9 colunas). O mundo é circular, ou seja, a seguir à última linha vem a primeira linha, e antes da primeira linha está a última linha. O mesmo se passa com as colunas. No mundo o tempo passa. A cada instante (ou ciclo) o mundo é caracterizado pelas sociedades que nele existem (cada sociedade terá uma designação), pela distribuição dos seus agentes no tabuleiro e pela distribuição das fontes de comida com diferentes níveis de stock. Assim, a cada instante, cada posição do mundo poderá estar vazia, ter um agente de uma dada sociedade, ou ter uma fonte de comida. Os agentes podem nascer, comer, movimentar-se e morrer. Cada um deles tem um estado associado, que indica a sua localização, o seu nível de energia e a sua idade. O mundo tem ainda recursos em forma de fontes de comida, que aparecem em determinadas posições de acordo com certas regras de geração. A cada fonte de comida está associada uma quantidade comida ainda por ser consumida. Todos as mudanças no estado do mundo ocorrem aquando das mudanças de instante. Por outras palavras, quando um instante muda, o mundo pode apresentar novas posições para os agentes (no caso de eles se movimentarem), novas fontes de comida (que entretanto apareceram), diferentes valores para os níveis de stock das fontes de comida (se elas forem consumidas por agentes) e diferentes valores para os níveis de energia dos agentes (se os agentes perderem ou ganharem energia). Figura 1 Um mundo em
3 Pág. 3/ Os Agentes Cada agente é caracterizado pela sociedade a que pertence, pela sua posição no mundo, por uma quantidade de energia que tem armazenada, e pela sua idade. Em cada ciclo do mundo, cada agente tem a oportunidade de mudar o seu estado, podendo comer, ficar quieto, mover-se, ou morrer. O seu novo estado tornar-se-á visível no instante seguinte, depois do estado do mundo ser actualizado com esta nova informação. Em cada instante a idade de um agente aumenta uma unidade, e a sua energia decrescerá um certo valor (o custo de sobrevivência dos elementos dessa sociedade, ver Secção 1.3). Figura 2. Personagens do, Kenny, Cartman, Kyle e Stan As personagens que vamos usar no nosso enunciado são as personagens da conhecida série de animação SouthPark TM e estão representadas na Figura 2. a) Nascimento Quando o mundo é criado (no instante um) ele já é habitado por agentes, cuja localização é definida pela parametrização inicial. Também podem nascer agentes em instantes futuros, quando uma casa vazia tiver um número mínimo de vizinhos da mesma sociedade (este valor corresponde ao número de progenitores e é parametrizado para cada uma das sociedades). Por exemplo, na situação da Figura 3, se o valor necessário para o nascimento de um agente na sociedade Cartman for de pelo menos 4, no instante seguinte ao do que está representado no tabuleiro da esquerda, nasce um agente na posição (2,4) (obtendo-se o tabuleiro da direita). Nesta situação, o agente nascerá com a idade 0 e com quantidade de energia igual a metade do máximo de energia possível para os membros da sua sociedade (arredondada para baixo), ver Secção 1.3. Figura 3. Nascimento de um agente b) Movimentação. Um agente move-se no máximo uma posição em cada instante, para qualquer uma das casas adjacentes (horizontal, vertical ou diagonalmente) que estiver livre (isto é, sem outro agente e sem uma fonte de comida). Os agentes
4 Pág. 4/17 movimentam-se sempre que não estão contentes, isto é, sempre que se encontram numa posição que oferece um grau de conforto (social ou físico) abaixo da sua tolerância (social ou física) - ver Secção 1.3. Se estiverem contentes, tanto física como socialmente, os agentes não se mexem. Sempre que um agente se move, ele move-se por forma a estar mais perto de outros membros da sua sociedade, ou para estar mais perto de fontes de comida. A sua movimentação é por isso para a posição adjacente com maior nível de conforto. Claro que podem existir várias posições adjacentes em que o nível de conforto é idêntico e por isso o agente tem de decidir qual delas prefere. Durante este projecto vamos sempre assumir que em caso de empate, a ordem de preferência será decidida de acordo com a Figura 3, onde 1 significa maior preferência, e 8 significa menor preferência Figura 4. Regras de desempate Pode também acontecer que dois agentes estejam a tentar movimentar-se ao mesmo tempo para uma mesma posição. Neste caso consulte as regras de resolução de conflitos indicadas no Apêndice A. c) Morte Existem duas causas de morte possíveis para um agente: ter esgotado as suas reservas de energia ou ter atingido a esperança de vida para os elementos da sua sociedade. No primeiro caso, o agente desaparece do tabuleiro no instante seguinte ao das suas reservas de energia terem valor inferior a zero (não chega a efectuar a movimentação); no segundo caso, o agente desaparece do tabuleiro no início do turno seguinte àquele em que a sua idade ultrapassou a esperança de vida para a sua sociedade. d) Comida Um agente que está ao lado de uma fonte de comida deverá comer até ao máximo que conseguir. Mais precisamente, enquanto houver comida suficiente na fonte, ele remove em cada instante uma porção, até atingir o nível máximo de energia que pode armazenar. Tanto o ritmo com que a comida é assimilada (o tamanho de cada porção) como o limite máximo de energia que pode armazenar são parâmetros da sociedade a que pertence (ver detalhes na Secção 1.3). É possível que num dado instante, haja vários agentes em posição de comer a partir de uma mesma fonte. Neste caso consulte as regras de resolução de conflitos indicadas no Apêndice A. Se um agente não conseguir comer porque entretanto outro agente esgotou a fonte de comida, então o agente não realiza nenhuma acção nesse instante ficando na mesma posição. Note que no entanto, se houver outra fonte de comida na sua vizinhança, ele deverá recorrer a essa fonte para realizar a sua acção
5 Pág. 5/17 e) Energia Em cada instante, um agente tem um determinado nível de energia. Este valor decresce todos os instantes, de um valor definido como o custo de sobrevivência da sua sociedade). A energia de um agente aumenta de cada vez que o agente consome comida (o valor da energia que é incrementado corresponde à quantidade de comida consumida) As Sociedades No mundo podem existir várias sociedades (por exemplo, a sociedade dos Kenny, dos Cartman, dos Kyle, etc). Cada sociedade é composta por uma população de agentes que têm características e comportamentos comuns. As sociedades caracterizam-se por terem diferentes tolerâncias, esperanças de vida, número de progenitores, quantidade máxima de energia, ritmos a que a comida é ingerida, e custo de sobrevivência. a) Tolerância A tolerância é um factor que determina se o agente está ou não num estado contente e tem duas componentes, tolerância física e tolerância social. A cada instante, se o bem estar do agente (físico ou social) é menor que o seu valor de tolerância, este fica triste e tem que se movimentar, podendo em caso extremo morrer por não conseguir melhorar o seu bem estar. O estado de contentamento, ou bem estar, de um agente é medido segundo duas componentes distintas. A primeira chama-se conforto-social, e determina até que ponto um agente tolera a exclusão social, i.e., se está bem em relação à sua vizinhança. Este factor permite determinar se um individuo está contente com a sua posição actual, e obtido calculando a percentagem de vizinhos que são da sua sociedade, isto é, nº de vizinhos da mesma sociedade/8 A segunda componente é o conforto-físico, e determina se um agente está fisicamente bem. Este factor é calculado fazendo o quociente entre a energia que ele possui, e o máximo de energia que os agentes da sua sociedade podem acumular. Sempre que o conforto social é inferior à tolerância social (ou o conforto físico é inferior à tolerância física, o agente movimentar-se-á para tentar melhorar o seu bem estar. Quando isto acontece, o agente movimentar-se-á para a posição que lhe trouxer um melhor conforto, isto é, uma posição onde aumente o seu conforto social, ou onde aumente o seu conforto físico, ou seja uma posição onde existam fontes de comida adjacentes. O conforto que uma posição proporciona a um agente é dado pela fórmula (conforto-social + nº de fontes de comida adjacentes)/2
6 Pág. 6/17 Figura 5. Exemplo de situações de vizinhança de um agente No exemplo da Figura 5, considerando que o factor de tolerância social da sociedade Cartman é ¼ o agente na posição (5,2) tem conforto social ¼, por isso não se mexe, enquanto que o agente na posição (1,3) tem conforto social 1/8 e por isso movimentar-se-á. Suponhamos que o tolerância física da sociedade Kenny é ½ e a quantidade máxima de energia é 8. Se o agente na posição (1,5) tem 3 unidades de energia, o seu conforto físico é inferior à tolerância física e ele terá de se movimentar. Ele movimentar-se-á para a posição (2,5) que lhe proporciona um conforto 17/16. b) A Esperança de Vida Os agentes não vivem para sempre, existindo uma esperança de vida para cada sociedade. Assim, quando um agente passa essa idade (números de ciclos), morre. Quando um agente nasce tem idade zero, e por cada ciclo de simulação, a idade do agente é incrementada de uma unidade. c) Número de Progenitores O nascimento de agentes de uma dada sociedade depende dos costumes dessa mesma sociedade e no nosso caso assumimos que para ocorrer o nascimento de um agente, têm de se encontrar na sua vizinhança o número suficiente de progenitores. d) Quantidade Máxima de Energia, Porção Máxima de Comida e Custo de Sobrevivência Os hábitos alimentares dos agentes e a maneira como os agentes dispendem a sua energia dependem em parte da sua sociedade. Existem sociedades onde as porções por refeição são muito grandes (os agentes comem mais), e outras em que as refeições são muito rápidas e por isso a quantidade de comida ingerida é diminuta. Para modelar este fenómeno assumimos que se encontram definidos dois parâmetros que indicam a quantidade máxima de energia que cada agente pode armazenar e o número máximo de unidades de comida que pode consumir por cada acção. Os hábitos físicos de um agente também são em parte determinados pela sua sociedade. Existem sociedades mais activas e outras mais sedentárias. Para modelar este fenómeno assumimos que se encontra definido um parâmetro para cada sociedade que indica quantas unidades de energia são consumidas por turno por cada agente, o custo de sobrevivência.
7 Pág. 7/ A Comida A comida aparece no mundo de acordo com uma função de geração de comida que depende do estado do mundo e do tempo. A comida é um recurso que os agentes necessitam para se manterem vivos (mantendo o conforto físico acima do tolerância física). As fontes de comida aparecem com um valor de quantidade de comida inicial, que vai diminuindo cada vez que um agente come. As fontes de comida estão localizadas em posições no mundo e desaparecem quando os agentes consumirem toda a comida que tinha sido inicialmente gerada. Se uma fonte de comida não for suficiente para satisfazer um agente, ele apenas consome a quantidade existente não devendo procurar outras fontes para completar a acção. 2. : O simulador O simulador é activado pelo utilizador, invocando o procedimento ( mundo-inicial tempo-final funcao-geradora-de-comida) que inicia o ciclo de simulação. A cada instante o simulador avalia todas as posições no mundo, efectua as acções de cada agente e retorna o estado do mundo no instante seguinte. Por exemplo, se no instante t um determinado agente efectua a acção de se movimentar de uma posição A para uma posição B, no instante t+1 esse agente aparecerá na posição B. 2.1 Os Tipos Abstractos Para a resolução deste projecto, cada grupo deverá definir os seguintes tipos abstractos de informação: posição, comida, agente, população, sociedade e mundo. Poderá ser útil considerar ainda tipos de dados auxiliares tais como listas, listas completas e/ou tabuleiro. Para cada um destes tipos de dados deverá ser criado um módulo separado, que deverá ser gravado no ficheiro nome-do-tipo.scm O Tipo Agente Nesta secção apresentamos o tipo abstracto de informação agente. O tipo agente deverá respeitar as seguintes operações: - cria-agente : nome-sociedade x posicao x nat x nat-> agente Cria um agente de uma sociedade numa dada posição, com um valor inicial de comida e com determinada idade. - sociedade-agente : agente -> nome-sociedade Devolve a sociedade de um agente - posicao-agente : agente -> posicao Devolve a posição de um agente - comida-agente : agente -> nat Devolve a quantidade de comida que o agente ainda possui - idade-agente : agente -> nat Devolve a idade do agente - muda-sociedade-agente : nome-sociedade x agente -> agente Muda a sociedade de um agente - muda-posicao-agente : posicao x agente -> agente Muda a posição de um agente
8 Pág. 8/17 -muda-comida-agente : nat x agente -> agente Muda o valor da comida de um agente - muda-idade-agente : nat x agente -> agente Muda a idade de um agente - agente? : universal -> bool Verifica se um elemento é um agente - agentes=? : agente x agente -> bool Verifica se dois agentes são iguais O Tipo Mundo Nesta secção apresentamos o tipo abstracto de informação mundo. O tipo mundo deverá respeitar as seguintes operações: - cria-mundo: nat x nat x nat x comida* x sociedade* -> mundo Cria um mundo com o tempo e as dimensões (largura e altura) dadas, com os elementos do tipo comida espalhados nesse mundo, e habitado pelas sociedades argumento - tempo-mundo : mundo -> nat Devolve o tempo actual do mundo - dimensoes-mundo : mundo -> par Devolve um par com as dimensões largura e altura do mundo - comida-mundo : mundo -> lista Devolve a lista dos elementos do tipo comida que ocorrem no mundo - sociedades-mundo : mundo -> lista Devolve a lista de todas as sociedades presentes no mundo - sociedade-nome-mundo : nome-sociedade x mundo -> sociedade Devolve a sociedade do mundo com o nome dado - posicao-mundo ; posicao x mundo -> elem Devolve o elemento do mundo na posição argumento Deverá ainda definir as seguintes operações auxiliares sobre o tipo de dados mundo: - muda-tempo-mundo : nat x mundo -> mundo Muda o tempo do mundo para o valor dado - altera-agente-mundo ; agente x mundo -> mundo Introduz o agente dado no mundo (removendo o elemento que eventualmente exista na posição onde este é introduzido) - mata-agente-mundo ; agente x mundo -> mundo Remove o agente dado do mundo - move-agente-mundo ; agente x posicao x mundo -> mundo Move o agente para a posição dada - altera-comida-mundo ; comida x mundo -> mundo Introduz no mundo o objecto comida dado como argumento (removendo o elemento que eventualmente exista na posição onde este é introduzido) - posicao-desocupada? : posição x mundo -> bool Retorna true se e só se a posição no mundo está desocupada - posicao-ocupada? : posição x mundo -> bool Retorna true se e só se a posição no mundo está ocupada Outros TAIs Os restantes tipos dados devem ser definidos pelos grupos adequadamente e conforme sejam necessários. No entanto, para que seja possível gerir a parametrização do seu programa, e permitir que o seu programa seja testado de uma forma fácil, deverá respeitar os construtores dos tipos seguidamente apresentados:
9 Pág. 9/17 - cria-posicao: nat x nat -> posicao Devolve a posição composta pelo par dos dois argumentos - cria-comida: posicao x nat -> comida Devolve um objecto do tipo comida na posição e com o número de unidades de comida dados como argumento - cria-pop: agente* -> pop Cria a população formada pelos agentes dados como argumento - cria-sociedade: string x nat x real x real x nat x nat x nat x nat x pop -> sociedade Devolve a sociedade onde os argumentos representam (por esta ordem) o nome da sociedade, a esperança de vida dos agentes da sociedade, as tolerâncias social e física, o número de progenitores da sociedade, os parâmetros quantidade máxima de energia, porção máxima de comida e custo de sobrevivência, e a população da sociedade. 2.2 O Ciclo de Simulação Cada ciclo de simulação deve receber um mundo num instante t e retornar um mundo no instante seguinte t+1. O mundo no instante t+1 é obtido do mundo no instante t através da execução das seguintes operações: 1. retirar do mundo os agentes que atingiram a esperança de vida da sua sociedade; 2. efectuar as acções de todos os agentes de acordo com o definido na Secção 1.2; consulte o Apêndice A para regras de resolução de conflitos; 3. acrescentar ao mundo os agentes que nasceram em casas desocupadas; 4. introduzir no mundo as novas fontes de comida de acordo com a função geradora de comida; 5. Mostrar o mundo resultante usando a interface definida na Secção 2.4. Idealmente todas as acções deveriam ser efectuadas em simultâneo mas, como vimos na Secção 1.2, a movimentação dos agentes e a sua alimentação pode causar situações de conflito; podemos ter por exemplo o caso de dois agentes tentarem movimentar-se para a mesma posição, ou o caso de dois agentes tentarem alimentar-se mas não haver comida suficiente para os dois. Assim, teremos de adoptar uma ordem pela qual as acções são realizadas. Essa ordem, bem como a resolução de conflitos, encontra-se descrita em detalhe no Apêndice A. 2.3 A Interacção com o Utilizador A simulação da evolução deverá resultar da invocação ( mundo-inicial tempo-final funcao-geradora-de-comida) onde mundo-inicial representa o mundo inicial, tempo-final indica o número de instantes que devem ser simulados e funcao-geradora-de-comida é uma função que dado um mundo gera um elemento do tipo comida que deverá ser adicionado ao mundo, ou retorna o valor false. A simulação deve mostrar a representação gráfica do estado inicial e de cada um dos estados intermédios da evolução; deve ainda retornar a representação externa do estado do mundo após a simulação de todos os passos (ver Secção 2.4). Deverá ser ainda disponibilizar a função (-um-passo mundo funcao-geradora-de-comida)
10 Pág. 10/17 que simula um passo da simulação tal como descrito na Secção 2.2. Deverá mostrar o estado do mundo obtido e retornar a sua representação externa. Os alunos que assim pretenderem poderão definir ainda a função (-inter mundo-inicial tempo-final funcao-geradora-de-comida) que permitirá uma interacção com o utilizador para que este possa controlar os parâmetros bem como a evolução da simulação. Poderão ainda incluir no relatório sugestões de novas abordagens e eventuais resultados da aplicação das mesmas. As actividades desenvolvidas neste sentido serão contempladas na avaliação da inovação (Ponto 4). 2.4 A Interface Por forma a visualizar a evolução do seu mundo em cada instante de tempo é disponibilizada uma interface gráfica. Para poder utilizá-la tem que: 1. Colocar na directoria que contém o seu programa o ficheiro interface.zo, e a pasta xpm disponíveis na página da cadeira; 2. No início do código deverá colocar a instrução: (require "interface.zo"). Esta interface providencia a função mostra-mundo, que recebe o mundo na sua representação externa (descrita em seguida) e apresenta de uma forma gráfica esse mundo. Invocações posteriores a esta função actualizam a imagem, permitindo-lhe ver a evolução do mundo. mostra-mundo: mundo-externo -> nada Representação Externa do Mundo Para haver uma separação clara entre a interface e o seu programa, estabeleceuse que a comunicação entre estes será feita através de uma representação externa do mundo. Logo, para utilizar a interface deverá começar por definir um método que converta a sua representação do mundo para a representação externa, passando depois como argumento para o mostra-mundo o mundo convertido. A representação externa é uma única string (cadeia de caracteres) 1. Esta string tem duas componentes separadas por um espaço (" "), a primeira é o tempo do mundo, a segunda representa o tabuleiro. O tempo do mundo é representado por uma string de caracteres numéricos, por exemplo a string "120" representa o instante de tempo 120. O tabuleiro é composto por um conjunto de pequenas strings separadas por espaços ou por mudanças de linha ("\n"), cada uma destas pequenas strings representa o conteúdo de uma posição no tabuleiro, os separadores têm o seguinte significado: " " - serve para separar as posições consecutivas do tabuleiro; "\n" - serve para separar as linhas do tabuleiro. 1 As strings são suportadas nativamente pelo Scheme. Consulte a documentação da linguagem ( onde se definem as funções de manipulação de strings. Posteriormente serão publicados na página alguns exemplos de utilização dessas funções.
11 Pág. 11/17 As pequenas strings entre os separadores permitem representar: agentes, espaços vazios, e quantidades de comida. agente - é representado por uma string que representa a população a que o agente pertence, mais nenhuma informação do agente é necessária no contexto da interface. Um exemplo de um agente será a string "Kenny". (Ver Secção sobre os possíveis nomes.) comida - é representada por uma string de caracteres numéricos, sendo esse número a quantidade de comida. Um exemplo de comida será a string "10", que significa a existência de 10 unidades de comida numa determinada posição. espaço vazio - é representado pela string "@". Para clarificar estas regras encontra-se na figura o mundo correspondente à representação externa: 3 Kyle\n@ Figura 6. Representação gráfica de uma string Velocidade da Simulação A invocação da função mostra-mundo será feita pelo procedimento a cada instante de tempo. Se não houver uma pausa entre invocações ao mostra-mundo, a simulação corre tão depressa que torna impossível a visualização dos vários instantes. Para controlar a velocidade de simulação foi disponibilizada a função velocidade: velocidade: real -> nada Esta função recebe um número real entre 0 e 10 (exclusive) e fixa a velocidade de simulação. Quanto mais próximo de zero, maior será a pausa imposta a seguir a cada invocação do mostra-mundo Gráficos, e Número Máximo de Sociedades Na pasta xpm encontra-se um conjunto de ficheiros de extensão *.xpm. Estes ficheiros são pequenas imagens que representam os agentes do nosso mundo. O aluno interessado poderá alterar essas imagens por outras de agentes mais do seu agrado, desde que não altere o tamanho das imagens. Os ficheiros espaco.xpm, comida.xpm, e desconhecido.xpm, são usados para o espaço vazio, para a comida, e para um elemento inválido (erros na representação externa), respectivamente. Os restantes ficheiros têm o nome: agente-<nome>.xpm, em que <nome> é o nome utilizado na representação externa para a sociedade na qual essa imagem é utilizada. O numero máximo de sociedades é portanto controlado pelo número de ficheiros agente-<nome>.xpm existentes na pasta xpm.
12 Pág. 12/17 3. Testes Será disponibilizado oportunamente na página da cadeira, secção do projecto, um conjunto de testes que permitirão testar certas situações de simulação controladas. É importante que o relatório inclua estes testes e mais alguns que os alunos considerarem relevantes, mostrando os resultados e discutindo os mesmos de uma forma crítica. 4. Avaliação Automática O programa será avaliado automaticamente, pelo que deve respeitar os tipos definidos anteriormente. Deverá respeitar os requisitos definidos na Secção 2.3 bem como o formato para a interface descrito na Secção 2.4. Trabalhos que não estejam em conformidade com estes requisitos serão penalizados em 3 valores. 5. Classificação A nota do projecto será baseada nos seguintes aspectos: 1) Execução correcta (35%) 2) Facilidade de leitura- abstracção procedimental, abstracção de dados, nomes escolhidos, paragrafação, qualidade dos comentários (25%) 3) Relatório (30%) 4) Estilo de programação e inovação nas perguntas. (10%) 6. Condições de realização e prazos O projecto deve ser realizado em grupos de 3 alunos. Os alunos de um grupo podem pertencer a qualquer turno das aulas práticas de qualquer das duas licenciaturas (LCEI e LERC). Os alunos devem proceder à inscrição do grupo através do sistema Fénix. O projecto deve ser entregue até às 17:00 horas do dia 19 de Dezembro de 2006, no secretariado do DEI (2º piso, Núcleo 1). Um modelo de relatório, que devem adaptar de acordo com as vossas necessidades, será disponibilizado no sistema Fénix. Os projectos em atraso serão aceites até ao dia 24 de Dezembro 2, sendo os alunos penalizados com 0,5 valores por cada dia de atraso. A partir das 16:00 do dia 24 não se aceitam mais projectos. Os grupos que entregarem os projectos até às 17:00 horas do dia 12 de Dezembro de 2006 no secretariado do DEI terão um bónus de 1 valor na nota do projecto. O projecto deve ser entregue dentro de uma capa ou encadernado, apresentando visivelmente o número do grupo e o número e nome dos seus autores. Projectos que não sejam entregues nestas condições serão penalizados com 3 valores. 2 Durante os dias 16 e 17 de Dezembro e na eventualidade de no dia 24 de Dezembro não haver ninguém no secretariado do DEI, o projecto deverá ser entregue na Portaria do Tagus ao cuidado da Professora Ana Paiva.
13 Pág. 13/17 Para além disso, a entrega do código por via electrónica é obrigatória e deverá ser feita através do Fénix; cada grupo deverá submeter um ficheiro.zip com os módulos para os diferentes TAIs bem como todos os outros ficheiros necessários para a correcta execução do programa. Um trabalho é considerado entregue no dia x se o relatório for entregue no secretariado do DEI até às 17:00 horas do dia x (16:00 no caso do dia 24 de Dezembro) e o código for entregue através do sistema Fénix até às 23:59 do dia x. Pode ou não existir uma discussão oral do projecto e/ou uma demonstração da funcionalidade do mesmo (sendo a discussão decidida caso a caso pelo corpo docente da disciplina). Projectos iguais, ou muito semelhantes, serão classificados com zero valores. O corpo docente da disciplina será o único juiz do que se considera ou não copiar num projecto.
14 Pág. 14/17 Apêndice A. Resolução de Conflitos em Para resolver as situações de conflito adoptamos uma ordem pela qual os agentes efectuam as suas acções. Assim, o primeiro agente a efectuar uma acção é o agente na posição (1,1) do mundo, seguido do agente na posição (1,2), e assim sucessivamente. No exemplo da Figura 7, o primeiro a efectuar a acção seria o Kenny-1-2, 3 depois seria o Cartman1-3, seguir-se-ia o Kenny-1-5, depois o Kyle-2-2, e assim sucessivamente até chegarmos à última posição do mundo. Figura 7. Prioridades nas acções dos agentes A primeira acção que é simulada no mundo é a acção global de remoção de todos os elementos que ultrapassaram a esperança de vida da sua sociedade. Assim, supondo que o agente Kenny-2-4 tem 6 anos de idade e a esperança de vida da sociedade Kenny é 5, devemos começar por retirar o agente Kenny-2-4 do mundo no instante t e obtemos o mundo representado na Figura 8. Figura 8. Mundo antes da fase de acções individuais 3 Neste texto usaremos a notação soc-x-y para denotar o agente da sociedade soc que se encontra na posição (x,y) do mundo.
15 Pág. 15/17 Seguidamente, temos de simular as acções de cada um dos agentes. Como referido acima, as acções individuais dos agentes são efectuadas por ordem de modo a evitarmos conflitos. Vamos ilustrar de seguida situações de conflito e as respectivas soluções. Todas as acções efectuadas têm por base o estado do mundo na Figura 8. Comecemos pelo agente Kenny-1-2. Como não existe comida na vizinhança do agente Kenny-1-2, teremos de avaliar qual o seu conforto físico e social na posição (1,2). Se os valores de conforto físico e social forem superiores às respectivas tolerâncias da sociedade Kenny, ele ficará na mesma posição, caso contrário, ele mover-se-á para a posição de maior conforto na sua vizinhança que esteja livre. Supondo que o agente não está contente na posição (1,2) ele escolherá a posição de maior conforto de entre as seguintes: (5,3), (1,1), (2,1) e (2,3) desempatando pela ordem indicada na Figura 4. O conforto da posição (5,3) é 1/16, o da posição (1,1) é 1/16, o da posição (2,1) é 10/16, e o da posição (2,3) é ½, sendo, por isso a posição (2,1) a de maior conforto para Kenny-1-2, Figura 9 (esquerda); seguidamente efectuamos a acção do agente Cartman-1-3. Suponhamos que Cartman-1-3 não está confortável socialmente na posição (1,3) ele terá de se mover para uma das posições adjacentes que esteja livre. As posições adjacentes a (1,3) são (5,2), (5,3), (5,4), (1,2), (1,4), (2,2), (2,3) e (2,4). Vemos imediatamente que as posições (5,2) e (2,2) estão ocupadas, restando por isso apenas as posições (5,3), (5,4), (1,2), (1,4), (2,3) e (2,4). Como pretendemos que as acções individuais representem um movimento colectivo, devemos notar que Cartman-1-3 não se pode mover para a posição (1,2) pois essa era a posição que era ocupada por Kenny-2-1 no início da fase de acções individuais, Figura 8. Temos por isso que as únicas posições disponíveis para Cartman-1-3 se movimentar são (5,3), (5,4), (1,4), (2,3) e (2,4). À excepção da posição (5,3) que tem um vizinho da sociedade Cartman e proporciona um conforto 1/16, qualquer das outras posições dará o mesmo conforto social a Cartman-1-3 (conforto 0), pois não têm vizinhos da sociedade Cartman. No entanto, duas delas, (2,3) e (2,4), contêm fontes de comida em posições adjacentes, dando assim um conforto (1/2). Para desempatar entre estas duas posições será usada a regra da Figura 4 e o agente mover-se-á para a posição (2,3), Figura 9 (direita).
16 Pág. 16/17 Figura 9. Mundo após movimentação de Kenny-1-2, Cartman-1-3, e Kenny-1-5 Efectuemos agora a movimentação de Kenny-1-5 e suponhamos que também ele não está confortável fisicamente na posição (1,5). Novamente, as posições adjacentes a (1,5) são (5,4), (5,5), (5,1), (1,4), (1,1), (2,4), (2,5) e (2,1). Destas, a posição (5,1) está ocupada e a posição (2,1) já foi ocupada pelo agente que estava na posição (1,2). Restam por isso as posições (5,4), (5,5), (1,4), (1,1), (2,4) e (2,5) livres. Notem que (2,4) era inicialmente ocupada por Kenny-2-4, que morreu logo no primeiro passo da simulação por ter ultrapassado o limite de idade. Esta posição continua no entanto a ser uma posição elegível para a movimentação de Kenny-1-5 pois estava livre no início da fase de acções individuais, Figura 8. A movimentação de Kenny-1-5 será para a posição (2,5) pois é a que lhe dá maior conforto, com 2 vizinhos da sociedade Kenny e 2 fontes de comida (18/16). Outro tipo de conflitos deriva do facto de mais de um agente estar a alimentar-se de uma mesma fonte de comida. Continuando com a nossa simulação, o próximo agente a efectuar uma acção é o Kyle-2-2. Suponhamos que o Kyle-2-2 pretende consumir as duas porções de comida existentes. Caso isso aconteça, a sua reserva de energia aumenta de 2 unidades e a comida presente na posição (3,1) desaparece, o que impossibilita que o agente Kyle-3-2 também se alimente. Note que de acordo com o estado do mundo antes das acções individuais, Figura 8, o agente Kyle-3-2 também teria direito a alimentar-se. Como esta acção foi impossibilitada por acção de um outro agente, o agente Kyle-3-2 ficará parado quando for a sua vez de realizar uma acção. Note que no caso de existir uma outra fonte de comida ao lado de Kyle- 3-2, ele tentará alimentar-se dessa fonte quando chegar a sua vez de agir. A simulação continuaria a ser feita para os restantes agentes e após a realização das acções individuais de cada agente, todos envelhecem um ano. Figura 10. Mundo após a fase de acções individuais
17 Pág. 17/17 Após a fase de acções individuais existe a fase de nascimento de novos agentes. Nesta fase devem ser percorridas todas as posições vazias do tabuleiro (já actualizado com as movimentações de todos os agentes, Figura 10) e, para cada uma delas, verificar se vai ocorrer algum nascimento. Os nascimentos de agentes de uma sociedade, tal como referido na Secção 1.2, ocorrem sempre que há uma concentração de agentes (não contabilizamos os agentes nascidos neste turno de simulação) dessa mesma sociedade em redor dessa posição. No caso de existirem duas ou mais sociedade nessas condições, não ocorre nascimento. Suponhamos que o número de progenitores necessários é 2 nas sociedades Cartman e Kyle, e 3 no caso da sociedade Kenny. Neste caso na fase de nascimentos nasceriam os agentes Cartman-1-1, Cartman-1-2, Cartman-1-3, Kyle-3-3, Cartman-4-1 e Cartman-4-2. Na posição (1,4) não ocorre nenhum nascimento pois Cartman-1-3 nasceu neste turno. Por razão semelhante não há nenhum conflito no nascimento de Cartman-4-2. Na posição (3,1) não ocorre nenhum nascimento porque existe um conflito entre Kenny e Kyle. Figura 11. Mundo após a fase de nascimentos Finalmente, a última fase de cada passo de simulação é a introdução de novas fontes de comida. Estas fontes de comida são geradas de acordo com uma função que é dada como argumento do problema.
Fundamentos de Programação. operações sobre grafos dirigidos.
Licenciatura em Engenharia Informática e de omputadores Fundamentos de Programação Projecto - Terceira Parte 27 de bril de 2012 Operações sobre grafos dirigidos O objectivo deste projecto é o desenvolvimento
Leia maisEncriptação de Mensagens
Instituto Superior Técnico Fundamentos da Programação 2016/2017 Enunciado do 1 o Projecto Data de entrega: 4 de Novembro de 2016 às 23h59 Encriptação de Mensagens Pretende-se com este trabalho a implementação
Leia maisFundamentos da Programação. Ano lectivo , 2 o Semestre Projecto Segunda Parte 1. Liberta o quadrado
Fundamentos da Programação Ano lectivo 2013-14, 2 o Semestre Projecto Segunda Parte 1 Liberta o quadrado O jogo Liberta o quadrado é um quebra-cabeças em que o jogador é confrontado com um tabuleiro de
Leia maisFundamentos da Programação. Ano lectivo , 2 o Semestre Projecto Primeira Parte 1. Nim
Fundamentos da Programação Ano lectivo 2013-14, 2 o Semestre Projecto Primeira Parte 1 Nim Nim é um jogo de estratégia matemática, que pode ser jogado casualmente usando um conjunto de objectos dispostos
Leia mais21090 Programação e-fólio Recurso 2013/2014. e-fólio Recurso
e-fólio Recurso O e-fólio de Recurso consiste na simulação do Jogo da Vida (http://pt.wikipedia.org/wiki/jogo_da_vida). Existe 4 alíneas, que devem ser realizadas sequencialmente, valendo cada alínea 1
Leia maisEstruturas de Dados I Enunciado do Trabalho Prático
Estruturas de Dados I Enunciado do Trabalho Prático Licenciatura em Engenharia Informática Universidade de Évora 2001/2002 1 Objectivo Pretende-se implementar uma base de dados sobre as viagens efectuadas
Leia maisInteligência Artificial
Inteligência Artificial Campus Alameda IST @ 007/008 5 de Maio de 008. Introdução O objectivo deste trabalho é desenvolver um solucionador automático em ANSI Common Lisp para o quebra-cabeças Picross.
Leia maisO Mundo das Margaridas
O Mundo das Margaridas Enunciado da 2 a fase de entrega do projecto Fundamentos da Programação e Elementos de Programação 12 de Dezembro de 2007 Aviso: Este enunciado descreve o que é pretendido na segunda
Leia maisManual do Gestor da Turma
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Turma João Braga http://www.fe.up.pt/~ei97027/lia.html
Leia maisFundamentos da Programação. Ano lectivo Segundo Projeto. Picross
Fundamentos da Programação Ano lectivo 205-6 Segundo Projeto Picross O jogo Picross é um quebra-cabeças sobre uma imagem binária, em que as células de uma grelha devem ser coloridas ou deixadas em branco
Leia maisTECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO SISTEMAS DE GESTÃO DE BASE DE DADOS FORMULÁRIOS
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO SISTEMAS DE GESTÃO DE BASE DE DADOS FORMULÁRIOS Os constituem uma outra forma de visualizar os dados armazenados nas tabela ou disponibilizados numa consulta. Também
Leia maisZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011
Manual Profissional BackOffice Mapa de Mesas v2011 1. Índice 2. INTRODUÇÃO... 2 3. INICIAR O ZSRest Backoffice... 3 1 4. Confirmar desenho de mesas...... 4 b) Activar mapa de mesas... 4 c) Zonas... 4 5.
Leia maisManual de Utilizador
Manual de Utilizador Introdução Este manual de utilizador tem por objectivo a introdução ao programa de gestão de um campeonato de voleibol aos seus utilizadores. Para isso, a informação será organizada
Leia maisProjecto de Lógica para Programação Os suspeitos do costume
Projecto de Lógica para Programação Os suspeitos do costume Licenciatura em Engenharia Informática e de Computadores Instituto Superior Técnico 2012-2013 1 Introdução A Avó Einstein vive num bairro problemático,
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Funções e Vectores http://tele1.dee.fct.unl.pt
Leia maisElementos de Programação Projecto de Biocomputação
Elementos de Programação Projecto de Biocomputação Departamento de Matemática, IST Novembro de 2016 Amoebots A simulação de cenários de vida artificial desempenha um papel importante no estudo de sistemas
Leia maisInteligência Artificial Projecto 1
Bantumi ESPECIFICAÇÕES O projecto destina-se a resolver um conjunto de problemas do jogo Bantumi utilizando métodos de procura em espaço de estados. Bantumi é um jogo derivado do jogo Mancala de origem
Leia maisPrimeiro Trabalho: Desempenho de protocolos de encaminhamento em redes ad hoc móveis
Primeiro Trabalho: Desempenho de protocolos de encaminhamento em redes ad hoc móveis Rodolfo Oliveira rado@fct.unl.pt 1. Objectivos Neste trabalho pretende se realizar uma análise comparativa do desempenho
Leia maisExame de 1ª Época Introdução à Programação IGE e ETI 2003/02/25-1º semestre de 2002/2003 ISCTE
Recibo do Exame de 1ª Época de Introdução à Programação (IGE e ETI), 2003/02/25 1º semestre de 2002/2003, ISCTE Nome do aluno:... Número do aluno:... Assinatura do docente:... Notas: Exame de 1ª Época
Leia maisManual do Cibernauta
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Manual do Cibernauta Versão 1.1 João Braga http://www.fe.up.pt/~ei97027/lia.html
Leia maisBots em Counter Strike
Agentes Autónomos e Sistemas Multiagente 2º Semestre, 2005-2006 Departamento de Engenharia Informática Enunciado do projecto Bots em Counter Strike Personagens sintéticas inteligentes em ambiente competitivo
Leia maisEngenharia de Software 2º Semestre de 2006/2007
Engenharia de Software 2º Semestre de 2006/2007 Segundo enunciado detalhado do projecto: Portal OurDocs ic-es+alameda@mega.ist.utl.pt ic-es+tagus@mega.ist.utl.pt 1. Introdução Neste segundo enunciado do
Leia maisInstituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica de Telecomunicações de Computadores Guia de utilização do Moodle (Versão 1.6.2) Vista do Professor Versão 2.0 Outubro
Leia maisInteligência Artificial Projecto 2
Bantumi ESPECIFICAÇÕES O projecto destina-se a resolver um conjunto de problemas do jogo Bantumi utilizando métodos de procura em espaço de estados. Bantumi é um jogo derivado do jogo Mancala de origem
Leia maisJURINFOR JURIGEST 4.4 Módulo de Contencioso e Pré-Contencioso Refª Documento: V
JURINFOR JURIGEST 4.4 Módulo de Contencioso e Pré-Contencioso Refª Documento: V1.1-2007.09.05 Índice 1. Activação do Módulo de Contencioso e Pré-Contencioso... 5 2. Gestão de informação relativa a "partes
Leia maisProjeto de Programação Entrega Intermédia
Programação 2014/2015 Mestrado em Engenharia Electrotécnica e de Computadores (MEEC) Robot de Limpeza - iclean Projeto de Programação Entrega Intermédia 1 Introdução O objetivo deste projeto é desenvolver
Leia mais2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Capítulo 5 Abstracção de dados 5. Exercícios de revisão. Diga o que é um tipo abstracto de informação.. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Leia maisAs opções de menu Análise ABC e Plano Trabalhos saíram do menu Objectos e passaram para o menu Ferramentas.
Documento da versão PRODUTO ManWinWin DATA INÍCIO 18-10-2016 VERSÃO 5.4.2.0 DATA FECHO 10-01-2017 Novas Funcionalidades Preferências No separador Parque, as opções referentes ao registo Histórico Utilização
Leia maisCRIAÇÃO E PERSONALIZAÇÃO DE PÁGINAS PESSOAIS NO SISTEMA FENIX
CRIAÇÃO E PERSONALIZAÇÃO DE PÁGINAS PESSOAIS NO SISTEMA FENIX Para activar a página pessoal que o Fénix define de forma automática para cada utilizador, é necessário aceder ao sistema utilizando os códigos
Leia maisESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007
ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2006/2007 TRABALHO PRÁTICO Nº
Leia maisDepartamento de Matemática da Universidade de Coimbra 2011/2012 Programação Orientada para os Objectos Projecto 2
Departamento de Matemática da Universidade de Coimbra 2011/2012 Programação Orientada para os Objectos Projecto 2 Simulador de um Sistema de Filas de Espera Descrição Sumária: Uma empresa proprietária
Leia maisProjeto de Introdução à Arquitetura de Computadores. Corridas de Bicicleta 2013 / 2014 LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES
LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES Projeto de Introdução à Arquitetura de Computadores Corridas de Bicicleta 2013 / 2014 INSTITUTO SUPERIOR TÉCNICO Índice 1. Objetivo... 3 2. Descrição
Leia maisProjecto de Algoritmos e Estruturas de Dados
Projecto de Algoritmos e Estruturas de Dados Licenciatura em Engenharia Electrotécnica e de Computadores Licenciatura em Engenharia Electrónica 1 o ano, 2 o Semestre, 2005/2006 Instituto Superior Técnico
Leia maisAplicações de Escritório Electrónico
Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Microsoft Word Folha de trabalho 6 Formatação de estilos
Leia maisO Mundo das Margaridas
O Mundo das Margaridas Enunciado da 1ª parte do projecto 2ªfase de Fundamentos da Programação e 2ªfase de Elementos de Programação 19 de Novembro de 2007 Aviso: Este enunciado descreve o que é pretendido
Leia maisCorrigir um valor de erro
Corrigir um valor de erro Se uma fórmula não conseguir avaliar adequadamente um resultado, o Microsoft Office Excel mostrará um valor de erro. Cada tipo de erro tem causas e soluções diferentes. Corrigir
Leia maisDisciplina de Base de Dados Enunciado do Projeto Parte 1
Disciplina de Base de Dados Enunciado do Projeto Parte 1 O projeto da disciplina de Bases de Dados consiste na conceção de uma base de dados para suporte a uma aplicação descrita na Secção 2, sendo esta
Leia maisO Manual do Kiriki. Albert Astals Cid Eugene Trounev Tradução: José Pires
Albert Astals Cid Eugene Trounev Tradução: José Pires 2 Conteúdo 1 Introdução 5 2 Como Jogar 6 3 Regras do Jogo, Estratégias e Sugestões 8 3.1 Regras do Jogo........................................ 8 4
Leia maisTrabalho Prático Data de Entrega : 30 de Maio
Escola Superior de Tecnologia / Instituto Politécnico de Setúbal Algoritmos e Tipos Abstractos de Informação 2005/2006 Trabalho Prático Data de Entrega : 30 de Maio O problema Pretende-se realizar um jogo
Leia maisCapítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma
Leia maisTeoria da Computação. 2006/2007 Trabalho prático nº 1. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1
2006/2007 Trabalho prático nº 1 Trabalho realizado por: Pedro Oliveira (501062444) Rui Costa (501062452) Turma: TP1 1 - Introdução O objectivo deste trabalho era implementar um simulador de Autómatos Finitos
Leia maisMelhor caminho entre duas estações de metro
Melhor caminho entre duas estações de metro Concepção e Análise de Algoritmos Turma Nuno Machado Matos Tiago Daniel Sá Cunha Data: 11 de Junho de 2010 Introdução No âmbito da realização do projecto da
Leia maisSISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2015/2016 Trabalho 3 Circuitos Combinatórios Típicos
SISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2015/2016 Trabalho 3 Circuitos Combinatórios Típicos 1. Introdução Este trabalho foi concebido para que os alunos façam a concepção de um circuito lógico usando
Leia maisNORMAS GERAIS DE AVALIAÇÃO
NORMAS GERAIS DE AVALIAÇÃO Preâmbulo Estas Normas Gerais de Avaliação têm como objectivo enquadrar o funcionamento das diferentes Unidades Curriculares 1 dos cursos de Licenciatura, Mestrado 2 e Mestrado
Leia maisComputação e Programação Exame Época de recurso
Nome : Número : Computação e Programação 2013-2014 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de recurso 29 de Janeiro de 2014 v
Leia maisObjectivos. Programação I (2010/2011) 2 o Trabalho de Programação
Programação I (2010/2011) 2 o Trabalho de Programação Introdução As progressões aritméticas e geométricas são exemplos de sucessões numéricas onde o elemento n + 1 depende do elemento n e de uma constante.
Leia maisUniversidade Federal de Alfenas
Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 15 Máquinas de Turing (parte 2) humberto@bcc.unifal-mg.edu.br Última Aula Uma Máquina de Turing (MT) possui: uma fita infinita para representar
Leia maisComputação e Programação
Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 10 Exemplo de desenvolvimento de Programa Modular: Máquina de venda de bilhetes D.E.M. Área Científica de Controlo Automação e
Leia maisCurso Ano Semestre Docente. 1º 2º Bruno Silva
Curso Ano Semestre Docente CCO: Licenciatura em Comunicação, Cultura e Organizações 1º 2º Bruno Silva Objectivos: Dotar os alunos de competência na Área das Tecnologias de Informação, com particular ênfase
Leia maisO Manual do Picmi. Jakob Gruber Tradução: José Pires
Jakob Gruber Tradução: José Pires 2 Conteúdo 1 Introdução 6 2 Como Jogar 7 3 Regras do Jogo, Estratégias e Sugestões 8 3.1 Regras............................................ 8 4 Apresentação à Interface
Leia maisModelação Engenharia de Software
Modelação Engenharia de Software 2 o Semestre de 2008/2009 3 a entrega: Requisitos do sistema Test O Matic Sistema Nacional para as Competências Profissionais de Utopia 11 de Maio de 2009 1 Introdução
Leia maisX-IntegConfig. Configuração da integração do X-Mobile. Versão 1.0.7
X-IntegConfig Configuração da integração do X-Mobile Versão 1.0.7 Índice - Introdução...2 - Como usar o X-IntegConfig...3 - Detalhes do ficheiro de importação...5 (a) Edição de Instrução SQL...8 (b) Configuração
Leia maisLaboratório de Informática Avançada Automatização de Horários Manual do Professor
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Professor João Braga http://www.fe.up.pt/~ei97027/lia.html
Leia maisDocumento da versão. Novas Funcionalidades. Ecrã Principal. Ecrã Principal Preferências. Parametrização Trabalhos Séries OT
Documento da versão PRODUTO ManWinWin DATA INÍCIO 13-04-2015 VERSÃO 5.3.1.0 DATA FECHO 24-07-2015 Novas Funcionalidades Ecrã Principal No módulo Parque passou a ser possível escolher a árvore que se pretende
Leia mais1 - Ambiente de desenvolvimento
Neste documento começa-se por apresentar o ambiente de desenvolvimento integrado do Visual Basic (menu bar, toolbars, toolbox, project explorer window, properties window, form designer e code editor window).
Leia maisEngenharia de Software
Engenharia de Software 2 o Semestre de 2006/2007 Primeiro enunciado detalhado do projecto: Portal OurDocs ic-es+alameda@mega.ist.utl.pt ic-es+tagus@mega.ist.utl.pt 1 Introdução O enunciado base do projecto
Leia maisComo construir uma animação em Excel Proporcionalidade Directa. Gráfico da função y = k.x
Como construir uma animação em Excel Proporcionalidade Directa. Gráfico da função y = k.x Supõe que um carro viaja de Lisboa ao Porto (~300 km) a uma velocidade constante de 90 km/h. Neste caso a distância
Leia maisMaterial Teórico - Módulo Matrizes e Sistemas Lineares. Sistemas Lineares - Parte 2. Terceiro Ano do Ensino Médio
Material Teórico - Módulo Matrizes e Sistemas Lineares Sistemas Lineares - Parte 2 Terceiro Ano do Ensino Médio Autor: Prof Fabrício Siqueira Benevides Revisor: Prof Antonio Caminha M Neto 1 A representação
Leia maisAgentes em Counter Strike
Agentes Autónomos e Sistemas Multiagente 2º Semestre, 2007-2008 Departamento de Engenharia Informática Enunciado do projecto Agentes em Counter Strike 1 de Maio de 2008 1 Introdução O objectivo do projecto
Leia maisOBMEP 2010 Soluções da prova da 2ª Fase Nível 2. Questão 1
Questão a) Para saber o número que deve dizer ao matemágico, Joãozinho deve fazer quatro contas: ª conta: multiplicar o número no cartão escolhido por 2; 2ª conta: somar 3 ao resultado da primeira conta;
Leia maisUFCD 786 Instalação e configuração de sistemas de bases de dados
Pág 2 UFCD 786 Instalação e configuração de sistemas de bases de dados Formadora Elsa Almeida Índice 1 Introdução... 3 2 Formulários... 4 2.1 Criar Formulários... 4 2.2 Inserção de Novos Registos e Manipulação
Leia maisO Manual do Kapman. Thomas Gallinari Tradução: José Pires
Thomas Gallinari Tradução: José Pires 2 Conteúdo 1 Introdução 6 2 Como Jogar 7 3 Regras do Jogo, Estratégias e Sugestões 8 3.1 Regras............................................ 8 3.2 Estratégias e Dicas.....................................
Leia maisFicha 1 Noções de sequência e decisão em algoritmia
Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução
Leia maisManual Técnico. Sudoku. Disciplina de. Programação Lógica e Funcional. Rui Madeira. Gustavo Graça Patrício Nº Turma A - Diurno
Disciplina de Programação Lógica e Funcional Curso de Engenharia Informática Industrial Ano Lectivo de 2005/2006 Manual Técnico Sudoku Trabalho Executado por: Gustavo Graça Patrício Nº 4757 - Turma A -
Leia maisTeoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)
Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q
Leia maisUm SGBD permite que cada utilizador tenha uma vista diferente (abstrata) do conteúdo da base de dados;
1 Bioinformatica Conceitos Básicos Camadas de abstração Um SGBD permite que cada utilizador tenha uma vista diferente (abstrata) do conteúdo da base de dados; Cada utilizador necessita de ter acesso a
Leia maisFORMAÇÃO DE MICROSOFT EXCEL 2010
FORMAÇÃO DE MICROSOFT EXCEL 2010 Mário de Almeida Pedro, M. Sc. Novembro 2013 Bemvindo Identificação da UFCD UFCD nº 0756 Folha de Cálculo, com a duração de 50 horas Microsoft Excel 2010 Objectivos: No
Leia maisTeste do Programa Writer do OpenOffice
Teste do Programa Writer do OpenOffice Patrícia Barrosa Filipe mei04013 Disciplina: Teste e Qualidade de Software Mestrado em Engenharia Informática - FEUP 1 Índice Introdução... 3 Oppenoffice Writer...
Leia maisGatos & Cães Simon Norton, 1970s
Gatos & Cães Simon Norton, 1970s Um tabuleiro quadrado 8 por 8. 28 peças gato e 28 peças cão (representadas respectivamente por peças negras e brancas). Ganha o jogador que realizar a última jogada. zona
Leia maisManual do KReversi. Clay Pradarits Desenvolvimento: Mario Weilguni Revisão: Lauri Watts Tradução: José Pires
Clay Pradarits Desenvolvimento: Mario Weilguni Revisão: Lauri Watts Tradução: José Pires 2 Conteúdo 1 Introdução 5 2 Como Jogar 6 3 Regras do Jogo, Estratégias e Sugestões 7 3.1 Básicos............................................
Leia maisManual de Utilização ZSPDA
Manual de Utilização ZSPDA Ao entrar no software de PDA, é mostrado o seguinte menu. (Fig. 1) 1 (Fig. 1) A data mostrada no menu, indica a data de facturação. Para alterar essa data, o utilizador deverá
Leia maisSISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2013/2014 Trabalho 2 Circuitos Combinatórios Típicos
SISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2013/2014 Trabalho 2 Circuitos Combinatórios Típicos 1. Introdução Este trabalho foi concebido para que os alunos façam a concepção de um circuito lógico usando
Leia maisTecnologias da Informação e Comunicação
Através da pesquisa rápida do Windows digita Excel e abre o programa. Cria uma pasta na tua pen de nome Excel. Guarda o teu trabalho com o nome finanças. Atenção: Em qualquer altura podes consultar os
Leia maisO Manual do Bovo. Aron Bostrom Eugene Trounev Tradução: José Pires BOVO N 5
Aron Bostrom Eugene Trounev Tradução: José Pires BOVO N 5 2 Conteúdo 1 Introdução 5 2 Como jogar 6 3 Regras do Jogo, Estratégias e Sugestões 8 3.1 Regras do Jogo........................................
Leia maisEngenharia de Software
Sumário Engenharia de Software Modelos de desenvolvimento de software Fases de desenvolvimento Programação modular Abordagem top-down e bottom-up Linguagens de programação: Compilação / Interpretação Aplicação
Leia maisSemáforo Autor: Alan Parr. Avanço Autor: Dan Troyka, Material Um tabuleiro quadrado 7 por peças brancas e 14 peças negras.
Avanço Autor: Dan Troyka, 2000 Material Um tabuleiro quadrado 7 por 7. 14 peças brancas e 14 peças negras. Objectivo posição inicial Um jogador ganha se chegar com uma das suas peças à primeira linha do
Leia maisTrabalho Prático de Técnicas de Programação (2003/2004)
Trabalho Prático de Técnicas de Programação (2003/2004) Regras para a implementação do trabalho prático: 1. O trabalho é realizado individualmente ou em grupos de dois alunos. 2. O trabalho é atribuído
Leia maisGestão de Base de dados Formulários
Gestão de Base de dados Formulários Ano Letivo 2014/2015 Professora: Vanda Pereira Formulários Os Formulários constituem uma outra forma de visualizar os dados armazenados nas tabela ou disponibilizados
Leia maisDispor e organizar folhas de cálculo
Dispor e organizar folhas de cálculo O Excel fornece várias funcionalidades para o ajudar a trabalhar e visualizar com as folhas de cálculo. Fixar linhas e colunas Pode fixar (ou bloquear) linhas e colunas
Leia maisMinistério das Finanças Instituto de Informática. Departamento de Sistemas de Informação. Descontos para a A.D.S.E.
Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Descontos para a A.D.S.E. Versão 6.0-2009 ÍNDICE 1 OBJECTIVO 3 2 TRATAMENTOS PRÉVIOS 3 2.1 Situação Remuneratória
Leia maisTrabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores
s Práticos Programação II Curso: Engª Electrotécnica - Electrónica e Computadores 1. Objectivos 2. Calendarização 3. Normas 3.1 Relatório de Progresso 3.2 Relatório Final 3.3 Avaliação 4. Propostas 1.
Leia maisIntrodução à Computação. Programas Básicos. ISEP DEI, Angelo Martins 2006 Programas Básicos - 1
Introdução à Computação Programas Básicos ISEP DEI, Angelo Martins 2006 Programas Básicos - 1 Conteúdo Exemplo de um programa Apresentação sumária da construção de um programa em VB. Objectos e o mecanismo
Leia maisConvertConta Versão 1.1
ConvertConta 2012 Versão 1.1 Dezembro 2011 Índice Índice... 2 Introdução... 3 Conversão do Plano de Contas... 4 Criação do documento de abertura... 12 Empresas com movimentos no exercício 2012... 12 Pg
Leia maisearte Portal de Arte e Cultura
v 2.0 Tutorial Guia Rápido de Utilização 2008-2011 SIQuant Engenharia do Território e Sistemas de Informação, Lda. Web: www.siquant.pt E-mail: mail@siquant.pt Copyright SIQuant 2008-2011. Todos os direitos
Leia maisTECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO SISTEMAS DE GESTÃO DE BASE DE DADOS CONCEITOS BÁSICOS
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite um rápido e fácil acesso aos dados; Acelera os processos de
Leia maisUm sistema de difusão de informação a nível da aplicação
Um sistema de difusão de informação a nível da aplicação Projecto de Redes de Computadores I - 2008/2009 LEIC IST, Tagus Park 21 de Setembro de 2008 1. Sumário O projecto pretende desenvolver um sistema
Leia maisCAMPUS VIRTUAL. Manual de utilização. Docentes
CAMPUS VIRTUAL Manual de utilização Docentes CTM JANEIRO 2015 1. Objetivo do Documento 02 2. Acesso ao Campus Virtual 02 Acesso através do site ISCIA - iscia.edu.pt Acesso direto campus.iscia.edu.pt 3.
Leia mais5. Gestão das classificações resultantes dos processos de avaliação da plataforma
MOODLE - NÍVEL II ACTIVIDADES 5. Gestão das classificações resultantes dos processos de avaliação da plataforma As Classificações, que se encontra no bloco Administração, permitem ao professor para executar
Leia maisAPROG. Civil. Programas Básicos. ISEP DEI, Angelo Martins 2006 ISEP DEI, António Silva Programas Básicos
Conteúdo Exemplo de um programa Apresentação sumária da construção de um programa em VB. Objectos e o mecanismo de eventos Apresentação dos conceitos básicos de programação em ambiente MS Windows. Tipos
Leia maisManual do Gestor das Salas
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor das Salas João Braga http://www.fe.up.pt/~ei97027/lia.html
Leia maisGUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS SISTEMA DE GESTÃO PARA EMBALAGENS NÃO REUTILIZÁVEIS
GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS SISTEMA DE GESTÃO PARA EMBALAGENS NÃO REUTILIZÁVEIS Versão: 1.0 Data: 05-06-2009 Índice Acesso e estados dos Formulários... 3 Escolha do Formulário e submissão...
Leia maisPara visualizar corretamente configurar a tela para 1024 x 768 pixels. Tabelas
Para visualizar corretamente configurar a tela para 1024 x 768 pixels Tabelas Sumário Alinhamento de conteúdo Autoformatação Barra suspensa Como criar uma tabela Como excluir elementos Como inserir elementos
Leia maisFicha prática nº 3. SGBD Microsoft Access. Objectivo: Criação de queries e definição de controlo calculado
Instituto Superior Politécnico de Viseu Escola Superior de Tecnologia Departamento de Informática Ficha prática nº 3 SGBD Microsoft Access Objectivo: Criação de queries e definição de controlo calculado
Leia maisConcepção e Fabrico Assistido por Computador
Concepção e Fabrico Assistido por Computador João Pedro Amorim Lobato: gei00017@fe.up.pt Turma: LGEI Trabalho sobre Regressões em Visual Basic Licenciatura em Gestão e Engenharia Industrial
Leia maisFundamentos de Programação
Licenciatura em Engenharia Informática e de Computadores Fundamentos de Programação Trabalho para casa 22 de Setembro de 2008 Este trabalho corresponde à instalação, no seu computador, do interpretador
Leia maisCOMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN
COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN Enunciado do Projecto Data limite para entrega da Parte 1: 12 de Novembro de 2010. Data limite para entrega da Parte 2: 17 de Dezembro de 2010.
Leia maisExercícios de Excel com Programação em VBA. Luís Vieira Lobo
Exercícios de Excel com Programação em VBA Luís Vieira Lobo Enunciados 1) Considere o seguinte livro Excel constituído pelas folhas de cálculo Pauta e Exame (ver Fig. 1 e Fig. 2). Fig. 1 Folha de cálculo
Leia maisImportação de frações
1. Finalidade Permitir a introdução dos dados gerais das frações a partir de um ficheiro excel. 2. Descrição Quando se está a introduzir um novo condomínio na plataforma, usando o assistente de criação,
Leia maisProdução de tutoriais. Suellem Oliveira
Prefeitura de Volta Redonda Secretaria Municipal de Educação Implementação de Informática Aplicada à Educação Produção de tutoriais Suellem Oliveira Jclic Completar Textos Para a produção deste Tutorial
Leia mais