Introdução à Programação - minor

Propaganda
Introdução à Programação - minor
João Pedro PEDROSO
Departamento de Ciência de Computadores
Faculdade de Ciências da Universidade de Porto
Ano lectivo de 2012/2013
[email protected]
Aula número 3
Revisões, operações em vírgula flutuante
1. No prompt do Python escreva a expressão .1 + .2.
(a) Indique qual o resultado obtido.
(b) Explique porque se obteve esse resultado.
(c) Recomenda-se a leitura da explicação detalhada sobre este problema disponível
em
http://docs.python.org/tutorial/
floatingpoint.html
2. Avalie mentalmente a expressões que se seguem; verifique o resultado com Python no modo interativo.
(a) 5 ** 2
(g) 5 % 2
(b) 9 * 5
(h) 9 % 5
(c) 15 / 12
(i) 15 % 12
(d) 12 / 15
(j) 12 % 15
(e) 15 // 12
(k) 6 % 6
(f) 12 // 15
(l) 0 % 7
3. Coloque parêntesis na expressão 6 * 1 - 2 de
forma a que o resultado seja -6.
4. Suponha que neste momento são exatamente 14h00.
O seu avião partirá dentro de 51 horas. A que horas
parte o seu avião? (Nota: assuma que as horas são
valores inteiros.)
5. Escreva um programa em Python que resolva uma
versão geral do problema da alínea anterior: pergunte ao utilizador que horas são agora; pergunte
quanto tempo deverá esperar; imprima a hora de
partida do avião.
6. A sua partida para férias será no quarto dia da semana (uma quarta-feira). Regressa a casa passadas
137 noites. Escreva um programa que pergunte o
dia de início das férias (um número entre 1 e 7) e
a sua duração, e imprima o dia da semana em que
regressa.
7. Considere a frase: “Deitar cedo e cedo erguer dá
saúde e faz crescer”. Guarde cada palavra numa variável separada, e imprima a frase com uma linha de
código (uma instrução print).
8. Escreva um programa que pergunte ao utilizador os
quilómetros percorridos e o número de litros de combustível que um automóvel gastou, e imprima o consumo em litros gastos aos 100 quilómetros.
9. Escreva uma função hipotenusa(a,b) que, dadas
as dimensões a,b dos dois lados de um triângulo
retângulo, devolve o comprimento da hipotenusa.
Ciclos
10. Escreva um programa com um ciclo for que produza
o seguinte texto:
(a) 1
2
3
(b) 3
6
9
(c) 1
0
-1
11. Escreva um programa que, utilizando a instrução
for, imprime o nome de todos os meses do ano:
Um mês do ano é Janeiro.
Um mês do ano é Fevereiro.
...
(Dica 1: utilize uma lista Python. Dica 2: para escrever sequências de carateres em português, poderá
ter que indicar a codificação na primeira linha do seu
programa (teórica 4).)
12. A fórmula para calcular o valor final (com juros) de
um depósito de D euros ao fim de n anos, a uma
taxa de r ao ano, é (em euros):
F = D(1 + r)n
(a) Escreva um programa em Python em que atribuí um valor de 10000 a uma variável D, a taxa
de juro 0.08 à variável r (i.e., um juro de 8% ao
ano), e imprime o valor do depósito ao longo
dos 10 próximos anos.
(b) Modifique o programa para que sejam colocadas colocadas perguntas ao utilizador, que de-
finirá D, r, e o número de anos que deseja considerar.
13. Considere que tem a atribuição
xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]
(a) Escreva um ciclo for que imprime cada um dos
números da lista xs numa linha separada.
(b) Escreve um outro ciclo em que, em cada linha,
se imprime o número, o seu quadrado, e a sua
raiz quadrada.
14. Escreva um programa com dois ciclos for que produza o seguinte texto:
1 1
2 1
1 2
2 2
1 3
2 3
15. Escreva um programa que leia do teclado dois valores n e m e que produza o seguinte texto:
1 1
2 1
...
m 1
1 2
2 2
...
...
1 n
2 n
m 2
...
m n
Números (pseudo-)aleatórios
16. Implemente um funções que devolvam um número
aleatório dos seguintes conjuntos:
(a) {0, 1, 2, 3, 4}.
(b) {0, 2, 4, 6}.
(c) [0, 5[.
(d) [3, 6[.
17. Implemente uma função para simular o lançamento
de uma moeda.
18. Implemente uma função para simular o lançamento
de um dado.
Programação orientada a objetos, Turtle
19. Considere um objeto telemóvel.
(a) Indique três atributos desse objeto.
(b) Indique três métodos do seu telemóvel.
20. Numa folha de papel, trace o resultado do programa
que se segue. Quando terminar, verifique o resultado
com o computador.
import turtle
wn = turtle.Screen()
tess = turtle.Turtle()
tess.right(90)
tess.left(3600)
tess.right(-90)
tess.left(3600)
tess.left(3645)
tess.forward(-100)
21. Utilizando o módulo turtle de forma elementar (i.e., utilizando apenas turtle.forward(n) e
turtle.left(a)), escreva um programa para desenhar uma estrela:
22. Escreva uma função (sem valor de retorno) para desenhar uma estrela com cinco vértices. Alargue a
definição para permitir desenhar uma estrela com
um número n de vértices (n ≥ 3, ímpar).
23. Utilize o módulo turtle para escrever um programa, com ciclos, que desenha polígonos regulares
com 3, 4, 6, e 8 lados.
24. Escreva uma função drawPoly(someturtle,
somesides, somesize), sem valor de retorno, que
faz a tartaruga someturtle desenhar um polígono regular; por exemplo, se for chamada com
drawPoly(tess, 8, 50) desenha um octógono com
lado de tamanho 50. Utilize-a para desenhar um triângulo equilátero.
Exercício a apresentar: um os seguintes, indicados a itálico, a ser sorteado.
25. A superfície de uma esfera de raio r é dado por 4πr2 .
Implemente uma função raio_esfera(a) que calcule o raio de uma esfera com superfície a.
26. O volume de um cone com raio na base r e altura h é dado por 31 πhr2 . Implemente uma função
vcone(r,h) que calcule o volume de um cone com
raio r e altura h.
27. O volume de cilindro elíptico com raios r1 , r2 e al-
tura h é dado por πr1 r2 h. Implemente uma função
vcilindro(r1,r2,h) que calcule o volume de um
cilindro elíptico raios r1 e r2 e altura h.
28. O volume de um toro com raios r1 , r2 é dado por
1 2
2
4 π (r1 + r2 )(r1 − r2 ) , em que r1 e r2 são respetivamente o raio interno e externo do toro. Implemente
uma função vtoro(r1,r2) que calcule o volume de
um toro com raios r1 e r2.
Download