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.
import math
def seno(x,prec):
""" Cálculo do seno com uma dada precisão."""
res = 0
dif = 1
exp = 1
while dif > prec:
aux = res
res += (-1)**(exp -1) * (x**(2*exp - 1) / math.factorial(2**exp - 1))
dif = abs(res - aux)
exp += 1
return res, exp
P3Dadas 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.
def negativo(img_1, img_2):
"""
Verifica se duas imagens são o negativo uma da outra.Verifica as dimensões.
"""
assert (len(img_1) == len(img_2)) and (len(img_1[0]) == len(img_2[0])), “ Erro”
linhas = len(img_1)
colunas = len(img_1[0])
for l in range(linhas):
for c in range(colunas):
if img_1[l][c] == img_2[l][c]):
return False
return True


Sem comentários:
Enviar um comentário