Escola Superior de Tecnologia de Setúbal Sistemas de Multimédia 2004/2005 E.I.I./E.I.G. EXAME 2 01 Julho 2005 / 14H30 Parte 1 1 - (4 valores) Considere a página html descrita na imagem seguinte. O servidor para onde se pretende enviar o form é o students2.mdlabs.est.ips.pt e a página a trataform.php. a) Escreva o código html da página representada b) Escreva o código javascript que permite ao passar com o rato sobre uma das imagens que o nome do país apareça nas obs. c) Escreva o código javascript que permite ao fazer click no botão de enviar, verificar se o nome e email estão preenchidos e: a. Enviar se estiverem b. Fazer surgir um alert a avisar sobre o que não está preenchido, caso não estejam Número Aluno: Nome: 1/6
2 - (2 valores) Codifique o frameset da seguinte página: 3 - (3 valores) Considere a seguinte sequência de simbolos: T E L L. M E.... T E L L. M E. T T T H E T E T E T x E L L. M E. T E T E T E L L. M E. T E L L. M E! A folha em anexo facilita a resposta a esta pergunta. a) Calcule a dimensão da sequência utilizando códigos de dimensão fixa. b) Calcule a dimensão da sequência utilizanndo LZ77 : - Começando na posção 9 - Utilizando (SB=8, LB=8) Obviamente a dimensão calculada é da posição 9 até ao fim 4- (3 valores) Considere um sistema de gestão de temperatura que armazena os dados de temperatura associados a uma estufa. É necessário armazenar a a informação a intervalos de 15 minutos. A temperatura varia entre os 10 e os 30 graus mas é necessário armazenar diferenças de um décimo de grau (10,1 10,9). a) Qual o mínimo espaço ocupado pelo armazenamento destes dados ao longo de 1 dia. b) Sabendo que a temperatura não varia mais do que 1 grau por hora verifique se seria possível diminuir o espaço ocupado utilizando uma solução baseada em pcm adaptativo. Número Aluno: Nome: 2/6
Parte 2 1. (8 valores) Tem-se um jogo feito em Macromedia Director em que 1 touro (que está ainda mais enraivecido, por incrível que pareça) atravessa o stage em termos horizontais, correndo da esquerda para a direita e vice-versa. Um toureiro movimenta-se em termos verticais e não deve ser tocado pelo touro. Existe um contador temporal, em segundos, que inicia a 30 e um contador de pontos que inicialmente tem zero pontos. No canto superior do lado esquerdo encontra-se uma indicação de que existem 3 vidas para o toureiro (ver Fig. 1). a) Apresente: as versões finais do score, do cast e do stage, caso tenha que fazer alterações; e todos os scripts, não se esquecendo de indicar o seu tipo e/ou onde se encontram aplicados, Para que os seguintes pressupostos sejam correctamente implementados (nesta versão do conhecido jogo de exame a lançar (muito futuramente) pela Microsoft): 1. O deslocamento do touro é feito por lingo e não através de uma animação. Sempre que chega ao lado direito do stage volta-se para a esquerda e continua nesse sentido. O contrário também sucede (ver Fig. 2). 2. Sempre que o toureiro tocar na arca que se encontra abaixo da linhabase, e desde que o touro se encontre voltado para ele e a tocar numa barra vertical, soma um ponto à pontuação. 3. A acção verifica-se enquanto o tempo for superior a 0 seg. e existirem 3 vidas. 4. Uma vida é perdida quando o toureiro é tocado pelo touro e no lugar de um toureiro em miniatura aparece um montanheiro em miniatura. Esta substituição vai acontecendo da direita para a esquerda (ver Fig. 2). 5. Caso as três vidas sejam perdidas antes de o tempo chegar a 0 seg. o Stage ficará de acordo com a Fig. 3. 6. Caso o contador de tempo chegue a 0 seg. o Stage ficará de acordo com a Fig. 4. b) Adicione um botão (ou outro elemento qualquer) que reinicie o jogo caso o utilizador assim o pretenda. Mostre as alterações que faria tanto no cast como no score, assim bem como no(s) script(s). c) Que alterações faria, e em que handler/script as colocaria, para que de 10 em 10 segundos o touro aumentasse um pouco a sua velocidade de deslocação. d) Poderia ter colocado o script que controla o touro associado a outro elemento (sprite, frame, cast member ou movie) do filme. Indique uma alternativa ao que fez. Comente quanto a vantagens e/ou desvantagens que podem surgir com esta alteração. Código em lingo que pode ser necessário para o desenvolvimento dos scripts: - member( Score ).text dá o texto que se encontra no membro Score. - member( Score ).text.value dá o valor caso o texto seja um número. - string(valor) transforma um número numa string. - sprite(spritenum1).intersects(spritenum2)=true indica que a primeira sprite se encontra em contacto com a segunda; - sprite(spritenum1).within(spritenum2)=true indica que a primeira sprite se encontra completamente dentro da segunda. - the keycode é uma propriedade que contém o código de uma tecla que tenha sido premida (123-left; 124-right; 125-up; 126-down). - A propriedade the ticks dá o tempo actual da máquina. 1 segundo corresponde a 60 ticks. - sprite(spritenum).fliph=1 indica uma inversão horizontal de uma sprite. - O comprimento do palco é dado por: the stageright - the stageleft Número Aluno: Nome: 3/6
Figura 1 O Stage no instante inicial do jogo Figura 2 O Stage no instante em que faltam decorrer 17 seg. com uma vida perdida (1 toureiro foi substituído pelo montanheiro) e pontuação igual a 11. Número Aluno: Nome: 4/6
Figura 3 O Stage para um possível instante final de jogo. O tempo ainda a 22, a pontuação com 13, mas já sem vidas (montanheiros em vez de toureiros). Figura 4 O Stage para outro possível instante final de jogo. Ainda com uma vida, o tempo chegou a zero e a pontuação ficou em 17 pontos. Número Aluno: Nome: 5/6
Figura 5 Score e Cast (incompletos) Número Aluno: Nome: 6/6