O Mundo das Margaridas
|
|
- Vera Andrade da Mota
- 7 Há anos
- Visualizações:
Transcrição
1 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 fase de entrega do projecto para as cadeiras de Fundamentos da Programação e Elementos de Programação. É o segundo enunciado de entre três que definem cada uma das três fases do projecto. Eventuais correcções posteriores ao lançamento deste enunciado, bem como explicações adicionais que possam ajudar na elaboração do projecto, serão disponibilizadas na página da cadeira na secção Projecto até ao dia 23 de Dezembro. Esses anúncios terão valor oficial, pelo que a leitura deste enunciado deve obrigatoriamente ser completada com consultas regulares à referida página. O prazo de entrega desta fase do projecto é dia 03 de Janeiro de 2008 às 22h00. 1 Contexto No primeiro enunciado do projecto foi introduzido o Mundo das Margaridas, um modelo simplificado de um planeta que se encontra na proximidade de um sol, e que é habitado apenas por margaridas. Estas margaridas podem ter diferentes cores, e mais importantemente, diferentes albedos, exibindo assim diferentes capacidades de absorção da luz solar. Ao absorver ou reflectir a luz solar, as margaridas influenciam a temperatura local à sua volta, podendo torná-la mais baixa ou mais elevada do que a temperatura planetária. Assim, as populações de margaridas têm a capacidade de intervir no seu ambiente, regulando a sua temperatura local. No modelo original Daisyworld, as margaridas podem ter apenas uma de duas cores branca ou preta. No entanto, tal como foi mencionado no enunciado anterior, o nosso modelo será ligeiramente mais complexo, e permitirá o aparecimento de margaridas com várias tonalidades, através de mutações genéticas que poderão ocorrer no momento da reprodução de cada margarida. 1
2 Na primeira fase do projecto foram apresentadas e explicadas as várias fórmulas que regem o Mundo das Margaridas. O trabalho proposto consistiu na implementação de um conjunto de procedimentos que traduzissem essas fórmulas. Nesta fase de elaboração do projecto daremos mais atenção à distribuição espacial no planeta das Margaridas, e desenvolveremos ainda os aspectos da geração de aleatoriedade e da representação do planeta e das margaridas. O objectivo desta fase é a apreensão da metodologia dos Tipos Abstractos de Informação (TAIs). 2 Descrição do modelo (continuação) 2.1 Aleatoriedade Geração de números pseudo-aleatórios. As regras que regem o Mundo das Margaridas têm uma componente probabilística, e consequentemente, as simulações terão um certo grau de não-determinismo. Por outras palavras, repetidas execuções do programa não produzirão as mesmas configurações do planeta. Para obter o efeito da aleatoriedade, deverá ser utilizado o procedimento gerador, fornecido na página da cadeira. Este procedimento pode ser chamado de duas maneiras: 1. (gerador "inicializa" semente H V) Quando gerador é chamado tendo como primeiro argumento a cadeia de caracteres "inicializa", um gerador de números pseudo-aleatórios 1 é inicializado com o inteiro semente entre 0 e A partir desse momento passará a ser possível gerar números aleatórios para cada instante e posição numa grelha com H linhas e V colunas. 2. (gerador "aleatorio" t h v) Quando gerador é chamado tendo como primeiro argumento a cadeia de caracteres "aleatorio", é retornado um novo número aleatório correspondente ao instante t e posição (h, v). Esse número será um inteiro no intervalo {0, }. O número aleatório que é gerado é completamente determinado pela semente com que o gerador tenha sido inicializado, e pelo instante e posição 1 Um gerador de números pseudo-aleatórios é um algoritmo que produz uma sequência de números que aproxima as propriedades dos números aleatórios. A sequência gerada não é verdadeiramente aleatória daí a designação de pseudo por ser determinada por um estado inicial, denominado frequentemente semente. 2
3 para o qual se gera o número. Sendo assim, pode-se concluir que existirão 2 31 possíveis execuções para o mesmo programa. Na avaliação do projecto vamos tirar partido deste facto do seguinte modo: um dos parâmetros do programa será a semente do gerador de números pseudo-aleatorios; assim, todos os programas correctos que recebam o mesmo inteiro como semente originarão exactamente o mesmo comportamento, tornando possível a avaliação automática. Para este mecanismo funcionar, a inicialização do gerador deve ser feita uma única vez no início do programa. Probabilidades. Dado que os números pseudo-aleatórios gerados pelo processo acima se encontram no intervalo {0, }, decidir a ocorrência de um determinado evento com a probabilidade p é equivalente a testar se o número x que é gerado satisfaz a condição x < p (2 31 1). Propagação de margaridas. Quando, numa mudança de instante t para t + 1, se decide que uma nova margarida deve aparecer num outro ponto do planeta, é necessário decidir em que posição ela deve aparecer. Tal como foi mencionado no primeiro enunciado do projecto, essa posição será escolhida aleatoriamente. Para isso há que considerar o número aleatório x gerado para o instante anterior t e posição da margarida mãe. A partir deste x, é possível obter uma posição num planeta de H linhas e V colunas x mod (H V ) em que cada posição é designada por um número entre 0 e H V 1, preenchendo as posições a partir do canto superior esquerdo, e percorrendo todas as linhas uma a uma da esquerda para a direita e de cima para baixo. O resultado da escolha aleatória de uma posição no planeta não resulta necessariamente numa posição vazia. No caso da posição não ser vazia, deve ser procurada a próxima posição vazia, pesquisando a grelha sequencialmente linha a linha da esquerda para a direita, e de cima para baixo, a partir da posição escolhida inicialmente. Quando for atingida a última posição da grelha, a pesquisa continua na mesma direcção a partir da posição (0, 0) da grelha, até à posição inicial. No caso de não existir nenhuma posição vazia para a margarida nascer, então a margarida não nasce. Mutações Quando, numa mudança de instante t para t + 1, uma margarida se reproduz, criando uma nova margarida, poderá ocorrer um erro de cópia do seu DNA, pelo que a nova margarida não é necessariamente igual à margarida mãe. No nosso mundo, a mutação pode ocorrer apenas a nível 3
4 do gene que determina o albedo da nova margarida. Isto significa que a nova margarida poderá ter um albedo diferente do da mãe. A probabilidade com que as mutações podem ocorrer será um parâmetro do modelo, designada probabilidade de mutação, e representada por M. O novo albedo (α f ) será obtido a partir do número aleatório x gerado para o instante anterior t e posição da mãe, bem como a partir do albedo α m da mãe, através da fórmula: { αm 1 3 α f =.(α m x ) se x < α m α m ( x α x m) se α m 2.2 Implementação do autómato celular O sistema de coordenadas. Tal como foi descrito no enunciado anterior, as possíveis localizações de margaridas no planeta são referenciadas usando duas coordenadas (h, v), em que h corresponde à linha em que a posição se encontra, e v corresponde à coluna em que a posição se encontra. Assim, num planeta com H linhas e V colunas, as possíveis localizações têm coordenadas 0 h < H e 0 v < V quando H e V > 0. Considera-se que um planeta com H ou V = 0 não tem posições. Convenciona-se que a posição (0, 0) representa a posição do canto superior esquerdo da grelha. Um novo instante. A cada passagem de instante, uma nova configuração C t+1 do planeta deve ser gerada a partir da configuração no instante anterior C t. A configuração C t do planeta deve ser analisada a partir do canto superior esquerdo, percorrendo, da esquerda para a direita, e de cima para baixo todas as células de cada linha. Para cada margarida encontrada, deve decidir-se qual a nova etapa da sua vida: ela poderá sobreviver ou morrer com uma certa probabilidade, e no caso de sobreviver, poderá reproduzir-se com outra probabilidade (conforme especificado no primeiro enunciado). Todas as decisões referentes à nova etapa na vida das margaridas fazemse com base na configuração C t (do instante anterior). Por exemplo, no caso de ela vir a gerar uma nova margarida numa nova localização (vazia) do planeta, a procura de uma posição vazia será feita com base em C t. Esta regra implica que poderá haver mais do que uma nova margarida a surgir na mesma posição do instante seguinte. A desambiguação deste caso será feita dando precedência à primeira margarida a ser gerada nessa posição. Por outras palavras, as margaridas seguintes destinadas a nascer em posições já ocupadas não vingam e pura e simplesmente não nascem. 4
5 Representação externa do planeta e das margaridas Enquanto que a representação interna isto é, em Scheme do planeta é deixada ao critério de cada grupo, a representação externa isto é, aquela que é utilizada para o programa ler uma configuração inicial do planeta (input), ou imprimir configurações resultantes da simulação (output) deverá respeitar regras muito precisas. Tal como já foi dito, a avaliação automática dos projectos será feita com base na comparação entre o output produzido e o output correcto, mediante o input que é dado. A representação externa de um planeta é uma única string S (cadeia de caracteres), satisfazendo o seguinte formato: A string S é composta por uma sequência de strings s, cada uma delas seguida de uma barra diagonal ( / ). Cada string s é composta por uma sequência de pequenas strings p separadas entre si por uma única barra vertical ( ). Cada string p representa o conteúdo de uma posição na grelha. Se a posição for vazia, p consiste num único caracter espaço ( ) entre os separadores mencionados acima. Se a posição for ocupada por uma margarida, então p constitui a cadeia de caracteres que consiste na representação externa das margaridas (definida a seguir). A representação externa de uma margarida é uma única string p (cadeia de caracteres) constituída por três strings a 1, a 2 e a 3 separadas pelo caracter hífen (, ), em que: a 1 representa o albedo da margarida nessa posição. a 2 representa a temperatura mínima de sobrevivência da margarida nessa posição a 3 representa a temperatura máxima de sobrevivência da margarida nessa posição A título de exemplo, a cadeia de caracteres 0.21,10,30 / ,12, ,15,45 / 0.1,15,40 / 0.21,15,45 / corresponde à representação externa de um planeta com a configuração mostrada na Figura 1. Note que não deve aparecer mais nenhum caracter para além daqueles especificados acima, incluindo espaços, tabulações e mudanças de linha. 5
6 Figura 1: Exemplo de planeta. Para efeitos de visualização e de verificação de representações externas de planetas será fornecido na página da cadeira um procedimento mostra_mundo que recebe como argumentos uma cadeia de caracteres contendo a representação externa de um planeta, e produz uma representação gráfica desse planeta. No caso da cadeia de caracteres não ter a formato especificado acima, o procedimento retorna uma mensagem de erro. Com o objectivo de simplificar a análise de cadeias de caracteres, será fornecido na página da cadeira um procedimento tokenize que recebe como argumentos uma cadeia de caracteres e um caracter separador, e retorna a lista das cadeias de caracteres que compõem a string recebida como argumento, separadas pelo caracter dado: > (tokenize "Olá, bom dia!" #\,) ("Olá" " bom dia!") 3 A entregar Nesta segunda fase do projecto deve ser submetido um ficheiro com nome proj2-fp0708-xx.zip (substituir xx pelo número do grupo, de modo a ocupar dois dígitos), que contém quatro outros ficheiros, nomeados: proj2-margarida-fp0708-xx.scm proj2-posicao-fp0708-xx.scm proj2-planeta-fp0708-xx.scm proj2-procs-fp0708-xx.scm 6
7 Para além destes quatro ficheiros obrigatórios, pode ser incluído um quinto ficheiro opcional com nome proj2-aux-fp0708-xx.scm (substituir xx pelo número do grupo, de modo a ocupar dois dígitos) no qual se guardam procedimentos auxiliares a ser usados pelos quatro ficheiros principais. Cada ficheiro deve conter um programa em Scheme, em conformidade com as instruções dadas nas quatro secções que se seguem. O código deve ser apresentado de forma mais legível possível; deve ser compatível e fazer uso, sempre que necessário, do código pedido no enunciado anterior. Todos os procedimentos devem testar se o tipo dos argumentos tem o formato esperado. Caso contrário o procedimento deve retornar, tal como na primeira parte do projecto, uma mensagem de erro sob a forma da seguinte cadeia de caracteres: Erro de input. Haverá ainda outro tipo de mensagens de erro, que especificaremos caso a caso, e que designamos erro de consistência. Estes erros ocorrem num procedimento quando, apesar de ter recebido argumentos com o tipo certo, existe algum problema de consistência que impede a realização da operação. Perante a ocorrência deste tipo de erros, os procedimentos devem retornar uma mensagem de erro sob a forma da seguinte cadeia de caracteres: Erro de consist^encia. 3.1 O tipo Margarida No ficheiro proj2-margarida-fp0708-xx.scm deve ser feita a implementação do tipo Margarida, de acordo com a assinatura: nova_margarida : [0, 1] Inteiro Inteiro Margarida String Esta operação recebe como argumentos um albedo, e duas temperaturas correspondentes à temperatura de sobrevivência mínima e máxima, e retorna a representação interna de uma margarida com esse albedo, e que tem como temperatura mínima e máxima de sobrevivência as temperaturas especificadas. Se a temperatura mínima não for inferior ou igual à segunda, o procedimento deve retornar um erro de consistência. albedo_margarida : Margarida [0, 1] String Esta operação recebe como argumento uma margarida, e retorna o seu albedo. 7
8 tempmin_margarida : Margarida Inteiro String Esta operação recebe como argumento uma margarida, e retorna a sua temperatura mínima de sobrevivência. tempmax_margarida : Margarida Inteiro String Esta operação recebe como argumento uma margarida, e retorna a sua temperatura máxima de sobrevivência. tempideal_margarida : Margarida Racional String Esta operação recebe como argumento uma margarida, e retorna a sua temperatura ideal de proliferação. margarida? : Universal Lógico Esta operação recebe como argumento um objecto qualquer, e retorna o valor lógico verdadeiro se e só se esse objecto for do tipo Margarida. imprime_margarida : Margarida String Esta operação recebe como argumento uma margarida, e retorna a representação externa de uma margarida sob a forma de uma cadeia de caracteres. Estas devem ser as únicas operações básicas do tipo Margarida. 3.2 O tipo Posição No ficheiro proj2-posicao-fp0708-xx.scm deve ser feita a implementação do tipo Posição, de acordo com a seguinte assinatura: nova_posicao : Natural Natural Posição String Esta operação recebe como argumentos uma linha e uma coluna do planeta, e retorna a representação interna da posição que se encontra nessa linha e nessa coluna. A correcção deste procedimento terá grande impacto na avaliação de todos os procedimentos que receberem como argumento a representação interna de uma posição do planeta. linha_posicao : Posição Natural String Esta operação recebe como argumento uma posição, e retorna a componente linha dessa posição. 8
9 coluna_posicao : Posição Natural String Esta operação recebe como argumento uma posição, e retorna a componente coluna dessa posição. posicao? : Universal Lógico Esta operação recebe como argumento um objecto qualquer, e retorna o valor lógico verdadeiro se e só se esse objecto for do tipo posição. posicao_valida? : Posição Natural Natural Lógico String Esta operação recebe como argumentos uma posição, o número de linhas e o número de colunas de um planeta, e retorna o valor lógico verdadeiro se e só se essa for uma posição válida do planeta, e retorna o valor lógico falso se e só se essa não for uma posição válida do planeta. Estas devem ser as únicas operações básicas do tipo Posição. 3.3 O tipo Planeta No ficheiro proj2-planeta-fp0708-xx.scm deve ser feita a implementação do tipo Planeta, que tem obrigatóriamente de ser baseada em listas, e ser compatível com a seguinte assinatura: novo_planeta : Natural Natural [0, 1] Planeta String Esta operação recebe como argumentos o número de linhas do planeta, o número de colunas do planeta, e o albedo da terra inabitada, e retorna a representação interna de um planeta sem margaridas. nasce_margarida : Planeta Posição Margarida Planeta String Esta operação recebe como argumentos a representação interna de um planeta, uma posição no planeta, e uma margarida, e retorna um planeta que resulta da inserção no planeta inicial da margarida na posição dada. Se nessa posição já se encontrar uma margarida, o procedimento deve retornar o mesmo planeta, inalterado. Se essa posição não for uma posição válida do planeta, o procedimento deve retornar um erro de consistência. morre_margarida : Planeta Posição Planeta String Esta operação recebe como argumentos a representação interna de um planeta e uma posição no planeta, e retorna um planeta que resulta de retirar do planeta inicial a margarida que se encontra na posição 9
10 dada. Se essa posição não for uma posição válida do planeta, ou se nessa posição não se encontrar nenhuma margarida, o procedimento deve retornar um erro de consistência. linhas_planeta : Planeta Natural String Esta operação recebe como argumento um planeta, e retorna o número de linhas desse planeta. colunas_planeta : Planeta Natural String Esta operação recebe como argumento um planeta, e retorna o número de colunas desse planeta. albedo_planeta : Planeta [0, 1] String Esta operação recebe como argumento um planeta, e retorna o valor do albedo da terra inabitada nesse planeta. obtem_margarida : Planeta Posição Margarida String Esta operação recebe como argumentos a representação interna de um planeta e uma posição no planeta em que se encontra uma margarida, e retorna a representação interna dessa margarida. Se essa posição não for uma posição válida do planeta, ou se nessa posição não se encontrar nenhuma margarida, o procedimento deve retornar um erro de consistência. tem_margarida? : Planeta Posição Lógico String Esta operação recebe como argumentos a representação interna de um planeta e uma posição no planeta, e retorna o valor lógico verdadeiro se e só se nesse planeta existe uma margarida na posição dada, e o valor lógico falso se e só se nessa posição não se encontrar nenhuma margarida. Se essa posição não for uma posição válida do planeta, o procedimento deve retornar um erro de consistência. planeta? : Universal Lógico Esta operação recebe como argumentos um objecto qualquer, e retorna o valor lógico verdadeiro se e só se esse objecto for do tipo Planeta. extern_to_intern : String [0, 1] Planeta String Esta operação recebe como argumento uma string que descreve uma possível configuração do planeta (no formato descrito em 2.2) e o albedo da terra inabitada, e retorna a sua representação interna. 10
11 A correcção deste procedimento terá grande impacto na avaliação de todos os procedimentos que recebem como argumento a representação interna de um planeta. intern_to_extern : Planeta String Esta operação recebe como argumento uma representação interna de uma configuração do planeta, e retorna uma string de caracteres que descreve a configuração do planeta (no formato descrito acima). Estas devem ser as únicas operações básicas do tipo Planeta. 3.4 Procedimentos No ficheiro proj2-procs-fp0708-xx.scm deve ser feita a implementação dos procedimentos definidos a seguir. Estes procedimentos devem fazer uso dos tipos abstractos de informação definidos anteriormente, e devem respeitar as barreiras da abstracção de dados. Para além do código específico desta segunda parte do projecto, o ficheiro deve conter obrigatóriamente o código correspondente à primeira fase de entrega, e deve continuar a satisfazer todas as condições do primeiro enunciado, salvo se forem explicitamente pedidas alterações. 1. Aleatoriedade (a) Um procedimento que determina se um dado evento deve ocorrer ou não, de acordo com uma probabilidade p. Este procedimento deve chamar-se joga_probabilidades e receber como argumentos (por esta ordem): a probabilidade p (um racional [0, 1]) um número pseudo-aleatório (inteiro {0, }. Este procedimento deve retornar um valor lógico, sendo a probabilidade de retornar #t igual a p. (b) Um procedimento que obtém uma posição aleatória num planeta de dimensões H V. Este procedimento deve chamar-se posicao_a_sorte e receber como argumentos (por esta ordem): o número de linhas H do planeta (inteiro 0) o número de colunas V do planeta (inteiro 0) um número pseudo-aleatório (inteiro {0, } Este procedimento deve retornar a posição gerada aleatoriamente. 11
12 (c) Um procedimento que obtém o albedo de uma nova margarida a partir de uma margarida mãe com um dado albedo, sabendo que uma mutação pode ocorrer com uma certa probabilidade M. Este procedimento deve chamar-se novo_albedo e receber como argumentos (por esta ordem): o albedo da margarida progenitora (racional [0, 1]) a probabilidade de mutação M (racional [0, 1]) um número pseudo-aleatório (inteiro {0, }) Este procedimento deve retornar o albedo da nova margarida (racional [0, 1]). 2. Vizinhanças Nos procedimentos pedidos nesta secção, sempre que houver uma referência a uma posição que não existe no planeta, deve ser retornado um erro de consistência. (a) Um procedimento que constrói uma lista de coordenadas das células que compõem a vizinhança de ordem n de uma célula numa dada posição pos da grelha (V n (pos)). Este procedimento deve chamar-se vizinhos_lista e receber como argumentos (por esta ordem): a posição pos dessa célula (Posição) o número de linhas H da grelha (inteiro 0) o número de colunas V da grelha (inteiro 0) a ordem n da vizinhança (inteiro 0) Este procedimento deve retornar uma lista de posições (na sua representação interna) contendo as coordenadas das células pertencentes à referida vizinhança, sem repetições, pela mesma ordem devolvida (e não a ordem impressa) pelo procedimento vizinhos_display (tal como especificado na pergunta 8. do primeiro enunciado), ou seja, começando da esquerda para a direita (do planeta) e de cima para baixo. Note-se que o procedimento vizinhos_lista é de facto muito semelhante ao procedimento vizinhos_display, sendo as únicas diferenças 2 o facto de receber uma posição (ao invés da linha e coluna) e devolver uma lista de posições (ao invés de uma lista de cadeias de caracteres). 2 Existe uma diferença adicional que é o facto deste procedimento não necessitar de imprimir as posições no ecrâ, no entanto não existe qualquer problema se o fizer. 12
13 (b) Um procedimento para determinar o número de margaridas que se encontram na vizinhança de uma posição do planeta. Este procedimento deve chamar-se quantas_vizinhas e receber como argumentos (por esta ordem): a representação interna da configuração de um planeta (Planeta) uma posição do planeta (Posição) a ordem n da vizinhança a considerar (inteiro 0) Este procedimento deve retornar o número de margaridas que se encontram na vizinhança (inteiro 0). (c) Um procedimento para calcular o albedo de uma região (α r ). Este procedimento deve chamar-se alb_regiao e, irá substituir o antigo procedimento com o mesmo nome que foi pedido no enunciado anterior 3. O procedimento tanto poderá ser utilizado para determinar o albedo de um planeta inteiro, como para calcular o albedo de uma pequena região do planeta em torno de uma margarida. No primeiro caso, o procedimento deve receber como argumento a representação interna da configuração do planeta (Planeta) enquanto que no segundo caso deve receber como argumentos (por esta ordem): a representação interna da configuração do planeta (Planeta) a ordem n da vizinhança que define a região (inteiro 0) a posição da margarida em questão (Posição) Este procedimento deve retornar um racional [0, 1]. (d) Um procedimento para determinar o conforto térmico de uma margarida num dado instante, tendo em conta uma ordem de vizinhança que define a temperatura local. Este procedimento deve chamar-se conforto_margarida e receber como argumentos (por esta ordem): o instante t (inteiro 0) a representação interna da configuração do planeta nesse instante (Planeta) a ordem n da vizinhança a considerar (inteiro 0) 3 Tal como foi definido no enunciado anterior, o albedo de uma região é a média ponderada dos albedos de cada posição dessa região. 13
14 a posição da margarida em questão (Posição) Este procedimento deve retornar o conforto térmico da margarida, um real [ 1, 1]. 4 Método de avaliação A nota resultante da avaliação desta fase do projecto projecto terá peso 25% na nota final do projecto, correspondendo assim a 10% da nota final à cadeira. A nota correspondente a esta fase será calculada do seguinte modo: 70% Execução correcta e robustez Para inputs no formato correcto, o output do programa deve ser igual àquele gerado por um programa correcto. No caso do input não ter o formato esperado, o programa deve retornar uma mensagem de erro (conforme especificado acima) e terminar normalmente. 20% Abstracção de dados O uso dos tipos abstractos de informação deve respeitar as barreira da abstracção de dados. Esta propriedade será testada automaticamente, verificando se os procedimentos implementados funcionam com outras implementações dos tipos pedidos. 10% Legibilidade do código A escolha de nomes, identação e introdução de comentários que apoiem a compreensão do programa. Chama-se a atenção para a importância de satisfazer todas as condições do enunciado. A execução, robustez e respeito pela abstracção de dados projectos serão avaliados automaticamente, pelo que as componentes do código que não satisfaçam literalmente os requisitos aqui definidos, mesmo que por diferenças mínimas, serão rejeitadas automaticamente. Serão aplicados métodos de detecção de cópias a todos os projectos. Projectos em que o código coincida total ou parcialmente com o de outros serão atribuídos a nota zero. 5 Planeamento da entrega do projecto O prazo de submissão da segunda fase é a 03 de Janeiro de 2007 às 22h00. O projecto deve ser feito obrigatoriamente em grupos de três alunos. São permitidas alterações à constituição dos grupos que foram formados na primeira fase do projecto, que se devem registar com antecedência no sistema Fénix (o prazo para o registo é 23 de Dezembro à meia-noite). 14
15 Qualquer tentativa de submissão de projectos por grupos de menos de três alunos não será avaliada. Qualquer pedido de alterações na constituição de um grupo, ou de formação de grupos, posterior a 23 de Dezembro não será efectuado. O projecto está a decorrer ao longo de três fases, em que as etapas ainda por realizar decorrerão pela seguinte ordem: Fase 2 Lançamento do segundo enunciado (este). Submissão da segunda parte do código, através do sistema Fénix. Lançamento dos resultados da avaliação automática. Discussão com os grupos acerca do desenvolvimento do projecto. Fase 3 Submissão da terceira parte do código, através do sistema Fénix. Entrega de relatório. Lançamento dos resultados da avaliação automática. Lançamento da nota final do projecto. A nota de cada aluno resultante das avaliações automáticas e dos relatórios do seu grupo poderá sofrer alterações de acordo com o seu nível de participação no desenvolvimento do projecto. 15
O 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 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 maisIntrodução aos Algoritmos e Estruturas de Dados 2011/2012
INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados 2011/2012 Enunciado do 3 o Projecto Data de entrega: 09 de Dezembro de 2011 às 23h59 1 Introdução Neste projecto pretende-se desenvolver
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 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 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 maisINF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza
INF2608 - Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza Trabalho 02 Visualização de Imagens Sísmicas e Detecção Automática de Horizonte Resumo Este trabalho
Leia maisFundamentos de Programação
Fundamentos de Programação Primeiro Teste 16 de Abril de 2011 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 7 páginas com 9 perguntas. A cotação de cada pergunta está assinalada
Leia maisIntrodução aos Números Pseudo-aleatórios. Profa. Dra. Soraia Raupp Musse
Introdução aos Números Pseudo-aleatórios Profa. Dra. Soraia Raupp Musse Conceito: Um gerador de número pseudo-aleatório é um algoritmo que gera uma seqüência de números, os quais são aproximadamente independentes
Leia maisFundamentos 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 maisProgramação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.
Programação Folha Prática 5 Lab. 5 Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 5 5ª semana ESTRUTURAS
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 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 maisInformática para Ciências e Engenharias (C) Trabalho Prático /18
Informática para Ciências e Engenharias (C) Trabalho Prático - 2017/18 1. Contexto O módulo de Young ou módulo de elasticidade é um parâmetro mecânico que proporciona uma medida da rigidez de um material
Leia maisInformática para Ciências e Engenharias-B 2017/18
Informática para Ciências e Engenharias-B 2017/18 Trabalho Prático N o 2 2017/18 1 Objectivo do Trabalho Até 1982, a insulina disponível para tratamento de diabetes era obtida por purificação de tecidos
Leia maisMétodos de Programação I Ana Maria de Almeida
Métodos de Programação I 2. 13 type naipe = ( ouros, copas, paus, espadas ); var trunfo : naipe; Claro que são apenas identificadores e não existirá a mesma escolha de operadores e funções sobre eles que
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 maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisEstatística e Modelos Probabilísticos - COE241
Estatística e Modelos Probabilísticos - COE241 Aula passada Análise da dados através de gráficos Introdução a Simulação Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes
Leia maisEstatística e Modelos Probabilísticos - COE241
Estatística e Modelos Probabilísticos - COE241 Aula passada Análise da dados através de gráficos Introdução a Simulação Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes
Leia maisEstatística e Modelos Probabilísticos - COE241
Estatística e Modelos Probabilísticos - COE241 Aula passada Somas aleatórias Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes Números Simulação de Sistemas Discretos É
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 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 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 maisIntrodução aos Algoritmos e Estruturas de Dados 2011/2012
INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados 2011/2012 Enunciado do 1 o Projecto Data de entrega: 21 de Outubro de 2011 às 23h59 1 Introdução A Zona Euro (ZE) é actualmente
Leia maisUm Minotauro Perdido & Percolação
Departamento de Ciência da Computação IME-USP Segundo Semestre de 2014 MAC 115 Introdução à Computação IF Noturno (Versão quase final) Um Minotauro Perdido & Percolação Exercício-Programa 4 (EP4) Data
Leia mais4 Uma Linguagem Baseada em Máquinas de Estado 4.1. A Linguagem
4 Uma Linguagem Baseada em Máquinas de Estado 4.1. A Linguagem Acredita-se nesse trabalho que características reativas e fortemente baseadas em modelos tornam necessária a criação de uma linguagem específica
Leia maisQuinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de
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 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 maisPlano Director Municipal. Tecnologias de Informação Geográfica
Plano Director Municipal Tecnologias de Informação Geográfica munwebgis Com o objectivo de difundir a utilização da informação geográfica, agilizar e simplificar os processos administrativos dentro dos
Leia maisTrabalho Prático 2015 Simulador de Circuitos Opção 1 Versão /11/2013
Trabalho Prático 2015 Simulador de Circuitos Opção 1 Versão 1.0 12/11/2013 SSC0300 Linguagem de Programação e Aplicações Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz
Leia maisFundamentos de Programação
Fundamentos de Programação Solução do Segundo Teste 23 de Janeiro de 2012 09:00 10:30 Nome: Número: 1. (1.0) Explique em que consiste a abstracção de dados, usando os termos barreiras de abstracção, encapsulação
Leia mais1, caso haja uma mina na posição (i, j),
MAC 2166 Introdução à Ciência da Computação Primeiro Semestre de 2017 Terceiro Exercício-Programa: Busca minas Muitos de vocês devem conhecer o jogo do campo minado. Existem implementações para o Windows
Leia maisEstrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas
Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Programa em Linguagem Algorítmica Nesse curso nós vamos utilizar a linguagem algorítmica para
Leia maisFundamentos de Programação
Fundamentos de Programação Primeiro Teste 21 de Abril de 2012 11:30 13:00 Nome: Número: Esta prova, individual e sem consulta, tem 5 páginas com 10 perguntas. A cotação de cada pergunta está assinalada
Leia maisSSC Linguagem de Programação e Aplicações
SSC0300 - Linguagem de Programação e Aplicações Professor responsável: Fernando Santos Osório Semestre: 2013/2 Prof. Auxiliar: Artur Lovato Cunha Estagiário PAE: Rafael L. Klaser Horário: Sexta Manhã 10h10
Leia mais5ª Lista de Exercícios de Programação I
5ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. Questões que envolvam leitura de matrizes, a construção dessas matrizes pode ser realizada através da geração
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 maistipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;
Métodos de Programação I Departamento de Matemática, FCTUC 38 type var tipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;
Leia maisPara cada programa, por mais simples que seja, comece sempre por esboçar a solução desenhando um fluxograma.
Instruções de Repetição Objetivo A realização deste trabalho deverá permitir ao aluno a familiarização com a utilização de instruções de repetição em C. Para o efeito será proposto um conjunto de exercícios
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 maisTrabalho de Linguagens Formais e Compilação
Trabalho de Linguagens Formais e Compilação Desenho de uma linguagem simples e do seu compilador para MIPS. (cod. 5387) Departamento de Informática Universidade da Beira Interior Ano lectivo 2012/2013
Leia maisFUNÇÃO SE. = SE ([condição]; [valor se verdadeiro]; [valor se falso]). A condição pode ser efetuada usando sinais matemáticos comparativos:
FUNÇÃO SE A função SE() é uma função especial que determina o valor da célula de acordo com um teste-lógico. Ela sempre contém uma condição, que definirá o valor da célula. Se a condição for verdadeira
Leia maisPORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA
PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA SUMÁRIO Introdução Conceitos básicos Formato básico Tipos primitivos Variáveis Constantes Operadores Operações
Leia maisIntrodução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01
Leia maisRESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:
Computação e Programação (2009/2010-1º Semestre) 1º Teste MEMec - LEAN (11/11/2009) DURAÇÃO: 1h30m RESOLUÇÃO Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha,
Leia maisInformática para Ciências e Engenharias-B 2018/19
Informática para Ciências e Engenharias-B 2018/19 Trabalho Prático N o 2 2018/19 1 Objectivo do Trabalho Um grupo de historiadores está a estudar uma série de experiências antigas de química e precisa
Leia maisProgramação Procedimental
Programação Procedimental Maria Adriana Vidigal de Lima Universidade Federal de Uberlândia - 2013 1 Escrita de Algoritmos 1.1 Técnicas de Programação e Algoritmos Na elaboração de programas maiores e complexos
Leia maisFundamentos de Programação
Fundamentos de Programação Segundo Teste 6 de Janeiro de 2010 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 9 perguntas. A cotação de cada pergunta está assinalada
Leia maisFundamentos de Programação
Fundamentos de Programação Soluções do primeiro teste 13 de Novembro de 2004 9:00-10:30 Nota Número: 20 Nome: Turma: Escreva o seu número em todas as folhas do teste. O espaço das respostas deve ser limitado
Leia maisDURAÇÃO DA PROVA: 2 horas
MAC2166 Introdução à Computação Grande áreas Civil, Mecânica, Petróleo e Química Escola Politécnica Segunda Prova 10 de maio de 2016 Nome: Assinatura: N ō USP: Turma: Professor: Instruções: 1. Não destaque
Leia maisProfessor Mauricio Lederer Algoritmos. Entrada e saída de dados
Entrada Algoritmos Entrada e saída de dados Muitas vezes, um algoritmo, para que possa trabalhar, precisa de dados de entrada informados pelo usuário, porque nem sempre é necessário ter esse tipo de dados.
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 maisTrabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas
Disciplina: Algoritmos e Estrutura de Dados I CIC / 9 Trabalho Prático Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas Valor:,5 pontos (5% da nota total) Documentação não-latex: -, pontos Impressão
Leia maisProcedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução
Métodos de Programação I 2. 20 2.2.8 ESTRUTURAS DE CONTROLO Estruturas de controlo são instruções especiais em Pascal que permitem controlar o fluxo de sequência de instruções, alterando a ordem sequencial
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 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 maisAlgoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva
Computação Evolutiva Algoritmos Genéticos A computação evolutiva (CE) é uma área da ciência da computação que abrange modelos computacionais inspirados na Teoria da Evolução das Espécies, essencialmente
Leia maisLógica Computacional Aula 4
Lógica Computacional Aula 4 DCC/FCUP 2017/18 Conteúdo 1 Lógica proposicional 1 1.1 Fórmulas de Horn.......................................... 1 1.2 Satisfazibilidade............................................
Leia maisNão utilize caracteres acentuados ou especiais para nomes de pastas e arquivos.
BCC201 Introdução à Programação (2016-01) Departamento de Computação - Universidade Federal de Ouro Preto - MG Professor: Reinaldo Fortes (www.decom.ufop.br/reinaldo) Estagiário docente: Washington Silva
Leia maisUniversidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número
Leia maisGuião de Preenchimento do Módulo Reporte de Execução Física Versão 1.0
Guião de Preenchimento do Módulo Reporte de Execução Física Versão 1.0 Índice Guião de Preenchimento do Módulo Reporte de Execução Física... 1 Versão 1.0... 1 1 Introdução... 4 1.1 Enquadramento... 5 1.2
Leia maisExercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
Leia maisVictor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de
Leia maisA resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?
23 Algoritmos com Repetição Nos exemplos e exercícios vistos até agora, sempre foi possível resolver os problemas com uma sequência de instruções que eram executadas apenas uma vez. Existem três estruturas
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes marinagomes@unipampa.edu.br 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a
Leia maisAbaixo seguem os comandos e suas particularidades, bem como exemplos para o indicador de linha
Trabalho II de CI067 - Oficina de Computação 2º Semestre - 2018 Tema: Editor compactador de arquivos Data de Entrega: 1. Introdução O editor a ser implementado edit([arquivo]) edita arquivos de texto ASCII.
Leia maisObjectivos. Iniciar a programação de funções. Estudar a chamada de funções. Estudar a forma como são executadas as funções
Funções Objectivos Iniciar a programação de funções Estudar a chamada de funções Estudar a forma como são executadas as funções Passagem por valor e referência Como conceber funções 2 Programação modular
Leia maisTrabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão
15/07/2013 Trabalho de LP Prof. Flávio Miguel Varejão OBSERVAÇÃO IMPORTANTE: LEIA ATENTAMENTE TODA A ESPECIFICAÇÃO DO TRABALHO E INSTRUÇÕES DE SUBMISSÃO DE MODO A NÃO COMETER ENGANOS POR DESATENÇÃO E SER
Leia maisFundamentos da Programação
Fundamentos da Programação Segundo Teste 10 de Janeiro de 2014 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 12 perguntas. A cotação de cada pergunta está assinalada
Leia maisTestes de software - Teste funcional
Testes de software - Teste funcional Vitor Alcântara de Almeida Universidade Federal do Rio Grande do Norte Natal, Brasil 30 de outubro de 2014 Alcântara (UFRN) Testes de software - Testes funcionais 30
Leia maisPorque usar um montador? Formato de uma linha de código fonte:
Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob
Leia maisAlgoritmos e Estruturas de Dados 2005/2006. Algoritmo: conjunto claramente especificado de instruções a seguir para resolver um problema
Vectores: Algoritmos de Pesquisa Algoritmos e Estruturas de Dados 2005/2006 Introdução Algoritmo: conjunto claramente especificado de instruções a seguir para resolver um problema noção de algoritmo muito
Leia maisA linguagem C (visão histórica)
A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,
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 maisUFCD 778 Folha de Cálculo Formadora: Sónia Rodrigues
UFCD 778 Formadora: Sónia Rodrigues UFCD 778 - - Operação e Programação Objectivos da UFCD: Utilizar e programar aplicações informáticas de folha de cálculo. UFCD 778 - - Operação e Programação 2 1 Folha
Leia maisSE (Função SE) Descrição. Sintaxe. Ocultar tudo
Página de 6 SE (Função SE) Ocultar tudo Este artigo descreve a sintaxe da fórmula e o uso da função SE (função: um fórmula pré-desenvolvida que assume um valor ou vários valores, executa uma operação e
Leia maisComandos de Repetição
Programação de Computadores I UFOP DECOM 2013 2 Exercícios de Revisão Comandos de Repetição Sumário 1 Testes de Compreensão 1 2 Exercícios de Programação 2 1 Testes de Compreensão 1 Determine o valor de
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 maisFundamentos da Programação
Fundamentos da Programação Solução do segundo exame 29 de Janeiro de 2016 18:30 20:30 1. Indique se cada uma das seguintes afirmações é verdadeira ou falsa. No caso de ser falsa, justifique de forma sucinta.
Leia maisOficina de Python Prof. Me. José Carlos Perini
Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação
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 maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo
Leia maisProgramação imperativa
Capítulo 8 Programação imperativa 8.1 Exercícios de revisão 1. Distinga entre programação imperativa e programação funcional. 2. Explique a necessidade da introdução do operador de atribuição. 3. Diga
Leia maisUniversidade Lusófona de Humanidades e Tecnologias Fundamentos de Programação 2014/2015 primeira época v.1.0.0
Cálculo de salários Introdução e objectivos O Tio Manuel abriu um novo negócio: um restaurante dedicado exclusivamente a entregas de comida ao domicilio. Para apoiar a gestão deste seu novo negócio, contratou
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 maisInformática para Ciências e Engenharias 2014/15. Teórica 7
Informática para Ciências e Engenharias 2014/15 Teórica 7 Na aula de hoje... Controlo de execução ciclos condicionais while end Exemplos raiz quadrada histograma fórmula química while while e matrizes
Leia maisNome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas
Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 31 de janeiro de 2018 Exame
Leia maisEstruturas de Repetição WHILE e DO- WHILE
Universidade Federal do Pampa UNIPAMPA Campus Itaqui RS Engenharia de Agrimensura Introdução à Programação (prof. Dr. Rogério Vargas) Lista 2 (entrega: 1 de junho de 2015) Instruções: Trabalhos iguais
Leia maisComputação e Programação Exame Resolvido 1ª Época
Computação e Programação 2012-2013 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Resolvido 1ª Época 9 de janeiro de 2012 Exame sem consulta
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 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 maisDraft-v0.1. Máquinas de Turing Máquinas de Turing
13 Máquinas de Turing A necessidade de formalizar os processos algorítmicos levou, nas décadas 20 e 30 do século XX, a diversos estudos, entre os quais os de Post, Church e Turing, com vista a estudo formal
Leia maisRelatório de Inteligência Artificial
Relatório de Inteligência Artificial Hidato Grupo 4 Diogo Simões - 63558 Inês Almeida - 63556 Miguel Diogo - 63567 Introdução O objectivo deste projecto é resolver automaticamente um tabuleiro de Hidato
Leia maisInformática para Ciências e Engenharias 2013/14. Teórica 7
Informática para Ciências e Engenharias 2013/14 Teórica 7 Na aula de hoje... Controlo de execução ciclos condicionais while end Exemplos raiz quadrada histograma fórmula química while while e matrizes
Leia maisDetecção e correcção de erros
elecomunicações II Codificação - Detecção e correcção de erros o Quando existe um canal de comunicação bidireccional, o receptor poderá requerer a retransmissão da informação que continha erros. o Esta
Leia maisUAb E-fólio B, 1819, Alínea A
UAb E-fólio B, 89, Alínea A O e-fólio B é constituído por alíneas, valendo valor cada, devendo as mesmas serem realizadas sequencialmente, e podendo ser reutilizado código entre alíneas. A cotação total
Leia mais