Universidade Católica Portuguesa Faculdade de Ciências Económicas e Empresariais Cursos de Gestão e Economia Informática 1º Semestre 2007/2008 – 2º teste 17/01/2008 Duração 1h30m Resolva cada um dos grupos em folhas separadas Identifique todas as folhas Boa Sorte. I [10 valores] 1) [5] Indique, justificando, qual o output dos seguintes trechos de programas supondo (para as alíneas c e d) que é inicialmente chamado o procedimento P a) b) FOUND = FALSE X=1 Y=2 do X = X \ 2 + Y Y = Y + 1 FOUND = X = Y loop until FOUND call MsgBox(X) Y = 12 For X = 1 To 7 Step 2 Y = Y \ X + 1 Next Call MsgBox(Y) c) Sub P1(ByRef S As String, ByVal X As Integer) Dim A As String A = "" Do While X >= 1 A=A&S X=X-1 Loop S=A End Sub d) Function F(ByVal X As Integer, ByVal Y As Integer) As Integer Dim A As Integer, P As Integer P=1 For A = 1 To Y P=P*X Next F=P End Function Sub P Dim A As Integer, B As String B = "X" A=4 Call P1(B, A) Call MsgBox(A) Call MsgBox(B) End Sub Sub P Dim A As Integer, B As Integer A=4 Do B = F(2, A) Call MsgBox(B) A=A-1 Loop Until B <= 8 Call MsgBox(A) End Sub e) Substitua na alínea b), o ciclo FOR por um ciclo DO... LOOP UNTIL 2) [3] Indique, justificando se as seguintes expressões estão ou não correctas. Para as expressões que considerar correctas indique o seu tipo e se possível também o valor. a) ROUND(7.62E2) \10 b) LEN(“CARA” & “MELO”) MOD -3 c) INT(SQR(26)) MOD 5 d) CHR(ASC(“A”)+INSTR(“ABCD”,”D”)) e) CHR(INT(65.2)+1) / 2 f) RIGHT(“LESMA”,2) & MID(“BARLAVENTO”,4,2) 3) [2] Escreva um conjunto de instruções que apresente nas células A1:E1 da folha excel números aleatórios inteiros entre 1 e 20 inclusive. II (10 valores) 1) [2,5] Crie uma função que receba três números inteiros e devolva TRUE se algum dos números for igual á soma dos outros 2, FALSE no caso contrário. 2) [2,5] Escreva um troço de programa que peça ao utilizador para introduzir três números inteiros e que (utilizando a função anterior) mostre no écran, uma mensagem, informando se algum dos números é igual à soma dos outros 2. 3) [2,5] Crie uma função que receba uma string e um número inteiro N, devolvendo a repetição dessa string N vezes. Por exemplo, se a string for “BA” e N igual a 3, a função deverá devolver “BABABA” Considere a seguinte estrutura que tem como finalidade guardar as temperaturas médias diárias ao longo de um mês. Type TpTempMes NumDiasMes as integer ‘ número de dias que o mês tem TempMedia (1 to 31) as integer End type 4) [2,5] Crie uma função que, dadas as temperaturas médias ao longo do mês, indique se houve algum dia em que a temperatura foi igual à média de todas as outras temperaturas.