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)
Um grupo de amigos decidiu criar um clube de leitura para facilitar e gerir a troca de livros. Decidiram ento criar uma base de dados que contivesse a informao sobre os livros do clube, nomeadamente um nmero nico de identificao, o ttulo, o nmero de pginas, o autor e o gnero do livro. Esta base de dados armazenaria tambm os dados sobre os membros do clube, englobando o n de scio, o nome e o respectivo email. Pretendiam ainda poder saber a que scio ou scios pertence um determinado livro, bem como, no caso de um livro estar requisitado, qual o scio que requisitou o livro e em que data o deve devolver. a) (1,5 valores) Desenhe o Diagrama de Entidades e Relacionamentos que descreve a situao dada.

1/5

b) (1,5 valores) Apresente o esquema das tabelas que seria possvel criar a partir do diagrama da alnea anterior. Livros(NUnico, Titulo, NPag, Autor, Genero) Socios(NSocio, Nome, Email) Emprestimos(NUnico, NSocio, Data) Pertencas(NUnico, NSocio) c) (1 valor) Identifique no esquema proposto quais os atributos que so chaves estrangeiras. NUnico e NSocio nas tabelas Emprestimos e Pertencas. d) (1 valor) Escreva em SQL uma consulta que permita listar o ttulo e o autor de todos os livros para os quais o scio n 64 foi um dos compradores. SELECT Titulo, Autor FROM Livros, Pertencas WHERE Livros.NUnico = Pertencas.NUnico AND Pertencas.NSocio = 64

2 PROBLEMA (7 valores)
Num restaurante de comida a peso existe um perodo especial de entrada para almoo, assim quem entrar no restaurante mais cedo, antes das 13 horas, tem um desconto de 10%. Os preos das refeies por pessoa diferem consoante o nmero de variedades de carne pretendidas, at 6 so 10, e mais do que 6 variedades so 15. Pretende-se um programa que pergunte qual a hora de entrada e o nmero de variedades de carne pretendidas, e mostre no ecr o preo da refeio. a) (2 valores) Faa o diagrama de Michael Jackson do programa pretendido.

b) (3 valores) Escreva em C# o cdigo desse programa (represente as horas como inteiros, no considerando os minutos).
using System; class Restaurante { static void Main() { int horas, variedades; double preco=10, desconto=1;

2/5

Console.WriteLine("Quantas variedades?"); variedades = Int32.Parse(Console.ReadLine()); Console.WriteLine("Hora de entrada?"); horas = Int32.Parse(Console.ReadLine()); if(variedades > 6) preco = 15; if(horas < 13) desconto = 0.9; Console.WriteLine("Preo: {0} euros", preco * desconto); } }

c) (2 valores) Indique justificando que casos teste usaria para testar o programa da alnea anterior por cobertura de decises. O programa possui duas instrues condicionais, para test-lo por cobertura de decises devem ser propostos valores que permitam testar as expresses lgicas em cada condio. Para a primeira, os valores 6 e 7 para a varivel variedades permitem testar a falsidade e a veracidade, respectivamente. No que respeita a segunda condio, os valores 12 e 13 para a varivel horas permitem testar a veracidade e a falsidade, respectivamente. Os valores atrs propostos podem ser combinados em 2 casos de teste, por exemplo: (variedades=6 e horas=12) e (variedades=7 e horas=13).

3 PROBLEMA (4 valores)
a) (2 valores) Desenvolva um programa que leia do teclado uma matriz de 9 X 9 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 maior valor na terceira linha da matriz recebida.
using System; class SomaMaiorLinha3 { static void Main() { int maior, l, c; int [,] M = new int [9,9]; //Preencher a matriz de entrada. for(l=0; l<9; l++) for(c=0; c<9; 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 maior valor da linha 3. maior = M[2,0]; for(c=1; c<9; c++) if(M[2,c]>maior) maior=M[2,c]; //Mostrar resultado no ecra. for(l=0; l<9; l++) { for(c=0; c<9; c++) Console.Write("{0} ", M[l,c] + maior); Console.WriteLine(""); }

3/5

} }

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, b; for(a=-10, b=60; a!=b; a=a+10) { Console.WriteLine("{1}, {0}", a, b); if(a > b) a = b - 10; else { b = b - 10; } } Console.ReadLine(); } }
60, -10 50, 0 40, 10 30, 20 20, 30

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.

Um compilador serve para...

1. ... produzir um ficheiro fonte. 2. ... escrever um ficheiro fonte. 3. ... executar um programa. 4. ... gerar um executvel. 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.

Considere a instruo abaixo.

System.Windows.Forms.MessageBox.Show("Ol Mundo");

1. System o namespace, Windows.Forms.MessageBox a classe e Show o mtodo. 2. System.Windows o namespace, Forms a classe e MessageBox.Show o mtodo.

4/5

3. System.Windows.Forms o namespace, MessageBox o mtodo e Show a classe. 4. System.Windows o namespace, Forms o mtodo e MessageBox.Show a classe. 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.

Para definir em HTML duas frames verticais por forma a mostrar uma pgina com um menu esquerda, e outra direita, poderia fazer-se: 1. <frame cols="170,*"> <set file="menu.html" name="menu" > <set file="apresentacao.html" name="principal"> </frame> 2. <set lines="170,*"> <frame src="menu.html" name="menu"> <frame src="apresentacao.html" name="principal"> </set> 3. <frame lines="*,*"> <set name="menu" file="menu.html"> <set name="principal" file="apresentacao.html"> </frame> 4. <set cols="*,*"> <frame name="menu " src="menu.html"> <frame name="principal " src="apresentacao.html"> </set> 5. Nenhuma das anteriores.

d) (2,5 valores) Indique quais das afirmaes seguintes so verdadeiras (V) ou falsas (F). 1. Uma ligao em HTML para permitir a navegao entre pginas define-se utilizando o elemento <li>. F 2. Para podermos testar um programa usando o critrio de cobertura de decises no precisamos conhecer o cdigo desse programa. F 3. Os comentrios em HTML so iniciados com <!-- e terminados com -->. V 4. Os ficheiros permitem guardar dados ou programas. V 5. As classes contm trs tipos de membros: mtodos, dados e namespaces. F 6. O operador new s permite criar objectos de classes pr-definidas. F 7. Um array de duas dimenses permite guardar valores de dois tipos diferentes. F 8. Alguns navegadores para a Web (browsers) conseguem processar C#. F 9. Um navegador para a Web (browser) mostra uma pgina, mesmo que esta no possua o elemento <body>. V 10. select um comando de seleco (condicional) em C#. F

5/5

Você também pode gostar