Pergunta 1
Quais as três características comuns a todos os objectos?
Todos os objectos têm
identidade (o seu endereço na memória),
valor (aquilo que o objecto é e sobre o quase incidem as operações) e
tipo (que identifica o conjunto de valores e de operações que podem ser feitas sobre um objecto do tipo).
Pergunta 2
Desenvolver um programa modular para desenhar a figura:
A técnica é sempre a mesma: olhar e ver. Neste caso vemos
três triângulos em posições diversas. Vamos então construir um programa para desenhar um triângulo, em função do lado e da posição.
def triangulo(posx, posy,lado):
turtle.showturtle()
turtle.penup()
turtle.goto(posx,posy)
turtle.pendown()
for i in range(3):
turtle.forward(lado)
turtle.left(120)
turtle.hideturtle()
O resto é trivial: desenhamos os triângulos em sequência. Só precisamos estar atentos à posição e à orientação.
def tri_tri(posx,posy,lado):
turtle.penup()
turtle.goto(posx,posy)
turtle.pendown()
# triangulo 1
triangulo(turtle.xcor(),turtle.ycor(),lado)
# triangulo 2
turtle.setx(turtle.xcor() + lado)
triangulo(turtle.xcor(),turtle.ycor(),lado)
# triangulo 3
turtle.left(120)
turtle.forward(lado)
turtle.right(120)
triangulo(turtle.xcor(),turtle.ycor(),lado)
Claro que temo que admitir que alguém olhe para a figura e veja apenas
dois triângulos: um exterior, maior, e outro interior, mais pequeno. A relação entre o comprimento dos respectivos lados é de um para dois. Com esta visão a solução é diferente:
def tri_tri_bis(posx, posy, lado):
""" Faz desenho do triângulo exterior, seguido do desenho do triângulo interior."""
# Posiciona
turtle.showturtle()
turtle.penup()
turtle.goto(posx, posy)
turtle.pendown()
# Desenha triângulo exterior
triangulo(turtle.xcor(),turtle.ycor(),lado)
# Posiciona no meio da base do triângulo maior com a orientação certa
turtle.penup()
turtle.setx(turtle.xcor()+lado/2)
turtle.pendown()
turtle.left(60)
# Desenha triangulo interior
triangulo(turtle.xcor(),turtle.ycor(), lado/2)
Pergunta 3
Pedem-nos um programa para manipular uma cadeia de caracteres trocando os seus n primeiros caracteres com os seus últimos n caracteres. Além disso temos que verificar se a operação é possível. A operação não poderá ser feita se o valor de n for maior do que metade do tamanho da sequência!
def troca_cad(cadeia,n):
if len(cadeia) < 2*n:
print('Impossível')
return -1
return cadeia[-n:] + cadeia[n:-n] + cadeia[:n]
A solução faz o teste da possibilidade e, caso seja possível, constrói a nova cadeia de caracteres: os n últimos vêm para o início (cadeia[-n:]), os n primeiros vão para o fim (cadeia[:n]), e no meio fica o restante (cadeia[n:-n]).
Sem comentários:
Enviar um comentário