Nome: _______________________________________________Nº ______________________
Ass. Docente: ________________________________________
Identificação:
Nome: _______________________________________________Nº ________________
Turma: ____________
ISCTE - IGE/ETI
Programação I/Introdução à Programação
1ª Frequência (exemplo)
1998/1999, 1º semestre
#include<iostream> using namespace std; bool f1(int a, int b) { if(a > 0) return false; return true; } int f2(int m[], int n, int& a) { ... } int main() { const int ci = 10; int i, i1, i2; float f; char c; bool b; int m1[10]; ... } int f3(int n, int& a) { ... }
__ c = A;
__ i = 5/6;
__ ci = 10;
__ m1[9] = 10;
[cotação: 2]
b) De que tipo é o resultado da expressão i/2 == 0?
__ int
__ bool
__ float
[cotação: 1.5]
h) Quais das seguintes invocações da função f2() são válidas?
__ m1 = f2(m1, i1, i2);
__ int x = f2(i, i1, i2);
__ int x = f2(i1, i2, m1);
[cotação: 1.5]
l) Dado o seguinte código
quais os valores que são escritos no ecrã?void f4(int a, int& b) { a = 1; b = 0; }int main() { int x = 2, y = 3; f4(x, y); cout << x << " " << y << endl; }
__ 2 3
__ 1 0
__ 2 0
__ 1 3
[cotação: 2]
Questão 2
2.a) Crie um pequeno procedimento void LêMatriz(float m[], int n) que leia do teclado uma sequência de n valores dada pelo utilizador e os guarde na matriz m. Assuma que n >= 0.
[cotação: 3]
2.b) Considere uma função float norma(float m[], int n) que calcula a norma do vector m. Recorda-se que a norma é a raiz quadrada da soma dos quadrados dos componentes dum vector. Dada a PC (pré-condição) n > 0, desenvolva a CO (condição objectivo), a CI (condição invariante) e a G (guarda) para o ciclo necessário na função. Indique também a inicialização, o progresso e a acção deste ciclo.
[cotação: 2]
2.c) Crie o código C++ para a função acima baseado no desenvolvimento efectuado na alínea anterior. Assuma que pode usar a função float sqr(float) para calcular o quadrado de um número e a função float sqrt(float) para calcular a raiz quadrada de um número.
[cotação: 3]
2.d) Crie um pequeno programa para testar as funções acima (viz. lêMatriz() e norma()).
[cotação: 2]
Questão 3
Elabore um pequeno texto (sucinto) sobre as diferenças entre a passagem de argumentos por valor e por referência.
[cotação: 3]