Nome: _______________________________________________
Nº ______________________
Ass. Docente: ________________________________________
Identificação:
Nome: _______________________________________________
Nº ________________
Turma: ____________
ISCTE - IGE
Programação I
1ª Frequência
1998/1999, 1º semestre
#include <iostream> using namespace std; int f2(int m[], int n, int& a) { ... } int main() { const int ci = 10; int i, i1 = 1, i2; float f; char c; bool b; int m1[10]; int m2[10]; ... } int f3(int n, int& a) { ... }
__ i = 3456; __ f = 4; __ m1 = 2; __ i = i1;[cotação: 2]
b) Quais das seguintes instruções são válidas?
__ m1 = m2;
__ m1[0] = 0;
__ m2[10] = m1[1];
[cotação: 1,5]
c) Quais das seguintes invocações da função f2() são válidas?
__ int x = f2(m1, 10, 4);
__ int x = f2(m1, 10, i1);
[cotação: 1]
d) O que aparece no ecrã depois de executar o código que se segue?
void f4(int& a, int& b) { a = 1; b = 0; } int main() { int a = 10, b = 20; f4(b, a); cout << a << " " << b << endl; }
__ 10 20 __ 0 1
__ 1 0[cotação: 1,5]
e) Se a função f2() for chamada na função main() do seguinte modo: int x = f2(m1, i1, i2);, quais das seguintes instruções podem constar no corpo da função f2()?
__ a = i1; __ i1 = 2;[cotação: 1]
Questão 2
2.a) Considere uma função int maximo(int m[], int n) que devolve o maior dos valores inteiros guardados na matriz m de dimensão n. Dada a pré-condição PC: n > 0, desenvolva a CO (condição objectivo), a CI (condição invariante), a G (guarda), a inicialização, o progresso e a acção do ciclo necessário na função, admitindo que esta começa com a definição duma variável local (int max;) e termina devolvendo o seu valor (return max;).
[cotação: 3]
2.b) Crie o código C++ para a função acima baseado no desenvolvimento efectuado na alínea anterior.
[cotação: 4]
2.c) Crie um pequeno programa para testar a função maximo().
[cotação: 3]
Questão 3
Diga quais as vantagens e as desvantagens da modularização do código em funções e procedimentos.
[cotação: 3]