1a. Escreva um programa que gera 1000 números
aleatórios (inteiros) entre -10 e 20
(inclusive). Usa uma função com nome Aleatorio que
retorna um valor neste intervalo.
1b. Muda o programa da questão 1a da forma
que a função tem dois parâmetros, a e b,
para especificar os limites do intervalo.
1c. Muda o programa da questão 1b: Determine
o número mínimo e máximo da série.
2. Faça um programa que determine o factorial
de um número
n! = n x (n-1) x (n-2)
.... x 2 x 1
n! = n x (n-1)!
1! = 1
2a: com um ciclo.
2b: com uma função recursiva.
3a. Prediza os resultados dos programas a seguir.
Qual programa usa a técnica de passagem por referência e qual
usa a técnica de passagem por valor?
pogram:
PROGRAM Program4a1;
Var m: integer;
PROCEDURE Operations(n: integer); begin n := n+1; writeln(2*n); end;
begin m := 1; Operations(m); WriteLn(m); end.
pogram:
PROGRAM Program4a2;
Var m: integer;
PROCEDURE Operations(Var n: integer); begin n := n+1; writeln(2*n); end;
begin m := 1; Operations(m); WriteLn(m); end.
output:
output:
3b. Verifica as suas respostas.
4. Acaba os trabalhos da aula
prática 7.
Para os especialistas:
5a. Introduz uma variável local na função
Factorial
do programa do trabalho 2b. Quando chamamos a função
Factorial(5),
quantas cópias da variável local existem no máximo?
(veja aula teórica 16).
resposta:
5b. Verifica a sua resposta (por exemplo com uma variável
contadora global).
5c. Mais difícil: Faça a mesma coisa
com a função Fibonacci da aula teórica 16.
Quantas variáveis existirão no máximo depois a chamada
Fibonacci(5)?