ENUNCIADO
DA PROVA
30
de Março de 2001
Departamento
de Informática
Faculdade
de
Ciências
e Tecnologia
Universidade
Nova de Lisboa
P1. Questões de
Escolha Múltipla
P2. Problema Folha
de Cálculo Excel
P3. Problema de
Programação 1
P4. Problema de
Programação 2
P5. Problema de
Programação 3
P6. Problema Base de Dados Access
VER
Instruções nas páginas seguintes
(este
documento tem 11 páginas)
Instruções
Gerais
A prova
tem a duração de 2 horas.
Qualquer
dúvida deve
ser colocada a um dos vigilantes da sala.
A prova é
composta por seis problemas, de diversos tipos, para contemplar as diferenças
existentes na formação dos concorrentes. É
natural que nenhuma equipa consiga resolver todos os problemas.
Todos os
problemas têm
a mesma cotação e, por isso, contribuem de igual forma para a classificação
final.
Os
participantes podem resolver os problemas pela ordem que acharem mais
conveniente.
Instruções
de Resolução da Prova
O
enunciado e os ficheiros necessários aos problemas de Excel e Access estão
disponíveis na página
·
enunciado.html
·
f1.xls
·
luso.mdb
Deve começar a prova:
Deve responder:
Deve terminar a prova:
A disquete pode ser usada para
salvaguardar frequentemente o trabalho realizado, de modo a facilitar a
recuperação de eventuais situações de erro.
P1. Questões de Escolha Múltipla
(Página
1)
Deve
responder a este problema directamente neste enunciado.
q
Tem normalmente uma capacidade muito inferior à
capacidade da memória central (RAM)
q
É bastante mais lento que a memória central
q
Armazena apenas o Sistema Operativo (Sistema de
Exploração)
q
Armazena apenas os resultados temporários da execução dos
programas
q
É inicializado cada vez que o computador é ligado, com o
conteúdo da memória central
q
Todos os dados se perdem
q
Apenas se perdem os dados em memória ROM
q
Apenas se perdem os dados em memória ROM e disco rígido
q
Apenas se perdem os dados em memória RAM
q
Todos os dados se mantêm
q
mm
q
“pixels”
q
polegadas
q
Hz
q
bits
P1. Questões de Escolha Múltipla
(Página
2)
Deve
responder a este problema directamente neste enunciado.
q
Inteiros (16 bits)
q
Vírgula flutuante (32 bits)
q
String (cadeia de caracteres)
q
Inteiros longos (32 bits)
q
Bytes
q
105 ; 141
q
141 ; 105
q
501 ; 32F
q
501 ; 141
q
472 ; 129
A = 0
FOR I:=____ TO ____
A =
____ + I * ____ + 1
NEXT I
PRINT A
P2. Problema Folha
de Cálculo Excel
P3. Problema de Programação 1
Escreva um programa que detecte todas as
capicuas numa sequência qualquer de números inteiros não-negativos (maiores ou
iguais a zero).
A sequência termina com o número -1.
Uma capicua é um número inteiro que se lê da
mesma forma da esquerda para a direita e da direita para a esquerda.
O programa pede ao utilizador um número de
cada vez e afixa esse número se ele for uma capicua.
Ajuda1: Para saber se um número é uma
capicua, inverta a ordem dos seus algarismos e compare o resultado com o número
original.
Ajuda2: Para calcular o resto da
divisão dum inteiro N por 10 faça assim:
N % 10 (em C);
N mod 10 (em Pascal);
N MOD 10 (em BASIC).
Exemplo
Entrada
123
12321
456
9
0
2000
2001
2002
1111
4777
-1
Saída
12321
9
0
2002
1111
P4. Problema de Programação 2
A
sequência dos números de Fibonacci define-se da seguinte forma:
·
O primeiro
número da sequência é 0 (zero);
·
O
segundo número da sequência é 1 (um);
·
A
partir da terceira posição inclusive, cada número é a soma dos dois números
anteriores da sequência.
Repare que se trata de uma sequência
crescente, cujos primeiros doze números são:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 e 89.
Escreva um programa que, dado um número
inteiro positivo N, indique o menor número de Fibonacci que é superior a esse
número. O programa pede ao utilizador o número N, efectua os cálculos e afixa o
resultado.
Exemplo 1 Exemplo 2 Exemplo 3
Entrada Entrada Entrada
1 10 63
Saída Saída Saída
2 13 89
P5. Problema de Programação 3
Escreva um programa que, dados três números
inteiros, A, B e C, que representam a equação
A x2 + B x + C = 0,
e um número real X, descobre a solução da
equação que está mais próxima de X. Mais precisamente, se S1 e S2 forem as
soluções da equação, o programa:
Ø
devolve
S1, se |X-S1| < |X-S2|;
Ø
devolve
S2, se |X-S2| < |X-S1|; e
Ø
devolve
S1 ou S2, se |X-S1| = |X-S2|.
O programa lê três números inteiros e um
número real (A, B, C e X, por esta ordem), efectua os cálculos e afixa o
resultado. Assuma que a equação tem sempre, pelo menos, uma solução.
Exemplo (Comentário para ajudar a
compreensão do enunciado)
Entrada
2 (A)
Equação: 2 x2 + 3 x + (-2) = 0
3 (B) Soluções: -2 e
0.5
-2 (C)
0 (X)
Saída
0.5
P6. Problema Base de Dados Access
(Página
1)
A LusoUniverso possui um
sistema informatizado para a gestão das suas salas de cinema. Parte desse
sistema encontra-se implementado numa base de dados Access 2000. O seu esquema
de tabelas e respectivas associações encontram-se representados na Figura
abaixo.
Cada sala possui
vários lugares identificados pelo número de fila e de cadeira. É também
guardado no sistema uma descrição sumária das características da sala
(dimensão, sistema sonoro, etc.). Numa mesma sala decorrem várias sessões
diárias onde são exibidos filmes. Não é mantida qualquer informação histórica
de filmes anteriormente em cartaz. Um bilhete é vendido para um lugar de uma
sessão de uma sala numa determinada data. Existem vários tipos de bilhete com
preços distintos (normal, cartão jovem, preço especial de Segunda-feira,
infantil, etc.). Para se gerar automaticamente um panfleto informativo dos
filmes em cartaz, regista-se, para além do nome do filme, o seu realizador, o
seu género e o seu escalão etário.
A partir da base de dados luso.mdb, previamente carregada com alguns
dados de exemplo, deverá construir consultas (queries) que permitam responder
às seguintes questões. Qualquer delas poderá ser resolvida utilizando apenas a
“Design View” ou o “Query Wizard”. Não é necessário conhecimento de SQL. Poderá
recorrer a consultas auxiliares.
P6. Problema Base de Dados Access
(Página
2)
Interrogações a efectuar: