Você está na página 1de 2

Departamento de Matem atica da Universidade de Coimbra 2006/07 M etodos de Programa c ao II TPC 3 Entrega: 10/11/2006

Aritm etica de Inteiros


Neste trabalho pretende-se implementar um programa em Pascal para manipular inteiros de tamanho arbitr ario (ou pelo menos, razoavelmente grandes). No entanto, tais inteiros iriam exceder o tamanho da palavra da m aquina de um computador. Para conseguir manipular n umeros inteiros de maiores dimens oes, podemos usar uma representa c ao de inteiros atrav es de uma tabela de digitos numa base, B , escolhida, reservando um bit (ou seja, um ndice do vector) para representar o sinal. Ou seja, usamos a representa c ao de base posicional, n =
i=0 + k 1

ai B i

onde 0 ai B , for i = 0, . . . , k 1. E, portanto, n ca representado em mem oria como uma tabela onde o u ltimo elemento representa o sinal e os restantes k 1 d gitos representam os coecientes de n na base B . Por exemplo, o zero, dever a consistir numa representa c ao a[0..M ax] onde k = 1 e a[0] = a[1] = 0 e o maior elemento negativo seria representado por a[0..M ax] onde k = M ax, a[M ax] = 1 e a[i] = B 1 para i = 0, . . . , M ax 1. Para poder trabalhar com esta representa c ao e, ent ao, necess ario implementar subprogramas para as opera c oes aritm eticas b asicas (soma, subtra c ao, multiplica c ao, divis ao inteira (quociente e resto)), conjuntamente com um subprograma para controlo de tamanho e sinal, de modo a decidir como obter o resultado da opera c ao pretendida. Pretende-se, com este trabalho, que escolha uma base de representa c ao B , que seja uma pot encia de 2 (menor ou igual a 16), escolha o tipo de dados que considere mais adequado (n ao esque ca que a representa c ao de um inteiro precisa de um vector e uma dimens ao para car bem caracterizada) e implemente as opera c oes aritm eticas b asicas, de modo a poder obter resultados correctos na manipula c ao de inteiros. Tal como no trabalho anterior, o programa, quando pronto, deve ser enviado, em attachment, por mail para o endere co da professora e o relat orio deve ser individual e manuscrito (de modo leg vel), explicando os algoritmos e porque funcionam, os tipos de dados e o funcionamento geral do programa (sem recurso a qualquer linha de c odigo nem a transcri c ao literal de tais linhas em Portugu es). Poder a consultar bibliograa/webgraa variada, entre as poss veis destacamos: Refer encias Bibliogr acas 1. A computational introduction to Number Theory and Algebra, V. Shoup, Cambridge University Press, 2005

2. The art of computer programming, Vol.2, D. Knuth, Adison wesley, 1981 3. Prime Numbers: A Computational perspective, R. Crandall, C. Pomerance, Springer, 2005 Refer encias Webgr acas 1. Bases de Numera c ao, http://www.ncc.up.pt/ nam/aulas/9899/ic/numeros/node1.html 2. Wikipedia http://en.wikipedia.org/wiki/Binary numeral system http://en.wikipedia.org/wiki/Hexadecimal http://en.wikipedia.org/wiki/Octal 3. http://planetmath.org/encyclopedia/BaseConversation.html

N ao esque ca que, no relat orio, deve ser indicada toda a bibliograa/webgraa consultada.

Você também pode gostar