Problemas de cálculo numérico
(a) Desenvolva o algoritmo, e posteriormente codifique-o em C, de um programa que lê um inteiro e escreve no écran os seus divisores.
(b) Desenvolva o algoritmo, e posteriormente codifique-o em C como uma função. A sua função deverá ter dois argumentos inteiros
e produzir um resultado inteiro que é o menor múltiplo comum dos argumentos recebidos. Posteriormente codifique um programa
principal (main()) que utiliza esta função para cálculo do menor múltiplo comum de dois números fornecidos pelo utilizador.
(c) Desenvolva o algoritmo, e posteriormente codifique-o em C como uma função. A sua função deverá ter um argumento inteiros e
produzir um resultado do tipo booleano (o docente irá desenvolver uma pequena biblioteca de booleanos: bool.h). O resultado
será verdadeiro (TRUE) se o argumento passado fôr primo e falso (FALSE) caso contrário. Posteriormente codifique um programa
principal (main()) que utiliza esta função para verificar quem é primo numa sequência de inteiros introduzidos pelo utilizador
(terminada por 0).
Tudo ao contrário!
Foste transferido para uma nova escola.
Nessa escola, a professora e matemática gostava muito de pôr os alunos a pensar e tentava que a mais simples tarefa fosse
algo em que o raciocínio tivesse que intervir.
Uma das medidas que ela implementou foi a de utilizar os números inteiros invertidos. Por exemplo, o 12 seria 21 e o 1821
seria 1281.
Ora, os alunos locais já estão habituados a lidar com os inteiros daquela maneira e até fazem as operações de adição e subtracção
com os inteiros naquela forma. No entanto, para ti, que acabaste de chegar à escola esta tarefa não é tão simples. Assim,
resolveste criar um programa em computador que fizesse três coisas:
(a) dado um número calcula o seu inverso (o valor inteiro correcto)
(b) dados dois números na forma invertida calcula a sua soma e devolve o resultado na mesma forma invertida
(c) dados dois números na forma invertida calcula a sua subtracção e devolve o resultado na mesma forma invertida
Sugestão: especifica uma função para cada um dos pontos acima.
Sequência de Fibonacci
Codifica um programa que gere os primeiros 20 números de Fibonacci. Os números de Fibonacci são definidos recursivamente da
seguinte forma:
fib(0) = 1
fib(1) = 1
fib(n) = fib(n-1) + fib(n-2) para n>=2
Conversões de representações de informação numérica
(a) Depois de discutires com o docente o algoritmo das divisões sucessivas para a conversão de números decimais em números binários,
codifica-o num programa em C.
(b) Depois de teres resolvido o problema anterior, tenta resolver o problema inverso. Nota que os números binários são representados
numa string com os carácteres 0 e 1.
(c) Pensa agora em como converter um número binário num número hexadecimal. Cria um programa em C para realizar esta tarefa.
(d) Cria uma função genérica de conversão que permita converter um valor numérico em qualquer base entre 2 e 10 para o valor correspondente
numa base diferente mas no mesmo domínio, entre 2 e 10.