Sunteți pe pagina 1din 8

 

               
Número:  
 

  TIC - LINGUAGENS DE PROGRAMAÇÃO


  2009/2010 >> 2º Semestre
1º Teste >> 23 de Abril de 2009 >> 18:00-19:30
 
 
Nome: _____________________________________________ Número:
 
________
 
 
Preencha em todas as páginas o seu número. Em cima das mesas deve ter apenas canetas/
lápis/borracha e a sua identificação de aluno. Pode utilizar o verso das folhas como rascunho. A
 
detecção de cópias implica a anulação da(s) pergunta(s) copiadas, ou mesmo do teste na sua
 
totalidade.
O   teste tem duas partes uma 1ª parte (7,5 valores) composta por 10 perguntas de escolha
múltipla (PEM). Cada PEM tem apenas uma resposta correcta. Para cada PEM a cotação é:
 
certa (0,75); Respostas erradas com cotação c e n respostas possíveis descontam −c/(n − 1). Só
  consideradas as respostas às PEM, registadas na tabela da esquerda nesta página. Se se
são
enganar
  risque a resposta errada e coloque a nova resposta à frente.
A   2ª parte (12,5 valores) tem 3 perguntas abertas. Responda às perguntas desta parte nos
espaços em branco a seguir às perguntas e alíneas.
 
Pode utilizar a parte de trás das folhas para rascunho.
 
Bom trabalho.
 
 
 
 
1ª  Parte  (7,5  valores)     2ª  Parte  (15  valores)  
Pergunta   Resposta   Nota     Pergunta   Cotação   Nota  
1.1       2   2    
1.2      
 
3.1   2    
1.3         3.2   1    
1.4         4.1   1,5    
1.5       4.2   1    
 
1.6       4.3   2    
1.7         4.4   3    
1.8              
1.9        
 
1.10        
         
Total  1ª  Parte:   7,5       Total  2ª  Parte:   12,5    
     
 
Total:   20    

Pág.  1  de  8  
                 
Número:  
 

1 Escolha   a   resposta   mais   correcta   para   cada   uma   das  questões   seguintes   e   registe-­‐a  
na  tabela  da  1ª  Parte  na  Página  1.  
 
1.1  A  .NET  Framework  é  constituida  pelos  seguintes  grandes  componentes:  
a) Framework  Class  Library  e    Base  Classe  Library.  
b) Framework  Class  Library  e  um  compilador  para  código  intermédio.  
c) Base  Class  Library  e  o  ambiente  de  desenvolvimento.  
d) Um  compilador  para  código  máquina  e  a  Framework  Class  Library.  
e) Common  Language  Runtime.  

1.2 O  componente  da  .NET  que  permite  que  programas  escritos  em  linguagens  da  
.NET  diferentes  possam  interagir  é  o/a:  
a) Common  Language  Runtime  
b) Common  Language  Specification.  
c) Common  Type  System.          
d) Core  Integration  Services  
e) Intermediate  Language  Layer.  

1.3 Em  C#  
a) Uma  string  verbatim  interpreta  os  caracteres  de  escape.  
b) Uma  classe  é  um  tipo  pré-­‐definido.  
c) Uma  variável  pode  ser  utilizada  sem  ter  sido  previamente  declarada.  
d) Não  é  possível  declarar  uma  variável  sem  explicitar  o  seu  tipo.  
e) Todos  os  programas  têm  um  método  Main  pelo  qual  começam  a  executar.  
 

1.4 A  instrução  while  (  0  =  0)  ,  implementa  um  ciclo  que:  


a) Não  executa  nenhuma  vez.  
b) Executa  uma  única  vez.  
c) Executa  um  ciclo  infinito.  
d) Dá  erro  de  execução.  
e) Dá  erro  de  compilação.  

1.5 Uma  classe:  


a) É  o  resultado  da  instanciação  de  um  objecto.  
b) Contém  propriedades,  métodos,  dados  e  namespaces.  
c) Por  omissão  é  privada  
d) São  um  tipo  referência  (reference  type).  
e) Pode  derivar,  directamente,  de  mais  de  uma  classe  

Pág.  2  de  8  
                 
Número:  
 

 
1.6 Em  C#  uma  propriedade:  
a) Têm  de  ter  ambos  os  get  e  set  accessors  sempre  definidos.  
b) Têm  de  ter  o  get  accessor  sempre  definido.  
c) Pode  retornar  mais  de  um  valor.  
d) Permite  expor  o  estado  interno  e  externo  de  um  objecto  ou  classe.  
e) Apenas  permite  expor  o  estado  interno  de  um  objecto  ou  classe.  
 

1.7 Em  C#,  a  derivação  de  uma  classe  a  partir  de  outra  classe  designa-­‐se  por:  
a) Unboxing    
b) Referência  (Reference)  
c) Herança  (Inheritance)  
d) Sobrecarregar  (Overloading)  
e) Encapsulamento  (Encapsulation)  
 
1.8 Em  C#:  
a) Quando   um   construtor   com   parâmetros   é   especificado   o   construtor   por  
omissão  não  é  disponibilizado  
b) O   construtor   por   omissão   da   classe   base   executa   depois   do   construtor   da  
classe   derivada   quando   criamos   um   novo   objecto   a   partir   da   classe  
derivada.  
c) Não   é   possível   chamar   o   construtor   da   classe   base   a   partir   da   classe  
derivada.  
d) Um  construtor  pode  ter  mais  de  um  parâmetro  de  retorno.  
e) Todas  as  anteriores.  

1.9 Em  C#:  
a) A  palavra  ref  antes  do  parâmetro  de  um  método  especifica  que  esse  é  um  
parâmetro  de  saída  de  valores.  
b) A  palavra  out  antes  do  parâmetro  de  um  método  especifica  que  esse  é  um  
parâmetro  de  entrada  de  valores.  
c) A  palavra  ref  antes  do  parâmetro  de  um  método  especifica  que  esse  é  um  
parâmetro  de  entrada  de  valores.  
d) A  palavra  out  antes  do  parâmetro  de  um  método  especifica  que  esse  é  um  
parâmetro  de  saída  de  valores.  
e) A  palavra  out  antes  do  parâmetro  de  um  método  especifica  que  esse  é  um  
parâmetro  de  entrada/saída  de  valores.  
 

Pág.  3  de  8  
                 
Número:  
 

1.10 Em  C#:  
a) Um   membro   estático   (static)   pode   ser   utilizada   sem   ser   através   de   um  
objecto.  
b) A   única   situação   em   que   um   construtor   estático   é   executado   é   antes   da  
primeira  instância  da  classe  ser  criada.  
c) A   forma   de   chamar   um   construtor   na   mesma   classe   através   de   outro  
construtor  é  utilizando  a  palavra  chave  base.  
d) Não  é  possível  efectuar  overload  de  um  construtor.  
e) Uma   variável   membro   (da   classe)   com   o   modificador   Readonly   pode   ser  
alterada  em  qualquer  método  dessa  classe.  
 

 
2  valores   2 O  código  seguinte  apresenta  um  pequeno  programa  que  utiliza  a  estrutura  switch  
para   mostrar   disciplinas   de   um   determinado   ano   que   o   utilizador   escolhe.   Re-­‐
implemente  o  código  mantendo  a  sua  funcionalidade  ,  mas  utilizando  a  instrução  if  
em  vez  da  instrução  switch  apresentada.  
 
  class Program {
static void Main(string[] args) {
 
  Console.WriteLine("Introduza o ano da licenciatura (1, 2 ou 3):");
byte ano = Convert.ToByte(Console.ReadLine());
  switch (ano) {
case 1:
  Console.WriteLine("Linguagens de Programação");
  Console.WriteLine("Matemática I");
break;
  case 2:
Console.WriteLine("Bases de Dados I");
  Console.WriteLine("Tecnologias de Internet");
  break;
case 3:
  Console.WriteLine("Bases de Dados II");
Console.WriteLine("Projecto");
  break;
default:
  Console.WriteLine("Não existe esse ano nesta licenciatura");
  break;
}
  }
}
   

Pág.  4  de  8  
                 
Número:  
 

[2  +  1]  val.   3 Tenha  em  atenção  o  seguinte  programa  escrito  em  C#  para  calcular  o  número  de  
anos  que  são  necessários  para  atingir  um  determinado  valor,  tendo  em  conta  um  
determinado  saldo  inicial  e  uma  dada  taxa  de  juro  anual.    
  class Program {
static void Main(string[] args) {
 
double taxaJuro = 1.04,
saldo = 10000.00,
  valorPretendido;
int numeroAnos;

  Console.WriteLine("Introduza o valor que pretende ");


do {
valorPretendido = Convert.ToDouble(Console.ReadLine());
  } while (valorPretendido < saldo);

for (numeroAnos = 0; saldo < valorPretendido; numeroAnos++)


  saldo *= taxaJuro;

  Console.WriteLine("Em {0} ano{1} o seu saldo será de {2} euros.",


numeroAnos, numeroAnos == 1 ? "" : "s", saldo);
}
  }

 
3.1 Re-­‐escreva   o   código   mantendo   a   sua   funcionalidade,   mas   utilizando   um   ciclo  
while  ao  invés  do  ciclo  for  que  foi  utilizado  no  código  dado.  
 
 
 
 
 
 
 
 
 
 
 
 

Pág.  5  de  8  
                 
Número:  
 

3.2 Sabendo   que   o   saldo   será   de   15394,54   em   11   anos,   reproduza   a   saída   do  


programa.  Explique  como  funciona  o  operador  ?  :  
 
 
 
 
 
 

[1,5  +  1  +  2  +  3]     4 Analise  o  código  em  C#  de  uma  aplicação  em  modo  consola,  apresentado  abaixo,  e  
Val.  
responda  às  perguntas  das  alíneas  seguintes.  
  class HomologarTaxi {

static void Main(string[] args) {


  }
}
 
class Taxi {
string condutorDoTaxi;
  static int numero = 100;
int numeroDoTaxi;

  public Taxi() {
Matricula matricula = new Matricula();
numeroDoTaxi = numero = matricula.Atribuir(numero);
  }

public string GetCondutor() {


  return condutorDoTaxi;
}
  public void SetCondutor(string condutor) {
condutorDoTaxi = condutor;
  }

public int GetNumeroDoTaxi() {


  return numeroDoTaxi;
}
}
 
public class Matricula {
static int i = 10;
 
public int Atribuir(int numero) {
i += 10;
  return i + numero;
}
  }  

Pág.  6  de  8  
                 
Número:  
 

4.1 Utilize   o   método   Main   para   instanciar   dois   objectos   do   tipo   Taxi.   Atribua   ao  
primeiro  táxi  o  condutor  Zé  Manel  e  ao  segundo  o  condutor  Vítor  Milhas.  
Escreva   no   output   da   consola   uma   mensagem   com   o   número   do   táxi   e   o  
respectivo  condutor.  
 
 
 
 
 
 
 
 
 
 
 
 
 
4.2 Indique   os   três   primeiros   números   da   sequência   de   números   atribuídos   aos  
dois  táxis  criados  na  alínea  anterior  e  ainda  a  um  terceiro.  
 
 
4.3 Substitua   os   métodos   Get...   e   Set...   por   propriedades   chamadas  
NomeDoCondutor   e   NumeroDoCondutor.   Altere   o   código   que   escreveu   na  
alínea  4.1,  em  conformidade.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Pág.  7  de  8  
                 
Número:  
 

4.4 Re-­‐escreva   o   código   da   classe   Táxi   de   forma   a   que   se   possam   criar   objectos  
inicializando-­‐os   na   altura   da   sua   criação   com   o   nome   do   condutor.   Prescinda  
(apague),   da   propriedade   de   escrita   (apenas   esta),   NomeDoCondutor.   Não  
duplique   código.   Altere   o   código   que   escreveu   para   o   método   Main   de   forma   a  
reflectir  a  nova  implementação  da  classe  Táxi.  

Pág.  8  de  8  

S-ar putea să vă placă și