Recibo (ISCTE, IGE, Programação I, 1998/1999, 1ª frequência):
Nome: _______________________________________________
Nº ______________________
Ass. Docente: ________________________________________

Identificação:

Nome: _______________________________________________
Nº ________________
Turma: ____________


 
 


ISCTE - IGE

Programação I

1ª Frequência

1998/1999,  1º semestre


 























Notas:

Questão 1
#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)
{
    ...
}
a)  Quais das seguintes atribuições são válidas?
__  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]