Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Sofia Neto

Resolução de Exercícios

Mensagens Recomendadas

Sofia Neto    0
Sofia Neto

Olá Pessoal

Sou nova no fórum e tenho alguma dúvidas de python, será que alguém me pode ajudar, tenho de entregar estes exercícios:

1. Implemente uma versão eficiente da função fsum(a,b,n) que devolve a soma dos primeiros n números da série de Fibonacci com valores iniciais a e b. (Nota: deve considerar f1 = a; f2 = b; f3 = f1 + f2 = a + b; etc.)

2.Escreva uma função alfa(x) em que x é uma lista de tuplos (numero,nome) e retorna uma lista com os mesmos tuplos ordenados por ordem alfabética do nome. (Nota: a ordem deve estar correta no caso de os nomes terem carateres maiúsculos e/ou minúsculos; pode considerar que os nomes contêm apenas carateres não acentuados.)

3. Implemente o método da bissecção numa função zero(a,b,f,eps) que, dada uma função real de variável real f, contínua em [a; b], m que f(a) e f(:) têm sinais diferentes, devolve um zero da função a menos de um erro eps. (Nota: um zero de uma função é um valor de x para o qual f(x) = 0).

4. Escreva uma função npv(n,v,r) que devolve o valor presente da lista de pagamentos v, com valores relativos aos próximos n períodos, e com uma taxa r a cada período. Por exemplo,npv(5,[0,100,0,0,100],0.03) deverá devolver o valor 100=1:032 + 100=1:035.

Preciso mesmo de Ajuda, Obrigada

Sofia Neto

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
thoga31    611
thoga31

Pelo título do tópico e pelo conteúdo - enunciados sem códigos teus e dúvidas concretas -, acho que podemos enunciar algo:

2.3) Não é permitida a criação de tópicos ou colocação de mensagens a pedir para que se façam trabalhos. Pedir ajuda é diferente de pedir trabalhos feitos. Em caso de incumprimento o staff pode bloquear o tópico ou mesmo apagar o tópico/mensagem.

in Regras do FÓRUM

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Sofia Neto    0
Sofia Neto

Á Soraia Ribeiro vocês responderam. Para uns há regras para outros não? Tenho muitas dúvidas porque não sei como começar, às vezes quando começam eu depois consigo acabar.

Obrigada pela ajuda

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
thoga31    611
thoga31

Á Soraia Ribeiro vocês responderam. Para uns há regras para outros não? Tenho muitas dúvidas porque não sei como começar, às vezes quando começam eu depois consigo acabar.

Obrigada pela ajuda

Vamos lá a manter o nível, e a ver as coisas como elas são.

Um membro perguntou pelo que a dita Soraia já tinha feito, e ela mostrou. Mas houve alguém novato no fórum que se decidiu a fazer os exercícios para ela, o que está errado e vai contra o espírito do P@P. Estamos aqui para ajudar, não para dar os trabalhos feitos em bandejas de ouro.

Por isso, mostra o que já tens feito, e/ou no que tens dúvidas. Isso se "ajuda para começar" é algo subjectivo - cada um pode ter a sua forma de fazer as coisas. Tens de procurar o teu estilo, e não o estilo dos outros. Ok? :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ribeiro55    44
ribeiro55

Começa por praticar tu boas acções, contigo mesma.

O que ias tu aprender se alguém te chapar o resultado?

Provavelmente safavas-te neste trabalho, mas e depois?

Procura identificar a tua dificuldade: não sabes como começar? Onde? Na matemática? Na síntaxe da linguagem? Qual é a tua dúvida?

Para além disso, procura evitar duplos posts (que vou desde já unir), e utilizar maísculas onde só te prejudicam (que vou desde já normalizar).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Sofia Neto    0
Sofia Neto
def bisseccao(a,b,f,eps):
 fa = f(a)
 fb = f(b)
 if fa*fb > 0:
   print("Erro: função com o mesmo sinal nos dois extremos")
   exit(0)
 while b-a > eps:
   c = (a+b)/2.
   fc = f(c)
   if fa*fc < 0:
     b, fb = c, fc
   elif fa*fc > 0:
     a, fa = c, fc
   else:
     return c
 return (a+b)/2.

if __name__ == "__main__":
 def f(x):
   return 1000-(300/(1+x) + 200/(1+x)**2 \
   + 200/(1+x)**3 + 200/(1+x)**4 \
   + 200/(1+x)**5)
 print(bisseccao(0.,1.,f,1.e-6))
 

Alguém sabe me dizer se está correcto? é o ultimo exercício que tinha dúvida?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
djthyrax    11
djthyrax

Em relação à parte do fibonnaci, tens que a sequencia de fibonacci começa por ser [1,1] e vai-se juntando os elementos seguintes ([1,1,2,3,5,8,.....]), pelo que podes tirar que, se a sequencia começar por [a,b] vais ter [a,b,a+b, b+a+b, a+b+b+a+b, b+a+b+a+b+b+a+b, ....] = [a,b,a*1+b*1, a*1+b*2, a*2+b*3, a*3+b*5, ....]. Acho que a partir daí consegues chegar a uma expressão genérica para saberes o valor do valor n.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade