Tr(M) - IC/UFF

Propaganda
SEGUNDA LISTA DE EXERCÍCIOS DE PROGRAMAÇÃO DE COMPUTADORES III
Aviso: Os programas em FORTRAN 77 correspondentes a estes pseudocódigos
deverão ser entregues no dia da terceira prova.
I)Obtenha o máximo divisor comum entre dois números naturais X e Y, onde X > Y, usando o
algoritmo de Euclides que pode ser apresentado da seguinte maneira:
Divida X por Y e obtenha o resto R1. Se R1 for zero, o mdc entre X e Y é Y.
Se R1 não for zero, divida Y por R1 e obtenha o resto R2. Se R2 for zero, o mdc entre X e Y é R1.
Se R2 não for zero, divida R1 por R2 e obtenha o resto R3. Se R3 for zero, o mdc entre X e Y é R2.
...
Se Rn não for zero, divida Rn-1 por Rn e obtenha o resto Rn+1. Se Rn+1 for zero, o mdc entre X e
Y é Rn.
Obs: O esquema apresentado acima claramente não é conveniente para implementação em
pseudocódigo ou em uma linguagem de programação pois gera uma sucessão de variáveis (R1,
R2, etc.) que é de número indeterminado. No entanto, é simples contornar este problema.
II) Gere e imprima uma matriz com a estrutura abaixo de ordem arbitrária.
1
n
M= ⋮
3
2
(
2
1
⋮
4
3
3
2
⋮
5
4
⋯
n
⋯ n−1
⋮
⋮
⋯
2
⋯ 1
)
1
exemplo M = 4
3
2
(
2
1
4
3
3 4
2 3
1 2
4 1
)
III) O traço de uma matriz M de componentes m ij é definido como o somatório das componentes da
diagonal, ou seja,
n
Tr ( M )=∑ m ij .
1
Faça um pseudocódigo que calcule o o traço de uma matriz dada. Sugiro que usem o feito no item
anterior, para exemplificar a implementação.
IV) O Algoritmo de Horner é o que mais eficientemente calcula valores de um polinômio. Para
ilustrar, suponha que você tenha o seguinte polinômio
2
3
p4 (x )=a 0+ a1 x +a 2 x + a3 x + a4 x
4
.
Para facilitar a análise do custo computacional, suporemos que as potências de x serão calculadas
por meio de multiplicações. Assim feito vemos que para calcular um valor para o polinômio assim
serão necessárias 4 somas e .1+2+3+4 = 10 multiplicações. Para o caso de um polinômio de graus n
o número de operações será n somas e n(n+1)/2 multiplicações. O algoritmo de Horner pode ser
ilustrado pelo polinômio acima da seguinte forma
p4 (x )=a 0+ a1 x + a2 x +a3 x + a4 x =a0 + x ( a1 +a 2 x +a3 x + a4 x ) =a0 + x ( a 1+ x ( a 2+ a3 x + a4 x
2
3
4
2
3
2
))
e finalmente
p4 (x )=a 0+ x ( a1 + x ( a2 +a3 x +a 4 x 2 ) )=a0 + x ( a1 + x ( a2 + x ( a3 +a 4 x ) ) ) .
Se contamos o número de operações teremos 4 somas e 4 multiplicações. Para o caso de polinômio
de graus n teríamos n somas e n multiplicações.
Escreva um pseudocódigo que calcule um valor de um polinômio pelo algoritmo de Horner,
tendo os valores dos coeficientes conhecidos.
V) Crie um pseudocódigo que gere os números de Bell numa matriz. Estes podem ser obtidos como
no exemplo abaixo onde paramos no quinto nível:
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 . . . .
1 2 . . .
. . . . .
. . . . .
. . . . .
1 . . . .
1 2 . . .
2 . . . .
. . . . .
. . . . .
1 . . . .
1 2 . . .
2 3 . . .
. . . . .
. . . . .
1 . . . .
1 2 . . .
2 3 5 . .
. . . . .
. . . . .
( )( )( )( )( )
( )( )( )( )
( )( )( )
,
1 . . . .
1 2 . . .
2 3 5 . .
5 . . . .
. . . . .
,
,
1 . . . .
1 2 . . .
2 3 5 . .
5 7 . . .
. . . . .
1
.
.
. .
1 2 .
. .
2 3 5
. .
5 7 10 15 .
15 20 .
. .
,
,
,
1 . .
. .
1 2 .
. .
2 3 5
. .
5 7 10 15 .
. . .
. .
1
.
.
. .
1 2 .
. .
2 3 5
. .
5 7 10 15 .
15 20 27 . .
,
,
,
1 . .
. .
1 2 .
. .
2 3 5
. .
5 7 10 15 .
15 . .
. .
1
.
.
.
.
1 2 .
.
.
2 3 5
.
.
5 7 10 15 .
15 20 27 37 52
,
,
.
Observe que o processo duplica o número da primeira linha na primeira posição da segunda linha,
gera o número ao lado deste pela soma dos dois valores que estão um sobre o outro, dado o valor
dois que é posto na segunda posição da segunda linha. Feito isto, este número é duplicado na
primeira posição da terceira linha e o número ao lado é obtido pela soma dos dois valores contidos
nesta coluna neste momento dado o núlero 5 na terceira posição da terceira linha. O procedimento
continua até atingirmos a última linha. Depois de gerar os números de Bell, imprima-os em forma
triangular.
VI) Crie um pseudocódigo que gere uma matriz de ordem n com os números naturais como
ilustrado abaixo no caso de ordem 4.
(
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
)
.
Download