Na figura, no plano cartesiano, a região sombreada não inclui as linhas de bordo. Note que o eixo y
cai bem no meio da figura, e usamos o lado do quadrado para indicar as ordenadas correspondentes.
Escreva um programa que lê as coordenadas cartesianas (x, y)
de um ponto, ambas do tipo float
e imprime dentro
se esse ponto está na região, e fora
caso contrário.
Solução 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | x = float ( input ( "Digite x: " )) y = float ( input ( "Digite y: " )) # suponha que (x,y) está dentro dentro = True if x < = - 5 or 5 < = x or y < = 0 or 8 < = y: # aqui sabemos que (x,y) está fora da face dentro = False elif - 3 < = x < = 3 and 1 < = y < = 2 : # aqui sabemos que (x,y) está na boca dentro = False elif - 4 < = x < = - 1 and 4 < = y < = 7 : # aqui sabemos que (x,y) está no olho esquerdo dentro = False if - 3 < x < - 2 and 5 < y < 6 : # aqui sabemos que na verdade (x,y) está na iris esquerda dentro = True elif 1 < = x < = 4 and 4 < = y < = 7 : # aqui sabemos que (x,y) está no olho direito dentro = False if 2 < x < 3 and 5 < y < 6 : # aqui sabemos que na verdade (x,y) está na iris direita dentro = True if dentro: print ( "dentro" ) else : print ( "fora" ) |
Solução 2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #começa supondo que está fora e depois... A variável dentro e um indicador de passagem bool. x = float ( input ( "Digite x: " )) y = float ( input ( "Digite y: " )) # suponha que (x,y) está fora dentro = False if - 5 < x < 5 and 0 < y < 8 : # aqui sabemos que (x,y) está na face dentro = True if - 3 < = x < = 3 and 1 < = y < = 2 : # aqui sabemos que (x,y) está na face, mas está na boca dentro = False elif - 4 < = x < = - 1 and 4 < = y < = 7 : # aqui sabemos que (x,y) está no olho esquerdo dentro = False if - 3 < x < - 2 and 5 < y < 6 : # aqui sabemos que na verdade (x,y) está na iris esquerda dentro = True elif 1 < = x < = 4 and 4 < = y < = 7 : # aqui sabemos que (x,y) está no olho direito dentro = False if 2 < x < 3 and 5 < y < 6 : # aqui sabemos que na verdade (x,y) está na iris direita dentro = True if dentro: print ( "dentro" ) else : print ( "fora" ) |
Solução 3:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | x_pos = x = float ( input ( "Digite x: " )) y = float ( input ( "Digite y: " )) if x < 0 : # simetria ;-) x_pos = - x # suponha que (x,y) que está dentro dentro = True if x_pos > = 5 or y > = 8 or y < = 0 : # aqui sabemos que (x,y) está fora da face dentro = False elif x_pos < = 3 and 1 < = y < = 2 : # aqui sabemos que (x,y) está na boca dentro = False elif 1 < = x_pos < = 4 and 4 < = y < = 7 : # aqui sabemos que (x,y) está em um olho if not ( 2 < x_pos < 3 and 5 < y < 6 ): # aqui sabemos que (x,y) está fora da iris dentro = False if dentro: print ( "dentro" ) else : print ( "fora" ) |
Solução 4:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | x_pos = x = float ( input ( "Digite x: " )) y = float ( input ( "Digite y: " )) if x < 0 : x_pos = - x # face == True se (x,y) está na face face = x_pos < 5 and 0 < y < 8 # boca == True se (x,y) está na boca boca = x_pos < = 3 and 1 < = y < = 2 # olho == True se (x,y) está em um dos olhos olho = 1 < = x_pos < = 4 and 4 < = y < = 7 # iris == True se (x,y) está em uma das iris iris = 2 < x_pos < 3 and 5 < y < 6 # vixe! :-D complicado?! certamente muito elegante if iris or face and not (boca or olho): print ( "dentro" ) else : print ( "fora" ) |