Você está na página 1de 5

2002 / 2003 Programao

Licenciatura em Eng Civil Licenciatura em Eng do Territrio

1 Data
DECivil Departamento de Engenharia Civil e Arquitectura 22 de Janeiro de 2003

Exame sem consulta (2 horas + 30 minutos).


DESLIGUE O SEU TELEMVEL. RESOLVA OS PROBLEMAS EM FOLHAS SEPARADAS. NUMERE TODAS AS FOLHAS COM O SEU NMERO DE ALUNO(A).

1 PROBLEMA (5 valores)
Numa cooperativa agrcola, todos os associados contribuem para a existncia de um conjunto de mquinas para trabalhar nos campos, sendo permitida a utilizao de qualquer das mquinas a qualquer um dos associados. As mquinas so identificadas por uma matrcula. Cada associado possui um nmero prprio de identificao. Esta cooperativa pretende a criao de uma base de dados onde seja possvel registar qual (ou quais) o(s) associado(s) comprador(es) de cada mquina, bem como, se for o caso, quem est a utilizar uma determinada mquina, permitindo saber a datas de incio e fim previsto da utilizao. Cada mquina caracterizada por um tipo, que permite identificar a sua funo. Cada associado possui um nome e uma morada. a) (1,5 valores) Desenhe o Diagrama de Entidades e Relacionamentos que descreve a situao dada.

b) (1,5 valores) Apresente o esquema das tabelas que seria possvel criar a partir do diagrama da alnea anterior.

1/5

Associados(Num, Nome, Morada) Maquinas(Matricula, Tipo) Aquisicao(Num, Matricula) Emprestimo(Num, Matricula, DataI, DataF) c) (1 valor) Identifique no esquema proposto quais os atributos que so chaves estrangeiras. Num e Matricula nas tabelas Aquisicao e Emprestimo. d) (1 valor) Escreva em SQL uma consulta que permita listar a matrcula e o tipo de todas as mquinas para as quais o associado n 52 foi um dos compradores. SELECT Maquinas.Matricula, Tipo FROM Maquinas, Aquisicao WHERE Maquinas.Matricula = Aquisicao.Matricula AND Num = 52

2 PROBLEMA (7 valores)
Numa estncia de neve existem dois tipos de meios mecnicos, os de acesso s pistas mais fceis e os de acesso s pistas mais difceis. O preo por dia de utilizao de cada um dos tipos de meios mecnicos 3, com 20% de desconto para quem opte pelos dois tipos. Para bilhetes entre 8 e 20 dias existe um desconto de 10%, e para bilhetes para perodos superiores a 20 dias existe um desconto de 15%. Pretende-se um programa que pergunte o(s) tipo(s) de pista(s) que se pretende utilizar, o nmero de dias, e mostre no ecr o preo do bilhete. a) (2 valores) Faa o diagrama de Michael Jackson do programa pretendido.

Nota: no caso de serem utilizados os dois tipos de meios mecnicos, o eventual desconto pelo nmero de dias aplicado sobre um valor (6*0.8) j resultante de um primeiro desconto. Poderia ter sido utilizada outra forma de aplicar os descontos, por exemplo som-los antes da multiplicao pelo preo. b) (3 valores) Escreva em C# o cdigo desse programa.
using System; class Neve { static void Main() { int dias, nMeios; double preco=0, desconto=1; Console.WriteLine("Quantos tipos de meios mecnicos?");

2/5

Console.Write("(1 ou 2)> "); nMeios = Int32.Parse(Console.ReadLine()); Console.Write("Quantos dias?"); dias = Int32.Parse(Console.ReadLine()); if(nMeios == 2) preco = 6 * 0.8; if(nMeios == 1) preco = 3; if(dias >= 8) desconto = 0.90; if(dias > 20) desconto = 0.85; preco = dias * preco * desconto; Console.WriteLine("Preo: {0} euros", preco); } }

c) (2 valores) Indique justificando que casos teste usaria para testar o programa da alnea anterior por cobertura de decises. Para a expresso lgica no primeiro condicional ser verdadeira utilizaria o valor 2, e para ser falsa, o valor 1. Para o segundo condicional, consideraria os mesmos valores, 1 e 2, para tornar a expresso verdadeira e falsa, respectivamente. Utilizaria os valores 7 e 21 no terceiro condicional. Por fim, para o ltimo condicional escolheria tambm os valores 7 e 21. Para testar estes valores seriam suficientes 2 casos de teste, por exemplo, o primeiro para nMeios = 2 e dias = 7; e o segundo para nMeios = 1 e dias = 21.

3 PROBLEMA (4 valores)
a) (2 valores) Desenvolva um programa que leia do teclado uma matriz de 11 X 11 inteiros e mostre no ecr uma matriz em que o valor de cada posio resulta do valor na mesma posio da matriz recebida somado do menor valor na segunda coluna da matriz recebida.
using System; class SomaMenorColuna2 { static void Main() { int menor, l, c; int [,] M = new int [11,11]; //Preencher a matriz de entrada. for(l=0; l<11; l++) for(c=0; c<11; c++) { Console.Write("Introduza o valor da linha {0} e da coluna {1} da matriz 1 >", l+1, c+1); M[l,c] = Int32.Parse(Console.ReadLine()); } //Procurar o menor valor da coluna 2. menor = M[0,1]; for(l=1; l<11; l++) if(M[l,1]<menor) menor=M[l,1];

3/5

//Mostrar resultado no ecra. for(l=0; l<11; l++) { for(c=0; c<11; c++) Console.Write("{0} ", M[l,c] + menor); Console.WriteLine(""); } } }

b) (2 valores) Reproduza o resultado mostrado no ecr pela execuo do programa definido em baixo.
using System; class Class1 { static void Main() { int a = -1, b = 6; while(a != b) { Console.WriteLine("{1}, {0}", a, b); if(a > b) a = b; else { a = a + 1; b = b - 1; } } } }
6, -1 5, 0 4, 1 3, 2 2, 3

4 PROBLEMA (4 valores)
a) (0,5 valores) Das respostas apresentadas, apenas uma est correcta. Poder assinalar uma fazendo uma cruz
no quadrado correspondente. Se errar sero descontados 0.125 valores.

Considere a instruo abaixo.

System.Windows.Forms.MessageBox.Show("Ol Mundo"); 1. System.Windows.Forms o namespace, MessageBox o mtodo e Show a classe. 2. System o namespace, Windows.Forms o mtodo e MessageBox.Show a classe. 3. System o namespace, Windows.Forms.MessageBox a classe e Show o mtodo. 4. System.Windows o namespace, Forms.MessageBox a classe e Show o mtodo. 5. Nenhuma das anteriores. b) (0,5 valores) Das respostas apresentadas, apenas uma est correcta. Poder assinalar uma fazendo uma cruz
no quadrado correspondente. Se errar sero descontados 0.125 valores.

4/5

Para definir em HTML duas frames verticais por forma a mostrar uma pgina com um menu esquerda, e outra direita, poderia fazer-se: 1. <set lines="170,*"> <frame src="menu.html" name="menu"> <frame src="apresentacao.html" name="principal"> </set> 2. <setframe cols="170,*"> <frame name="menu" file="menu.html"> <frame name="principal" file="apresentacao.html"> </setframe> 3. <set lines="*,*"> <frame name="menu " src="menu.html"> <frame name="principal " src="apresentacao.html"> </set> 4. <frame cols="*,*"> <set file="menu.html" name="menu" > <set file="apresentacao.html" name="principal"> </frame> 5. Nenhuma das anteriores. c) (0,5 valores) Das respostas apresentadas, apenas uma est correcta. Poder assinalar uma fazendo uma cruz
no quadrado correspondente. Se errar sero descontados 0.125 valores.

Um compilador serve para...

1. ... gerar um executvel. 2. ... produzir um ficheiro fonte. 3. ... executar um programa. 4. ... escrever um programa. 5. Nenhuma das anteriores. d) (2,5 valores) Indique quais das afirmaes seguintes so verdadeiras (V) ou falsas (F). 1. 2. 3. 4. 5. 6. 7. Nenhum navegador para a Web (browser) consegue entender C#. V Um array pode guardar valores apenas de um mesmo tipo. V Os comentrios de linha em HTML so iniciados com </ e terminados com \>. F Os ficheiros permitem aos programas memorizar dados entre execues separadas. V As classes contm dois tipos de membros: mtodos e dados. V O operador new no permite criar objectos de classes definidas pelo programador. F Para ser possvel a sua visualizao num navegador (browser), uma pgina tem necessariamente que possuir o elemento <html>. F 8. select uma linguagem de interaco com bases de dados. F 9. Para podermos testar um programa usando o critrio de cobertura de decises precisamos conhecer o cdigo desse programa. V 10. Uma ligao em HTML para permitir a navegao entre pginas define-se utilizando o elemento <link>. F

5/5

Você também pode gostar