Aula prática 8



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)?
resposta: 
         

soluções