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, expP3
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.
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