Que variantes da instrução de atribuição usual (
Existem três tipos de variantes para a forma explícita da instrução de atribuição: (a) aumentada:
(b) em cadeia: x = y = … =
(c) multipla: x, y =
P2
Calcular o valor do seno de um ângulo com uma dada precisão. Apresentar ainda o número de termos usados para obter a precisão pedida. O programa deve recorrer à definição de seno que usa a série infinita.
Este problema tem então dois dados de entrada (o ângulo e a precisão) e dois de saída (o seno e o número de termos). Como nos vamos basear na precisão temos que recorrer a um ciclo while. A garantia de cumprir a precisão desejada é controlada pela diferença do valor de duas somas parciais consecutivas.
01.
import
math
02.
03.
def
seno(x,prec):
04.
""" Cálculo do seno com uma dada precisão."""
05.
res
=
0
06.
dif
=
1
07.
exp
=
1
08.
while
dif > prec:
09.
aux
=
res
10.
res
+
=
(
-
1
)
*
*
(exp
-
1
)
*
(x
*
*
(
2
*
exp
-
1
)
/
math.factorial(
2
*
*
exp
-
1
))
11.
dif
=
abs(res
-
aux)
12.
exp
+
=
1
13.
return
res, exp
Dadas duas imagens a preto e branco, representadas por um tuplo de tuplos de uns e de zeros, verifique se são o negativo uma da outra. Assegure-se que as imagens têm o mesmo tamanho, caso contrário deve ser desencadeado um erro.
Para controlar o tamanho usamos a instrução assert, que analisa se têm o mesmo número de linhas e de colunas. Depois temos dois ciclos imbricados e mal se encontrem dois valores na mesma posição das duas imagens iguais podemos abandonar pois já sabemos que não podem ser o negativo uma da outra. Lembrar que apenas existem dois valores: 0 e 1.
01.
def
negativo(img_1, img_2):
02.
"""
03.
Verifica se duas imagens são o negativo uma da outra.Verifica as dimensões.
04.
"""
05.
assert
(len(img_1)
=
=
len(img_2))
and
(len(img_1[
0
])
=
=
len(img_2[
0
])), “ Erro”
06.
linhas
=
len(img_1)
07.
colunas
=
len(img_1[
0
])
08.
for
l
in
range(linhas):
09.
for
c
in
range(colunas):
10.
if
img_1[l][c]
=
=
img_2[l][c]):
11.
return
False
12.
return
True
Sem comentários:
Enviar um comentário